⚡️ Speed up method ModelToComponentFactory._create_async_job_status_mapping
by 14% in PR #45178 (async-job/cdk-release
)
#45344
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 pull request contains optimizations for PR #45178
If you approve this dependent PR, these changes will be merged into the original PR branch
async-job/cdk-release
.📄
ModelToComponentFactory._create_async_job_status_mapping()
inairbyte-cdk/python/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py
📈 Performance improved by
14%
(0.14x
faster)⏱️ Runtime went down from
3.33 milliseconds
to2.91 milliseconds
Explanation and details
The given code can be optimized in several ways to improve its performance especially by tweaking its logic and reducing function calls where necessary. Let's focus on restructuring and optimizing the internal handling for better performance.
Changes made.
AsyncJobStatus
Enum class was updated to use a direct string comparison in theis_terminal
method, removing the need to setself._value
andself._is_terminal
initially._get_async_job_status
method was optimized to useif/elif/else
instead ofmatch/case
for quicker evaluation..dict()
handling: Expanded the use of thedict()
method to only call once outside the loop to avoid redundant calls.These changes will improve the runtime performance by minimizing the number of operations required, handling enums more efficiently, and ensuring optimal logic flow.
Correctness verification
The new optimized code was tested for correctness. The results are listed below.
🔘 (none found) − ⚙️ Existing Unit Tests
✅ 17 Passed − 🌀 Generated Regression Tests
(click to show generated tests)
🔘 (none found) − ⏪ Replay Tests