Skip to content

Миграция на Python 3.14#14

Merged
Lu7474 merged 2 commits into
mainfrom
migrate/python-3.14
May 30, 2026
Merged

Миграция на Python 3.14#14
Lu7474 merged 2 commits into
mainfrom
migrate/python-3.14

Conversation

@Lu7474
Copy link
Copy Markdown
Owner

@Lu7474 Lu7474 commented May 30, 2026

Перевод проекта на Python 3.14.

Что внутри

  • requirements: подняты бинарные пакеты до версий с cp314-wheels (numpy 2.4.6, pandas 3.0.3, pillow 12.2.0, contourpy 1.3.3) — на 3.14 ставятся из колёс, без сборки.
  • CI (tests.yml): python-version: 3.14, обновлён ключ mypy-кэша.
  • pyproject: ruff py314, mypy 3.14.
  • conftest: фикс зависания прогона. Код использует глобальный production engine + chart ThreadPoolExecutor; под pytest-asyncio часть aiosqlite-воркеров остаётся на закрытых event-loop и не закрывается через dispose(). На 3.14 эти non-daemon потоки вешали процесс после summary (CI step не завершался). pytest_unconfigure освобождает ресурсы и форсит os._exit с кодом pytest. Прод не затронут (один loop, штатное закрытие).

Локально на 3.14: pip install из wheels, ruff/mypy зелёные, 519 passed, процесс выходит чисто.

Не вливать в main, пока прод на 3.10

Job deploy срабатывает на push в main и пойдёт на прод. Сначала поднять Python 3.14 на сервере (deadsnakes) и пересоздать venv, потом мерж.

Тех-долг (не в этом PR)

  • Тесты ходят в боевую db.sqlite3 через глобальный async_session — нужна изоляция (DI/подмена engine).
  • DeprecationWarning в core/utils.py:401 (strptime().replace(year=)) — сломается на 3.15.

maxac added 2 commits May 30, 2026 16:22
- requirements: numpy 2.4.6 / pandas 3.0.3 / pillow 12.2.0 / contourpy 1.3.3
  (версии с cp314-wheels, без сборки из исходников)
- CI tests.yml: python-version 3.14, mypy-cache key py3.14
- pyproject: ruff target-version py314, mypy python_version 3.14
- conftest: pytest_unconfigure форсит os._exit после прогона.
  Под pytest-asyncio часть aiosqlite-воркеров остаётся на закрытых
  event-loop и не закрывается dispose() из нового loop; на 3.14 эти
  non-daemon потоки вешали процесс после summary (CI step не завершался).

519 passed на 3.14, процесс выходит чисто.
- README: бейдж и таблица стека -> Python 3.14
- .claude/CLAUDE.md: Python 3.14, aiogram 3.28
- dependabot.yml: снят ignore numpy>=2.3 / contourpy>=1.3.3
  (были из-за Python 3.10, на 3.14 не нужны). SQLAlchemy и
  aiofiles оставлены — там mypy и конфликт с aiogram.
@Lu7474 Lu7474 merged commit 12079af into main May 30, 2026
3 checks passed
@Lu7474 Lu7474 deleted the migrate/python-3.14 branch May 30, 2026 15:17
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