inspect: Implement a very basic signature function. #1043
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This implements a very basic
inspect.signature()function.At the moment it returns only a simple
Signatureinstance with aparametersattribute that holds anOrderedDictwhose length matches the arity of the input function (the number of arguments it takes).So, the following code works and is compatible with CPython:
That should print
3.I tested this on unix 64-bit, unix nanbox (32-bit), webassembly (32-bit) and a 32-bit bare-metal target.
The main aim here is to support PyScript which is currently using a very unreliable hack to work out if a Python function takes arguments or not: https://github.com/pyscript/pyscript/blob/main/core/src/stdlib/pyscript/events.py#L96-L126