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(typing): make Response headers covariant #3745

Merged

Conversation

Wurstnase
Copy link
Contributor

Issue number: #3743

Summary

Changes

Change typing for headers in Response constructor.

User experience

Able to use covariant of dicts, e.g.

headers_with_str = {"str": "str"}
Response(200, headers=headers_with_str)

headers_with_list = {"str": "str", "list": ["1"]}
Response(200, headers=headers_with_list)

Checklist

If your change doesn't seem to apply, please leave them unchecked.

Is this a breaking change?

RFC issue number:

Checklist:

  • Migration process documented
  • Implement warnings (if it can live side by side)

Acknowledgment

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.

https://docs.python.org/3/library/typing.html#typing.Dict
Note that to annotate arguments, it is preferred to use an abstract collection type such as Mapping rather than to use dict or typing.Dict.
@Wurstnase Wurstnase requested a review from a team as a code owner February 9, 2024 10:16
Copy link

boring-cyborg bot commented Feb 9, 2024

Thanks a lot for your first contribution! Please check out our contributing guidelines and don't hesitate to ask whatever you need.
In the meantime, check out the #python channel on our Powertools for AWS Lambda Discord: Invite link

@pull-request-size pull-request-size bot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Feb 9, 2024
@codecov-commenter
Copy link

codecov-commenter commented Feb 9, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (e14e768) 96.38% compared to head (cc7ff50) 96.38%.
Report is 21 commits behind head on develop.

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #3745   +/-   ##
========================================
  Coverage    96.38%   96.38%           
========================================
  Files          214      214           
  Lines        10030    10030           
  Branches      1846     1846           
========================================
  Hits          9667     9667           
  Misses         259      259           
  Partials       104      104           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link

sonarcloud bot commented Feb 9, 2024

Quality Gate Passed Quality Gate passed

Issues
0 New issues

Measures
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarCloud

@heitorlessa heitorlessa changed the title fix(mypy): make Response headers covariant fix(typing): make Response headers covariant Feb 9, 2024
@heitorlessa heitorlessa added the typing Static typing definition related issues (mypy, pyright, etc.) label Feb 9, 2024
@heitorlessa heitorlessa self-assigned this Feb 9, 2024
@heitorlessa
Copy link
Contributor

thank you @Wurstnase for this quick fix w/ Mapping generic. Everyone appreciates it :)

@heitorlessa heitorlessa merged commit 5dc430c into aws-powertools:develop Feb 9, 2024
17 checks passed
Copy link

boring-cyborg bot commented Feb 9, 2024

Awesome work, congrats on your first merged pull request and thank you for helping improve everyone's experience!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
event_handlers size/S Denotes a PR that changes 10-29 lines, ignoring generated files. typing Static typing definition related issues (mypy, pyright, etc.)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants