feat: enabled multi python version support#41
Merged
andres-pcg merged 5 commits intomainfrom Nov 29, 2025
Merged
Conversation
Contributor
andres-pcg
commented
Nov 27, 2025
- Added support for Python versions 3.10, 3.11, 3.12, and 3.13 in pyproject.toml.
- Updated CI workflows to test builds and run unit and e2e tests across the new Python versions.
- Introduced a helper function for 3DS response validation in e2e tests to streamline assertions and improve readability.
- Added support for Python versions 3.10, 3.11, 3.12, and 3.13 in pyproject.toml. - Updated CI workflows to test builds and run unit and e2e tests across the new Python versions. - Introduced a helper function for 3DS response validation in e2e tests to streamline assertions and improve readability.
There was a problem hiding this comment.
Pull request overview
This pull request enables multi-version Python support (3.10, 3.11, 3.12, 3.13) for the PyAzul SDK and introduces a reusable helper function to streamline 3DS response validation in e2e tests.
- Added support for Python 3.10-3.13 in package configuration and CI workflows
- Introduced
assert_3ds_responsehelper function to reduce code duplication in 3DS response handling - Updated test workflows to run across all supported Python versions using matrix strategy
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| pyproject.toml | Added Python version classifiers (3.10-3.13), lowered minimum version requirement, added typing-extensions dependency, updated Black target versions |
| pyazul/core/config.py | Added conditional import for Self type hint to maintain compatibility with Python 3.10 |
| .github/workflows/tests-unit.yaml | Added matrix strategy to test across Python 3.10-3.13 |
| .github/workflows/tests-e2e.yaml | Added matrix strategy to test across Python 3.10-3.13, updated setup-python action version |
| .github/workflows/cd.yaml | Added test-build-matrix job to verify package builds across all Python versions before publishing |
| tests/e2e/helpers.py | New helper module with assert_3ds_response function for validating and extracting data from 3DS API responses |
| tests/e2e/services/test_secure_integration.py | Refactored to use assert_3ds_response helper, reducing duplicate validation logic across multiple test cases |
| tests/e2e/services/test_datavault_integration.py | Refactored to use assert_3ds_response helper for cleaner 3DS response handling in token sale tests |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.
f5944ff to
f46ee13
Compare
c710226 to
3e42be2
Compare
3e42be2 to
85540f3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.