Skip to content

feat: upgrade to Python 3.10 and modernize codebase#259

Merged
ejseqera merged 3 commits intomainfrom
upgrade-to-python-3.10
Dec 1, 2025
Merged

feat: upgrade to Python 3.10 and modernize codebase#259
ejseqera merged 3 commits intomainfrom
upgrade-to-python-3.10

Conversation

@ejseqera
Copy link
Copy Markdown
Member

Summary

This PR upgrades seqerakit from Python 3.8 (EOL) to Python 3.10 and modernizes the codebase with Python 3.10+ features.

Changes Made

Python Version Updates

  • Updated .python-version from 3.12 to 3.10
  • Updated pyproject.toml requires-python from >=3.8,<4 to >=3.10,<4
  • Updated README.md Python requirement from >=3.8 to >=3.10
  • Added Python version classifiers to pyproject.toml (3.10, 3.11, 3.12)

Code Modernization

  • Modernized type hints in seqerakit/cli.py to use Python 3.10+ union syntax
    • Changed Optional[List[str]]list[str] | None
    • Changed Optional[str]str | None
    • Removed deprecated from typing import Optional, List imports

Copyright Updates

  • Updated copyright year from 2023 to 2025 in all source files:
    • seqerakit/cli.py
    • seqerakit/utils.py
    • seqerakit/seqeraplatform.py
    • seqerakit/helper.py
    • seqerakit/overwrite.py
    • seqerakit/pipelines.py
    • seqerakit/computeenvs.py
    • tests/unit/test_utils.py

Test plan

  • All 116 unit tests pass with Python 3.10.9
  • seqerakit --help runs successfully
  • seqerakit --version displays correctly
  • uv sync completes without errors

Motivation

Python 3.8 reached end-of-life in October 2024. Upgrading to Python 3.10 ensures continued security updates and allows us to use modern Python features.

🤖 Generated with Claude Code

ejseqera and others added 3 commits November 28, 2025 16:14
- Update minimum Python version from 3.8 to 3.10
- Modernize type hints using Python 3.10+ union syntax (| instead of Optional/List)
- Update copyright year from 2023 to 2025 in all source files
- Add Python version classifiers to pyproject.toml
- Update .python-version to 3.10
- Update README.md to reflect Python 3.10 requirement

All tests pass successfully with Python 3.10.9.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
The yaml import is required for yaml.safe_load() usage in the
env_file processing code, but ruff's static analysis doesn't
detect this usage. Adding noqa comment to prevent auto-removal.
…e import

The parameter name 'yaml' was conflicting with the yaml module import,
causing ruff error F811 (redefinition of unused variable). Renamed
the parameter to 'yaml_files' to resolve the conflict.
@ejseqera ejseqera merged commit 41c8cbd into main Dec 1, 2025
3 checks passed
@ejseqera ejseqera deleted the upgrade-to-python-3.10 branch December 1, 2025 03:31
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.

1 participant