port lazy_loader perf and native PEP810 + add python3.15 support - #6930
port lazy_loader perf and native PEP810 + add python3.15 support#6930benedikt-bartscher wants to merge 12 commits into
Conversation
Merging this PR will improve performance by 4.81%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ⚡ | Simulation | test_evaluate_page[_complicated_page] |
27.4 ms | 25.9 ms | +5.87% |
| ⚡ | Simulation | test_evaluate_page_with_hooks[_complicated_page] |
27.6 ms | 26.1 ms | +5.72% |
| ⚡ | Simulation | test_evaluate_page[_stateful_page] |
4.6 ms | 4.4 ms | +4.56% |
| ⚡ | Simulation | test_evaluate_page_with_hooks[_stateful_page] |
4.8 ms | 4.6 ms | +4.24% |
| ⚡ | Simulation | test_console_log |
382.4 µs | 368.7 µs | +3.7% |
Tip
Curious why performance improved? Comment @codspeedbot explain why performance improved on this PR, or directly use the CodSpeed MCP with your agent.
Comparing benedikt-bartscher:use-lazy-loader-branch (25b877d) with main (f7c848f)2
Footnotes
-
8 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
-
No successful run was found on
main(45b8ed5) during the generation of this report, so f7c848f was used instead as the comparison base. There might be some changes unrelated to this pull request in this report. ↩
Greptile SummaryThe PR adds Python 3.15 compatibility and CI coverage while improving repeated lazy-import access and adopting native lazy imports where available.
Confidence Score: 5/5The PR appears safe to merge because no blocking failure remains. No blocking failure remains.
|
| Filename | Overview |
|---|---|
| packages/reflex-base/src/reflex_base/utils/lazy_loader.py | Adds native Python 3.15 lazy imports and caches resolved classic lazy attributes; no eligible follow-up defect was established. |
| packages/reflex-base/src/reflex_base/utils/compat.py | Introduces a version-compatible public alias for the dataclasses missing-value type. |
| packages/reflex-base/src/reflex_base/utils/types.py | Normalizes PEP 728 NoExtraItems metadata during nested TypedDict validation. |
| pyproject.toml | Selects pure-Python psycopg on Python 3.15 while retaining the binary extra on earlier versions. |
| uv.lock | Updates Python-version resolution partitions and psycopg markers for Python 3.15. |
| .github/workflows/unit_tests.yml | Extends Linux, Windows, and macOS unit-test matrices to Python 3.15. |
| .github/workflows/integration_app_harness.yml | Extends Redis and memory-backed integration matrices to Python 3.15. |
Reviews (11): Last reviewed commit: "Merge remote-tracking branch 'upstream/m..." | Re-trigger Greptile
There was a problem hiding this comment.
All reported issues were addressed across 17 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
scientific-python/lazy-loader#172
scientific-python/lazy-loader#173