MIGRATION GUIDE (0.x → 1.0)¶
В мажорной версии 1.0 архитектура ITDpy была значительно улучшена, чтобы предоставить Pythonic интерфейс, строгую типизацию и более чистый код. В связи с этим, некоторые старые подходы перестали работать.
1. Замена плоских методов на пространства имен (Namespace API)¶
Ранее у ITDClient методы были свалены в кучу. Теперь они строго разделены по логическим группам.
Было (OLD)¶
client.get_posts()
client.create_post(...)
client.get_user("gam5510")
client.follow_user(...)
Стало (NEW)¶
client.posts.list()
client.posts.create(...)
client.users.get("gam5510")
client.users.follow(...)
2. Гибкие Модели (Pydantic) вместо обычных словарей¶
Вся библиотека переведна на гибкие Pydantic v2 модели, которые поддерживают как строгие атрибуты, так и обращение как к словарю (dict).
Стало (NEW)¶
Возвращаются объекты Pydantic: Post, User, PostsList, UsersList. Поля в объектах пишутся через snake_case, но также можно обращаться к ним по оригинальным camelCase ключам!
me = client.users.me()
# Как атрибут
print(me.id)
print(me.display_name)
# Как к словарю
print(me["displayName"])
# Преобразования
print(me.to_dict())
print(me.to_json())
3. Использование Enums вместо строк¶
Вместо магических строк теперь используются перечисления.
Было (OLD)¶
client.get_posts(tab="newest")
Стало (NEW)¶
from itdpy.enums import PostsTab
client.posts.list(tab=PostsTab.NEWEST)
4. Пагинация¶
Модели типа PostsList и UsersList теперь хранят данные о пагинации.
- Вы можете обратиться к массиву элементов через атрибут items
- Свойства пагинации: cursor и has_more
5. Streaming API¶
Стриминг вынесен в client.notifications.stream().
Метод client.keep_online() сохранен, но теперь он более стабильно переводит стрим в фоновый поток (если background=True).