Size: a a a

2021 March 02

Б

Боброний in PiterPy Meetup
Eugene
То есть вместо моего key vale pair использовать кастомный словарь? Я когда-то делал кастомный стринг для pydantic. Можно попробовать. Просто модель с root выглядело самым простым решением.
Кастомный тип*. Словарь будет самым обычным в итоге
источник

E

Eugene in PiterPy Meetup
Боброний
Кастомный тип*. Словарь будет самым обычным в итоге
Окей, попробую зайти с этой стороны :)
источник

Б

Боброний in PiterPy Meetup
Там есть свои заковырки, но в целом если правильно сделать — будет работать.

Не забудь наследоваться от dict[KT, VT].

Всю валидацию нужно будет делать вручную возможно, хотя не уверен до конца
источник

E

Eugene in PiterPy Meetup
Боброний
Кастомный тип*. Словарь будет самым обычным в итоге
Да только мне нужен словарь из одной пары ключ-значение. Из-за этого и пришлось делать модель с валидатором
источник

Б

Боброний in PiterPy Meetup
Зато можно будет обойтись без наследования только для того, чтобы тип поменять
источник

E

Eugene in PiterPy Meetup
Боброний
Зато можно будет обойтись без наследования только для того, чтобы тип поменять
Это да...
источник

Б

Боброний in PiterPy Meetup
Хотя и так без этого можно было обойтись, на самом деле))
источник

E

Eugene in PiterPy Meetup
Боброний
Хотя и так без этого можно было обойтись, на самом деле))
Можно с reused валидатором
источник

E

Eugene in PiterPy Meetup
Но мне не нравится
источник

Б

Боброний in PiterPy Meetup
Eugene
Можно с reused валидатором
GenericModel
источник

Б

Боброний in PiterPy Meetup
Paul Rudnitskiy
просто если проводить опрос "как часто вам повышают зарплату" — результат может быть радикально иным. Потому я и среагировал
Согласен.
источник

E

Eugene in PiterPy Meetup
Боброний
GenericModel
Да, точно. Забыл про это
источник

E

Eugene in PiterPy Meetup
Эх, когда-то питончик был такой простой и приятный без всех этих generic и "типов" 😏
источник

Б

Боброний in PiterPy Meetup
Eugene
Эх, когда-то питончик был такой простой и приятный без всех этих generic и "типов" 😏
источник

Б

Боброний in PiterPy Meetup
Это я наслаждаюсь дженериками и типизацией
источник

E

Eugene in PiterPy Meetup
@Bobronium

Метод __get_validators__ не вызывается

KType = TypeVar('KType')
VType = TypeVar('VType')

class MyDict(Dict[KType, VType]):

   @classmethod
   def __get_validators__(cls):
       print("hello")
       yield cls.validate

   @classmethod
   def validate(cls, v):
       raise ValueError

class A(BaseModel):
   foo: MyDict[str, int]
источник

Б

Боброний in PiterPy Meetup
Eugene
@Bobronium

Метод __get_validators__ не вызывается

KType = TypeVar('KType')
VType = TypeVar('VType')

class MyDict(Dict[KType, VType]):

   @classmethod
   def __get_validators__(cls):
       print("hello")
       yield cls.validate

   @classmethod
   def validate(cls, v):
       raise ValueError

class A(BaseModel):
   foo: MyDict[str, int]
Странно, по идее должен
источник

Б

Боброний in PiterPy Meetup
Чуть позже глягу
источник

E

Eugene in PiterPy Meetup
Боброний
Странно, по идее должен
С примером из доки, где базовый класс str работает
источник

E

Eugene in PiterPy Meetup
Боброний
Странно, по идее должен
С dict без generic тоже работает. А с generic - нет 😏 Похоже на баг.
источник