SecondThundeR / shikithon

Yet another Python wrapper for Shikimori API
https://pypi.org/project/shikithon/
MIT License
8 stars 0 forks source link

Revising the typing system #14

Closed SecondThundeR closed 1 year ago

SecondThundeR commented 1 year ago

В данный момент, в некоторых местах библиотеки, типизация оставляет желать лучшего и после внедрения mypy, ситуация лишь стала более явной. Поэтому к версии 2.4 планирую переделать все проблемные места и внедрить некоторые улучшения для комфортной работы

Вся работа по этому issue, ведётся в ветке typing_rework

Roadmap

Прогресс

SecondThundeR commented 1 year ago

Похоже переход на литералы был преждевременным, так как возникла проблема, что mypy странно проверяет, если в типе есть список литералов. Из-за этого, нельзя передать их другую функцию как строка, число и т.д.

image

В том же TypeScript подобная конструкция работает без нареканий

image

Переписывать большинство вспомогательных функций не хочется, поэтому скорее всего енамы будут возвращены, но теперь они будут вынесены для использования из вне библиотеки. Это уберет исходную проверку на переданные значения, которая была сделана на коленках, и заучивания возможных значений без автодополнения

Коммиты с литералами были удалены (История: https://github.com/SecondThundeR/shikithon/compare/d47ebcc...775c631)

ren3104 commented 1 year ago

Можно ещё доработать pydantic модели, например модель для информации о клубе содержит не все поля.