Added support to Python 3.12#48
Merged
Merged
Conversation
- Remove python-socketio and aiohttp dependencies - Add sseclient-py for Server-Sent Events support - Temporarily limit Python support to 3.9-3.12
- Remove Python 3.13 from support matrix (dependencies not ready) - Update GitHub Actions workflow to test Python 3.9-3.12 - After merging socketio removal, only sseclient-py and requests remain - This should resolve the frozenlist/aiohttp Python 3.13 compatibility issues
- Remove flake8-black plugin that has compatibility issues with newer Python - Update flake8 and other dev dependencies to newer versions - Simplify .flake8 configuration by removing black-specific extensions - Set minimum Python version to 3.9 in flake8 config
- Drop support for Python 3.9-3.10 to avoid older compatibility issues - Focus on modern Python versions 3.11 and 3.12 - Update all configuration files to match new version range - This should resolve flake8 annotation requirements and other issues
- Remove flake8-annotations dependency that was causing linting failures - Simplify .flake8 configuration to basic rules only - Focus on getting basic Python 3.11-3.12 support working first
After removing aiohttp/socketio and keeping only: - requests - python-dateutil - sseclient-py These should all support Python 3.13, so testing if we can now add 3.13 support.
- Fix critical logging bug in Analysis module where complex data structures were being truncated - Replace faulty str(args)[1:][:-2] with proper " ".join(str(arg) for arg in args) - Modernize build system by migrating from Poetry to uv with pyproject.toml - Replace flake8/black/isort with Ruff for faster, unified linting and formatting - Update all dependencies to latest versions - Add comprehensive CLAUDE.md documentation for AI assistant interactions - Add signal handling for graceful Analysis shutdown with Ctrl+C - Update GitHub Actions workflows to use uv instead of Poetry - Update README with new development commands 🤖 Generated with [opencode](https://opencode.ai) Co-Authored-By: opencode <noreply@opencode.ai>
- Replace bare except statements with specific exception types - Fix mutable default arguments by replacing with None - Fix datetime.now() in default argument - Apply automatic fixes for import sorting and other style issues
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.
This pull request introduces several significant changes to modernize the Python SDK for TagoIO, streamline workflows, and enhance project documentation and code quality. Key updates include transitioning to
uvfor dependency and task management, replacingPoetrywithHatchlingfor builds, updating the minimum Python version to 3.11, and adoptingRufffor linting and formatting. Additionally, comprehensive documentation has been added to improve developer onboarding and usage clarity.Build and Dependency Management Updates:
uv: ReplacedPoetrycommands withuvfor dependency synchronization, testing, and linting in workflows (.github/workflows/publish.yml,.github/workflows/tests.yml,README.md). [1] [2] [3]Hatchling: Updatedpyproject.tomlto useHatchlingas the build backend and removedpoetry.toml. Addedruffconfiguration for linting and formatting. [1] [2]Code Quality Improvements:
Ruff: Replacedflake8,black, andisortwithRufffor linting and formatting, reducing dependency overhead and improving performance. Updated.flake8and removed related configurations. [1] [2]src/tagoio_sdk/common/Common_Type.py,src/tagoio_sdk/common/tagoio_module.py,src/tagoio_sdk/infrastructure/api_request.py). [1] [2] [3]Documentation Enhancements:
CLAUDE.mdwith detailed project overview, architecture, development setup, and usage examples. Includes guidelines for contributing and future improvements.Poetrycommands withuvcommands for development tasks.Infrastructure Updates:
api_sse.pyto support Server-Sent Events for real-time communication, including methods for channel management and event listening.config.pywith streamlined SDK settings.Compatibility and Versioning:
pyproject.toml. [1] [2] [3]These changes collectively improve the SDK's usability, maintainability, and performance while aligning with modern Python development practices.