You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The reveal_type() primitive is injected by type checkers into the builtins. When the type checker sees a call, it prints the inferred type of the argument.
This has been implemented across all type checkers, but adding an implementation to typing would help document the behavior and make it more discoverable for users. Also, it means code with reveal_type() calls can run without runtime errors, useful if you want to run your tests at the same time as you're debugging a typing issue.
The runtime implementation can be very simple:
defreveal_type(obj: _T, /) ->_T:
print("Runtime type is", type(obj))
returnobj
One area of divergence is the return value. Pyright returns the inferred type of the expression as a string (and uses that in its test suite for testing type inference). Mypy returns the argument, which has the advantage that you can insert reveal_type() in the middle of an expression without having to put it on its own line. Also, the Pyright behavior cannot sensibly be implemented at runtime. Therefore, I suggest using Mypy's behavior for typing.reveal_type.
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: