Здравствуйте, пишу обертку над vk api для python. Хочу сделать полную типизацию типов для всех функций и объектов вк, а также для методов вк апи и их респонзов.
встал вопрос об удобстве такого формата. Типизация данных конечно же хороша, но она делает код слишком громоздким. Например функцию для вызова групп с параметром "filter" придется делать так:
vk.groups.get(filter=GroupsFilter.ADMIN)
>>> {'response': {'count': 0, 'items': []}}
ведь есть тип данный GroupsFilter, который имеет следующую структуру:
class GroupsFilter(Enum):
ADMIN = 'admin'
EDITOR = 'editor'
MODER = 'moder'
GROUPS = 'groups'
PUBLICS = 'publics'
EVENTS = 'events'
HAS_ADDRESSES = 'has_addresses'
Хотя можно было бы просто вызвать:
vk.groups.get(filter='admin')
>>> {'response': {'count': 0, 'items': []}}
плюс первого варианта в том, что при программировании в IDE, например в pycharm, будут возникать подсказки как на фото ниже, и сразу будет понятно, какие значения может принимать параметр и не лезть в документацию:
С другой стороны, это делает код громоздким и для появления подсказки нужно знать, что параметр "filter" принимает в себя тип GroupsFilter.
Есть ли у вас какие-нибудь советы о том, как лучше сделать?
p.s. Все типы данных взяты из
официальной Json-Schema(Github)