-
Notifications
You must be signed in to change notification settings - Fork 35
Open
Description
Summary
Python 3.14 is scheduled for release on October 7, 2025. We should upgrade policyengine-canada to support Python 3.14 and take advantage of its performance improvements and new features.
Key Benefits for PolicyEngine Canada
Performance Improvements
- 3-5% geometric mean performance improvement - faster household calculations
- Up to 30% faster for certain workloads with newer compilers
- Incremental garbage collection with reduced pause times
- Better performance for microsimulation scenarios
Free-Threaded Python (No GIL)
- Free-threaded mode is now officially supported
- Could enable true parallel computation for provincial calculations
- Potential for faster batch household calculations
- Performance penalty in single-threaded mode reduced to just 5-10%
Type System & Numerical Improvements
- Deferred evaluation of type annotations reduces import overhead
- New
float.from_number()andcomplex.from_number()methods for safer numeric conversions - Enhanced mixed-mode arithmetic - important for tax and benefit calculations
- Better type hint performance
Other Improvements
- Native Zstandard compression for faster data loading
- Improved error messages for debugging tax/benefit rules
- Simpler exception handling syntax (PEP 758)
Implementation Plan
- Wait for policyengine-core upgrade - Ensure core library supports Python 3.14 first
- Update
pyproject.tomlto include Python 3.14 in supported versions - Add Python 3.14 to CI/CD test matrix
- Test all provincial and federal calculations
- Update documentation
Priority
Medium - Should coordinate with policyengine-core upgrade (PolicyEngine/policyengine-core#399). The performance improvements will benefit microsimulation workloads.
References
Metadata
Metadata
Assignees
Labels
No labels