Closed SecondThundeR closed 1 year ago
Похоже переход на литералы был преждевременным, так как возникла проблема, что mypy странно проверяет, если в типе есть список литералов. Из-за этого, нельзя передать их другую функцию как строка, число и т.д.
В том же TypeScript подобная конструкция работает без нареканий
Переписывать большинство вспомогательных функций не хочется, поэтому скорее всего енамы будут возвращены, но теперь они будут вынесены для использования из вне библиотеки. Это уберет исходную проверку на переданные значения, которая была сделана на коленках, и заучивания возможных значений без автодополнения
Коммиты с литералами были удалены (История: https://github.com/SecondThundeR/shikithon/compare/d47ebcc...775c631)
Можно ещё доработать pydantic модели, например модель для информации о клубе содержит не все поля.
В данный момент, в некоторых местах библиотеки, типизация оставляет желать лучшего и после внедрения mypy, ситуация лишь стала более явной. Поэтому к версии 2.4 планирую переделать все проблемные места и внедрить некоторые улучшения для комфортной работы
Roadmap
Исправить всевозможные ошибки от mypy (которых довольно дофига)
~Перевести все енамы на литералы~ (tl;dr https://github.com/SecondThundeR/shikithon/issues/14#issuecomment-1448484922)
Убрать проверку на переданные строки енамов и вынести их для использования вне библиотеки
(Возможно) Использовать систему перегрузок для корректной работы выходных типов при разных аргументах
(Возможно) ~Избавиться каким-то образом от
Dict[str, Any]
и решить проблему с типизацией ответов от API~Прогресс
Dict[str, Any]
и решить проблему с типизацией ответов от API~ (см. выше)