This is follow-up to a similar commit improving Python 2.7 inspect stub[1].
Similarly, this commit consists of:
* Splitting and reordering the content into sections corresponding
to the module's documentation sections
* Implementing missing functions, classes etc.
* Adding TODOs for things that are either difficult to get or I can't
figure them out right now
* Making the existing code consistent with the newly added things
As suggested in pull request #108 I'm modifying the generic Python 3
stub even though some things changed and were added in various Python
3.x releases - the changes seem to be backwards compatible and the
additions, well, they should not break much except for some false
positives on older Python 3 versions.
Some of the types in this stub were not obvious so I either read the
source code or used my judgment.
[1] 630f718376
inspect.currentframe() return a frame object on its own, not as a part
of a record.
Additionally the artificial _Frame type is unnecessary as
types.FrameType exists.
This patch consists of:
* Splitting and reordering the content into sections corresponding
to the module's documentation sections
* Implementing some missing functions
* Adding TODOs for missing stuff (I may've missed something)
The signature of isgenerator() (was: Any argument, is: argument of type
object) is changed for consistency with other is* functions I added
here, after some considerations I couldn't decide whether it should be
object or Any - if object is not advised please let me know.
This was missing for some reason while the Python 2.7 stubs have it.
Sample test code:
% cat testtype.py
A = type('A', (), {})
print(A.__name__)
Results before:
% python -m mypy --py2 testtype.py
% python -m mypy testtype.py
testtype.py:1: error: Too many arguments for "type"
%
Results after: type checking passes in both modes.