Skip to content

Comments

Add Python 3.13 support#7

Merged
sirjobzy-mp merged 2 commits intomasterfrom
beta/0.1.0
Jan 6, 2026
Merged

Add Python 3.13 support#7
sirjobzy-mp merged 2 commits intomasterfrom
beta/0.1.0

Conversation

@sirjobzy-mp
Copy link
Contributor

@sirjobzy-mp sirjobzy-mp commented Jan 6, 2026

🚀 Notes for Reviewers

This PR adds full Python 3.13 support and updates the minimum Python version to 3.10+.

Key changes:

  • Removes deprecated imp module (removed in Python 3.12)
  • Updates Falcon to support 4.x (required for Python 3.13)
  • Fixes Falcon error handler signatures for 4.x/5.0 compatibility
  • Adds beta branch publishing support to CI

🔗 Asana Tasks

https://app.asana.com/1/1510887156471/project/1204628953228187/task/1212639519845289?focus=true

🧪 Extended Description

Breaking Changes

  • Minimum Python version is now 3.10 (previously supported 3.9)
  • Falcon version constraint updated to >=3.0.0,<5.0.0

Changes by File

File Change Reason
setup.py Replace imp.load_source() with regex imp module removed in Python 3.12
setup.py Add python_requires='>=3.10' Declare minimum version
setup.py Update falcon to >=3.0.0,<5.0.0 Falcon 3.x doesn't build on Python 3.13
requirements.txt Update falcon constraint Match setup.py
connector.py Remove Python 2 urlparse fallback Cleanup (Python 2 no longer supported)
restserver.py Use req.bounded_stream.read() WSGI compliance for Python 3.13
restserver.py Fix error handler signatures Falcon 4.x requires (req, resp, ex, params)
test.py Change resp.body to resp.text Falcon 4.x compatibility
publish.yml Add test matrix for 3.10-3.13 Test across all supported versions
publish.yml Support beta/** branches Enable beta releases from branches

CI/CD Updates

  • Tests now run on Python 3.10, 3.11, 3.12, and 3.13
  • Beta releases can be triggered by pushing to beta/** branches
  • Version validation ensures beta branches have pre-release version suffix

Testing

All tests pass on Python 3.13:

9 passed, 6 skipped (MySQL tests)

🤖 Generated with Claude Code

- Updated falcon dependency in requirements.txt to be between versions 3.0.0 and 5.0.0.
- Refactored setup.py to read version from version.py using regex for better reliability.
- Adjusted Python version support in setup.py to include 3.10 through 3.13.
- Modified GitHub Actions workflow to support multiple Python versions and improved version verification logic.
- Changed response handling in RestServerFloe to use `req.bounded_stream.read()` for better stream handling.
- Updated version in version.py to 0.1.0b1 for the upcoming beta release.
@sirjobzy-mp sirjobzy-mp merged commit c899d3d into master Jan 6, 2026
9 of 10 checks passed
@sirjobzy-mp sirjobzy-mp deleted the beta/0.1.0 branch January 6, 2026 23:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants