I was thinking of working on a tool which interacts with Astroid's type
inference capabilities. It would either get the type hints of parameters
through function annotations or from @param tags in docstrings. This would
help create warnings where the parameter or something which uses it is
being used in an unexpected way, inconsistent with documentation.
I was wondering if there is any machine-readable information about what
types functions in the standard library expect? For example, PyCharm seems
to know that os.path.split cannot return a tuple of three values, so
x, y, z = os.path.split("a/path/here")
causes the IDE warning "needs more values to unpack". When I jump to the
documentation it's described like this:
def split(p) Inferred type: (p: one of (str, unicode)) -> (one of (str,
unicode, unknown),one of (str, unicode, unknown))
Split a pathname. Returns tuple "(head, tail)" where "tail" is
everything after the final slash. Either part may be empty.
Did JetBrains (who make PyCharm) gather this information themselves, or is
this kind of thing publicly available somewhere?
Thanks for your help,
-George