Skip to content

Support Python 3.14 dependencies - #1157

Open
andreicuceu wants to merge 4 commits into
mainfrom
support-python-3.14
Open

andreicuceu wants to merge 4 commits into
mainfrom
support-python-3.14

Conversation

@andreicuceu

Copy link
Copy Markdown
Contributor

Summary

  • replace the SciPy 1.15.3 pin with the open lower bound scipy>=1.16.1
  • declare and classify Python 3.11 through 3.14 support
  • test Python 3.11 through 3.14 in CI and run pylint with Python 3.14
  • ignore the local AGENTS.md and CLAUDE.md guidance files

Validation

  • fresh Python 3.11, 3.12, 3.13, and 3.14 environments: all direct requirements resolved and imported; pip check passed
  • SciPy 1.16.1 installed and imported with Picca on Python 3.11 through 3.14
  • Python 3.14.6 with SciPy 1.16.1: 170 tests passed, 4 existing runtime warnings
  • Python 3.14.6 with resolver-selected SciPy 1.18.1: 170 tests passed, 4 existing runtime warnings
  • git diff --check passed

@andreicuceu

Copy link
Copy Markdown
Contributor Author

Follow-up changes after opening this PR

Three follow-up commits were added after the initial Python 3.14 and dependency update:

  • ffbc62c — Fix Pylint configuration for SciPy: removed the native-extension whitelist for scipy.special, removed the obsolete Pylint suggestion-mode option, and configured scipy.special as an ignored module for Astroid inference. This avoids the SciPy introspection recursion crash while retaining member checks elsewhere.
  • 3eb2813 — Avoid duplicate feature branch CI runs: restricted push-triggered Pytest and Pylint workflows to main, while retaining pull_request checks and explicit merge-queue support through merge_group / checks_requested.
  • b72c179 — Document Python 3.11 requirement: updated the README installation guidance and Conda example to state that Picca requires Python 3.11 or newer.

Python 3.9 and 3.10 are no longer supported. Python 3.9 reached end of life on 2025-10-31, as recorded in PEP 596. Python 3.10 is currently security-only and is scheduled to reach end of life in October 2026; the upstream schedule does not specify an exact day (PEP 619, Python version status). The package metadata, CI matrix, and documentation therefore consistently use Python >=3.11.

Validation completed for these follow-ups includes Pylint on Python 3.14 and the full pytest matrix on Python 3.11, 3.12, 3.13, and 3.14. The trigger change was also verified live: feature-branch updates now create only the PR workflows, without duplicate push runs.

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