Skip to content

Conversation

@6RUN0
Copy link
Contributor

@6RUN0 6RUN0 commented Oct 17, 2025

Описание

1. Подключён pre-commit и настроены хуки

2. Единообразное форматирование и автофиксы линтеров

  • Пройдены файлы проекта автоформатером (Black) и линтерами (ruff/flake8/isort): правки пробелов/переносов/кавычек, newline at EOF, выравнивание маркдауна, мелкие поправки в YAML/MD.
  • Удалены неиспользуемые импорты и мёртвый код, упорядочены импорты (isort).

3. Консолидация static и типобезопасные константы

  • src/pymax/static.py переименован в src/pymax/static/enum.py (только перечисления).
  • Новый файл src/pymax/static/constant.py с явными Final-константами и строгими типами:
    • PHONE_REGEX, WEBSOCKET_URI, WEBSOCKET_ORIGIN, HOST, PORT, DEFAULT_TIMEOUT, DEFAULT_USER_AGENT.
    • DEFAULT_USER_AGENT теперь — отдельная модель UserAgentPayload, а не словарь.

4. Модели/типизация

  • Добавлена UserAgentPayloadpayloads.py) — pydantic-модель для user-agent, вместо неструктурного dict.
  • Повсеместные улучшения аннотаций: использование Self в фабричных методах (from_dict и пр.), уточнение типов, явные Final.

5. WebSocket: косметика + явные заголовки

  • WebSocketMixin:
    • Метод _connect и _handshake теперь принимают UserAgentPayload вместо «сырого» dict.
    • При соединении передаётся origin из WEBSOCKET_ORIGIN и добавлен user_agent_header=user_agent.headerUserAgent в websockets.connect(...). Это делает заголовки клиентского соединения более предсказуемыми и согласованными с содержимым UserAgentPayload.

6. API-поверхность (__init__.py)

  • Из __all__ убраны: Constants. Если кто-то импортировал их из корня пакета, потребуется заменить: Constants -> pymax.static.constant (конкретные константы)

7. Примеры/документация/обслуживающие файлы

  • examples/example.py: убраны неиспользуемые импорты, оставлен минимально рабочий пример на MaxClient.
  • README.md, .github/ISSUE_TEMPLATE/bug_report.md, .github/workflows/publish.yml, .gitignore, ruff.toml, SVG-ассеты и docs/*: трим пробелов, финальные переносы строк, правки форматирования. Функции не затрагивают.

Тип изменений

  • Исправление бага
  • Новая функциональность
  • Улучшение документации
  • Рефакторинг

@ink-developer
Copy link
Owner

Секунду

@ink-developer
Copy link
Owner

В общем гуд, спасибо, но есть breaking change в виде

Из __all__ убраны: Constants. Если кто-то импортировал их из корня пакета, потребуется заменить: Constants -> pymax.static.constant (конкретные константы)

У тех кто использовал прямой импорт сломается код
В общем требует доработки
Ещё раз выражаю благодарность

@ink-developer ink-developer merged commit 31f3f28 into ink-developer:main Oct 30, 2025
@ink-developer
Copy link
Owner

спасибо, на пайпи по позже залью

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