Skip to content

Pydantic поднят до v2. Добавлена проверка минимальных версий#37

Merged
love-apples merged 7 commits intolove-apples:mainfrom
Olegt0rr:bugfix/drop-pydantic-v1
Feb 17, 2026
Merged

Pydantic поднят до v2. Добавлена проверка минимальных версий#37
love-apples merged 7 commits intolove-apples:mainfrom
Olegt0rr:bugfix/drop-pydantic-v1

Conversation

@Olegt0rr
Copy link
Copy Markdown
Collaborator

closes #36

Обновляем проект до минимально‑необходимых изменений для совместимости с Pydantic v2:

  • перевод конфигураций моделей на v2‑стиль (ConfigDict)
  • удаление deprecated json_encoders в конфиге в пользу сериализаторов (@field_serializer)
  • добавление утилиты для работы с временными метками (ms) и приведение к единому стилю преобразований времени.

Дополнительно добавляем в матрицу тестирования проверку работы библиотеки на минимально-совместимых версиях

Copilot AI review requested due to automatic review settings February 16, 2026 14:21
@Olegt0rr Olegt0rr marked this pull request as draft February 16, 2026 14:23
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

PR обновляет библиотеку для совместимости с Pydantic v2 и добавляет проверку работы на минимально-совместимых версиях зависимостей в CI.

Changes:

  • Миграция конфигураций Pydantic-моделей на v2-стиль (ConfigDict) и замена json_encoders на сериализацию через @field_serializer.
  • Добавление утилит to_ms / from_ms и приведение ms↔datetime преобразований к единому стилю в коде.
  • Расширение GitHub Actions матрицы тестов, чтобы прогонять на “lowest-direct” и “highest” разрешении зависимостей.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
pyproject.toml Обновляет диапазоны версий зависимостей (в т.ч. pydantic>=2,<3) и dev-инструментов; уточняет optional-deps.
maxapi/utils/time.py Добавляет общие функции преобразования времени в/из миллисекунд.
tests/test_time_utils.py Добавляет unit-тесты на to_ms/from_ms.
maxapi/types/chats.py Переводит модель на Pydantic v2, добавляет валидатор/сериализатор для participants (ms↔datetime).
maxapi/types/message.py Переводит конфиг модели на ConfigDict для populate_by_name.
maxapi/types/updates/update.py Переводит arbitrary_types_allowed на ConfigDict.
maxapi/types/updates/dialog_muted.py Использует from_ms для вычисления muted_until_datetime.
maxapi/types/attachments/attachment.py Переводит use_enum_values на ConfigDict.
maxapi/types/attachments/buttons/button.py Переводит use_enum_values на ConfigDict.
maxapi/types/users.py Удаляет устаревший json_encoders (и лишний импорт datetime).
maxapi/methods/get_messages.py Использует to_ms при формировании параметров from/to.
maxapi/dispatcher.py Использует to_ms/from_ms для текущего timestamp и логирования.
.github/workflows/tests.yml Добавляет прогон тестов с разными стратегиями резолва зависимостей (lowest-direct/highest).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread maxapi/types/chats.py Outdated
Comment thread .github/workflows/tests.yml
Comment thread pyproject.toml Outdated
Comment thread maxapi/types/chats.py
@Olegt0rr Olegt0rr marked this pull request as ready for review February 16, 2026 15:21
@love-apples
Copy link
Copy Markdown
Owner

@Olegt0rr aiohttp>=3.10,<4 не критично будет для безопасников?

@love-apples love-apples merged commit 58a3a05 into love-apples:main Feb 17, 2026
12 checks passed
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.

Некорректные ограничения версий зависимостей

3 participants