pydantic взаимодействует? Написал такой фильтр:
async def __call__(self, message: types.Message) -> bool:
print(type(self.chat_type))
if isinstance(self.chat_type, str):
return message.chat.type == self.chat_type
elif isinstance(self.chat_type, List):
return message.chat.type in self.chat_type
else:
raise TypeError("chat_type can by either str or List, not {!s}".format(type(self.chat_type)))
Пытаюсь передать туда bool — говорит, что это str
Передаю число — тоже str
Dict просто ошибку кидает
Set считается как List
кста, а я скоро свой aiogram-autodoc еще и под тройку сделаю
Обновил ссылку выше
все логично у тебя тайпхинт Union[str, List[str]] а передаешь словарь
https://github.com/viuipan/aiogram-autodoc/projects/1
ты бы фабрику справки допилил в тройке с поддержкой скоупов
Да, я как раз сижу, проверяю, что код корректно определяет несовместимые типы и должен кинуть ошибку
Но ошибки нет, вместо этого — неявная (implicit) конвертация
понял все, кроме фабрики справки
про тип не кинет ошибку, так как неизвестно какой фильтр был ближе всего по спеке надо тогда кидать ошибку валидации на все, а это не поможет найти в чем проблема
если есть, то норм
Я сам не ебу про фабрику справок, что это вообще
лять, я тебе раза два или три уже одно и то же показывал: https://t.me/aiogram_ru/640962
у меня память крайне избирательная, но поняль
Вот сейчас не понял. Давай по-другому спрошу: pydantic как-то вмешивается в процесс парсинга? У меня ровно один фильтр, внутри проверяю, какой тип переменной туда пришёл. Если строка или лист — ок. Всё остальное — кидаю исключение. Но вместо этого переменная как будто сама конвертируется до ближайшего совместимого типа (число или bool — в строку, множество — в лист)
Обсуждают сегодня