Skip to content

Added support to Python 3.12#48

Merged
felipefdl merged 13 commits into
mainfrom
support_python12
Jul 26, 2025
Merged

Added support to Python 3.12#48
felipefdl merged 13 commits into
mainfrom
support_python12

Conversation

@felipefdl
Copy link
Copy Markdown
Member

@felipefdl felipefdl commented Jul 26, 2025

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 uv for dependency and task management, replacing Poetry with Hatchling for builds, updating the minimum Python version to 3.11, and adopting Ruff for linting and formatting. Additionally, comprehensive documentation has been added to improve developer onboarding and usage clarity.

Build and Dependency Management Updates:

  • Transition to uv: Replaced Poetry commands with uv for dependency synchronization, testing, and linting in workflows (.github/workflows/publish.yml, .github/workflows/tests.yml, README.md). [1] [2] [3]
  • Adoption of Hatchling: Updated pyproject.toml to use Hatchling as the build backend and removed poetry.toml. Added ruff configuration for linting and formatting. [1] [2]

Code Quality Improvements:

  • Switch to Ruff: Replaced flake8, black, and isort with Ruff for linting and formatting, reducing dependency overhead and improving performance. Updated .flake8 and removed related configurations. [1] [2]
  • Refactored Imports: Standardized import statements across SDK files (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:

  • Comprehensive SDK Documentation: Added CLAUDE.md with detailed project overview, architecture, development setup, and usage examples. Includes guidelines for contributing and future improvements.
  • Updated README: Replaced outdated Poetry commands with uv commands for development tasks.

Infrastructure Updates:

  • SSE Support: Added api_sse.py to support Server-Sent Events for real-time communication, including methods for channel management and event listening.
  • Improved Configuration: Enhanced config.py with streamlined SDK settings.

Compatibility and Versioning:

  • Python Version Update: Increased minimum Python version to 3.11 and added support for Python 3.12 and 3.13 in workflows and pyproject.toml. [1] [2] [3]

These changes collectively improve the SDK's usability, maintainability, and performance while aligning with modern Python development practices.

mateuscardosodeveloper and others added 13 commits March 21, 2024 17:08
- 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
@felipefdl felipefdl merged commit 4f4b1f4 into main Jul 26, 2025
5 checks passed
@felipefdl felipefdl deleted the support_python12 branch July 26, 2025 04:00
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