Closed ghost closed 7 years ago
Имеет смысл избавиться от InteractiveVKSession
, оставить только VKSession с параметром в конструкторе, но не имеет смысла в принципе держать это в create_api
.
Суть этого метода-фабрики - упростить создание api инстанса, пользователь должен делать минимум телодвижений чтобы начать работать с библиотекой, поэтому добавление опциональных классов в параметры выглядит усложняющим (с версии 0.9.7 session_cls deprecated кстати, рекомендуется использовать interactive
флаг вместо этого).
Если действительно нужно сделать какую-то кастомную логику создания, то всегда можно реализовать свой create_api метод в своем коде
В принципе юзеру не придется делать лишних телодвижений, можно оставить тот же флаг interactive и для него ничего не поменяется, а при создании кастомной логики удобней указать только класс аутентификации, а не писать свой create_api.
Это будет усложнение и едва ли будет работать, разве только путать пользователя.
Сейчас interactive
по сути говорит использовать InteractiveVKSession
--> InteractiveAuthAPI
Что по твоему должно случится если я, например сделаю так: create_api(interactive=True, auth_api_cls=MyCustomApiClass)
? Ну т.е логика уже двусмысленна, чтобы она была очевидна, нужно оставить только auth_api_cls
, но тогда понадобится доп импорт, от которого как раз таки хочется избавиться.
При создании кастомной логики ты уже делаешь лишние телодвижения, поэтому в этом случае следует создавать инстанс вручную
session = VKSession(auth_api_cls=MyCustomApiClass)
api = API(session=session)
Явное лучше неявного ;)
Ну хотя да, ты прав:)
https://github.com/prawn-cake/vk-requests/issues/14#issuecomment-260118660