Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(python): KeyError in type checks when decorating methods #3791

Merged
merged 1 commit into from
Oct 5, 2022

Conversation

RomainMuller
Copy link
Contributor

When methods are decorated by users (e.g: replaced with an alternate function that delegates back to the original one), type annotations are not carried over to the new function.

Since type checking code relied on dynamically accessing the checked function for the purpose of getting type hints,this resulted in unexpected errors when executing type checking code.

In order to address this, the type checking code now declares a stub function locally with the relevant type information in order to have a reliable/stable source of type annotations (these cannot be constructed dynamically as Python does not expose the necessary constructors).


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

When methods are decorated by users (e.g: replaced with an alternate
function that delegates back to the original one), type annotations are
not carried over to the new function.

Since type checking code relied on dynamically accessing the checked
function for the purpose of getting type hints,this resulted in
unexpected errors when executing type checking code.

In order to address this, the type checking code now declares a stub
function locally with the relevant type information in order to have a
reliable/stable source of type annotations (these cannot be constructed
dynamically as Python does not expose the necessary constructors).
@RomainMuller RomainMuller requested a review from a team October 5, 2022 13:52
@RomainMuller RomainMuller self-assigned this Oct 5, 2022
@mergify mergify bot added the contribution/core This is a PR that came from AWS. label Oct 5, 2022
@mergify
Copy link
Contributor

mergify bot commented Oct 5, 2022

Thank you for contributing! ❤️ I will now look into making sure the PR is up-to-date, then proceed to try and merge it!

@mergify mergify bot added the pr/ready-to-merge This PR is ready to be merged. label Oct 5, 2022
@mergify
Copy link
Contributor

mergify bot commented Oct 5, 2022

Merging (with squash)...

@mergify mergify bot merged commit dae724c into main Oct 5, 2022
@mergify mergify bot deleted the rmuller/fix-python-decorated-type-checking branch October 5, 2022 15:03
@mergify mergify bot removed the pr/ready-to-merge This PR is ready to be merged. label Oct 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contribution/core This is a PR that came from AWS.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants