Size: a a a

2020 April 20

q

quavo in aiogram [ru]
ну ладно(
источник

AR

Alex RootJunior in aiogram [ru]
Tishka17
А нельзя чтобы callback_data содержала NamedTuple или датакласс?
Для 2.х это сломает обратную совместимость, под 3.х в планах на pydantic завернуть с конвертацией типов
источник

q

quavo in aiogram [ru]
лучше на датакласс_фектори
источник

T

Tishka17 in aiogram [ru]
Alex RootJunior
Для 2.х это сломает обратную совместимость, под 3.х в планах на pydantic завернуть с конвертацией типов
ну это можно было бы запилить ещё одним классом просто, не удалаяя старый
источник

AR

Alex RootJunior in aiogram [ru]
quavo
лучше на датакласс_фектори
Поздно. Уже все заточено под pydantic =)
источник

q

quavo in aiogram [ru]
ех...
источник

q

quavo in aiogram [ru]
а вот так плохо кодить да... а вдруг надо поменятьпидантик на датакласс_фектори
вот надо так, шобы одним импортом и парой строчек кода все менялось
источник

q

quavo in aiogram [ru]
(я шучу, не бейте )(
источник

T

Tishka17 in aiogram [ru]
Alex RootJunior
Поздно. Уже все заточено под pydantic =)
эх
источник

N

Nikki in aiogram [ru]
quavo
Это ещё мвса нет
Да кто такой этот MVS заебали
источник

q

quavo in aiogram [ru]
Nikki
Да кто такой этот MVS заебали
mvc
источник

EF

Evgen Fil // 🤔 via @... in aiogram [ru]
Переслано от Evgen Fil // 🤔 via @...
Опа
источник

EF

Evgen Fil // 🤔 via @... in aiogram [ru]
Переслано от Evgen Fil // 🤔 via @...
Это тот баг про превращение

def a(x|):
 pass

def b(x|):
 pass

в

def a(x:|):
 pass

def b(x)|:
 pass
источник

T

Tishka17 in aiogram [ru]
Alex RootJunior
Для 2.х это сломает обратную совместимость, под 3.х в планах на pydantic завернуть с конвертацией типов

class SepCallbackData:
   def __init__(self, prefix: str, type_: Type[NamedTuple], sep: str = "_"):
       self.prefix = prefix
       self.sep = sep
       self.data_type = type_
       if sep in prefix:
           raise ValueError(f"prefix cannot contain sep '{sep}'")

   def check(self, c: CallbackQuery):
       if c.data.startswith(self.prefix):
           params = c.data.split(self.sep)[1:]
           return {"callback_data": self.data_type(*params)}

   def render(self, *args, **kwargs) -> str:
       data = self.data_type(*args, **kwargs)
       return self.prefix + self.sep + self.sep.join(map(str, data))


запилил пока так
источник

P#

PyCodeCat # from meo... in aiogram [ru]
Tishka17

class SepCallbackData:
   def __init__(self, prefix: str, type_: Type[NamedTuple], sep: str = "_"):
       self.prefix = prefix
       self.sep = sep
       self.data_type = type_
       if sep in prefix:
           raise ValueError(f"prefix cannot contain sep '{sep}'")

   def check(self, c: CallbackQuery):
       if c.data.startswith(self.prefix):
           params = c.data.split(self.sep)[1:]
           return {"callback_data": self.data_type(*params)}

   def render(self, *args, **kwargs) -> str:
       data = self.data_type(*args, **kwargs)
       return self.prefix + self.sep + self.sep.join(map(str, data))


запилил пока так
Было бы топ сделать не Type[NamedTuple], а type в конструкторе
источник

P#

PyCodeCat # from meo... in aiogram [ru]
Вдруг я туда датакласс захочу
источник

P#

PyCodeCat # from meo... in aiogram [ru]
Чтоб тайпхинты были
источник

T

Tishka17 in aiogram [ru]
PyCodeCat # from meow import *
Было бы топ сделать не Type[NamedTuple], а type в конструкторе
так делай NamedTuple с хинтами
источник

P#

PyCodeCat # from meo... in aiogram [ru]
А так можно?
источник

T

Tishka17 in aiogram [ru]
угу
источник