Skip to content

Cache SmartErrorCode creation #1022

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

Merged
merged 6 commits into from
Jun 30, 2024
Merged

Cache SmartErrorCode creation #1022

merged 6 commits into from
Jun 30, 2024

Conversation

bdraco
Copy link
Member

@bdraco bdraco commented Jun 29, 2024

Avoid the __call__ and __new__ overhead to create the singleton by caching the creation. Since we never overload methods or subclass these, we can avoid all the complexity most of the time. This is a tiny optimization.

before:
enum_overhead
after
cached

Copy link

codecov bot commented Jun 29, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 91.34%. Comparing base (2a62849) to head (1c6d8c2).
Report is 87 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1022   +/-   ##
=======================================
  Coverage   91.33%   91.34%           
=======================================
  Files          84       84           
  Lines        5657     5662    +5     
  Branches     1371     1374    +3     
=======================================
+ Hits         5167     5172    +5     
  Misses        382      382           
  Partials      108      108           

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

@sdb9696
Copy link
Collaborator

sdb9696 commented Jun 29, 2024

This looks good and is our first usage of a python 3.9 feature now we've dropped 3.8 support. Ready for review?

@bdraco bdraco marked this pull request as ready for review June 29, 2024 12:18
@sdb9696 sdb9696 added the maintenance Project improvements and maintenance label Jun 30, 2024
@sdb9696 sdb9696 changed the title feat: cache converting SmartErrorCode Cache SmartErrorCode creation Jun 30, 2024
@sdb9696 sdb9696 merged commit 368590c into master Jun 30, 2024
25 checks passed
@sdb9696 sdb9696 deleted the enums branch June 30, 2024 09:50
@sdb9696 sdb9696 added this to the 0.7.0.2 milestone Jul 1, 2024
@sdb9696 sdb9696 mentioned this pull request Jul 1, 2024
sdb9696 added a commit that referenced this pull request Jul 1, 2024
## [0.7.0.2](https://github.com/python-kasa/python-kasa/tree/0.7.0.2) (2024-07-01)

[Full Changelog](0.7.0.1...0.7.0.2)

This patch release fixes some minor issues found out during testing against all new homeassistant platforms.

**Fixed bugs:**

- Disable multi-request on unknown errors [\#1027](#1027) (@sdb9696)
- Disable multi requests on json decode error during multi-request [\#1025](#1025) (@sdb9696)
- Fix changing brightness when effect is active [\#1019](#1019) (@rytilahti)
- Update light transition module to work with child devices [\#1017](#1017) (@sdb9696)
- Handle unknown error codes gracefully [\#1016](#1016) (@rytilahti)

**Project maintenance:**

- Make parent attribute on device consistent across iot and smart [\#1023](#1023) (@sdb9696)
- Cache SmartErrorCode creation [\#1022](#1022) (@bdraco)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintenance Project improvements and maintenance
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants