Tishka17
ничего, сериализацию тоже допилю
Tishka17
реально встроенная медленная
banteg
вот еще что-то пилят https://github.com/lidatong/dataclasses-json https://github.com/s-knibbs/dataclasses-jsonschema
Oleg
сериализацию датаклассы из коробки умеют
asdict, к сожалению, не всегда подходит
Alexander
Можете мою либо использовать тоже, там и сериализация, и десериализация)
Alexander
Tishka17
Я так, мимо проходил
пока 100% попадание
Tishka17
Можете мою либо использовать тоже, там и сериализация, и десериализация)
да я тут marshallow решил взять себе, оказалось он енумы сам не умеет
Alexander
Поэтому я туда и не хочу
Oleg
вот еще что-то пилят https://github.com/lidatong/dataclasses-json https://github.com/s-knibbs/dataclasses-jsonschema
уже довольно давно пилят. Там проблема в том, что, похоже, никак нельзя добавить/переопределить соответствие типа и marshmallow-поля
Tishka17
да положи к себе в проект marshmallow_enum
да я уже сам вроде написал class EnumField(fields.Field): def __init__(self, enum, **metadata): super().__init__(**metadata) self.enum = enum def _deserialize(self, value, attr, data): if value is None: return None return self.enum(value) def _serialize(self, value, attr, obj): if value is None: return None return value.value
Tishka17
упс
Tishka17
не совсем работает
Oleg
не совсем работает
валидацию забыл?
Tishka17
Field may not be null
Tishka17
что бы это значило
Tishka17
allow_none забыл
Oleg
@Tishka17 тебе еще в _deserialize надо ValueError обрабатывать
Tishka17
пофиг
Tishka17
пусть кидается
Oleg
пусть кидается
ну лучше ошибку валидации вернуть чем 500тить
Tishka17
ладно
Tishka17
хотя щас
Tishka17
он не кидает что ли ошибки, а выводит их отдельно?
Oleg
а это разве не оно?
не совсем. Нельзя сделать, чтобы эта кастомизация использовалась всегда для типа date (в любом датаклассе)
Kel0
def handle_mark(message): user_markup = telebot.types.ReplyKeyboardMarkup(one_time_keyboard=True) for mark in range(0, len(arr) - 1, 2): user_markup.row(str(arr[mark][0]), str(arr[mark + 1][0])) send1 = bot.send_message(message.from_user.id, "Выбирите Марку Машины: ", reply_markup=user_markup) bot.register_next_step_handler(send1, handle_text) def handle_text(message): user_markup = telebot.types.ReplyKeyboardMarkup() mark = message.text print(mark) for model in cars: if model[0] == mark: user_markup.row(model[1]) bot.send_message(message.from_user.id, "Выбирите Модель Машины: ", reply_markup=user_markup) model = message.text next_step_handler не работает в чем трабл?
Tishka17
в том, что ег овообще выкинуть из либы надо
Oleg
или, например, я хочу добавить новый тип Email = NewType('Email', str) @dataclass class Message: email: Email и чтобы для типа Email генерировался определенный mm field
Tishka17
правда я глубоок не копал что надо людям
Oleg
в моей либе можно
ну это просто must have фича. В marshmallow-annotations тоже есть такое
Александр
Я начитался книжек. Почему я не могу начать разработку? Ответ прост. Потому, что в голове мусор про: * Выбор ЯП * Выбор фреймворка * Функциональность * Компоненты, объекты, модули и связи * Выбор систем хранения данных * Выбор транспорта * Паттерны проектирования * Эффективность системы * Гибкость системы * Масштабируемость * Декомпозицию * Сопровождаемость * Переиспользование Нужно подчеркнуть, отсутствующее добавить https://specialistoff.net/page/416
Oleg
но пока не видел либ, которые поддерживали бы датаклассы, которые являются Generic'ами
Oleg
пример?
T = TypeVar('T') @dataclass class Foo(Generic[T]): value: T
Oleg
это утрированный пример, но иногда бывает нужно сделать dataclass дженериком
Tishka17
а как оно в словаре должно?
Oleg
а как оно в словаре должно?
ну мне сериализация/десериализация нужна уже для конкретного типа, например, Foo[int]
Oleg
т.е. в апишках уже точно будет указан принимаемый или возвращаемый тип, но, например, одна апишка может возвращать Foo[str], а другая Foo[int]
Tishka17
ну мне сериализация/десериализация нужна уже для конкретного типа, например, Foo[int]
мне инспект на инит такого класса говорит "(origin, params, *, inst=True, special=False, name=None)"
Tishka17
ЧЗХ?
Tishka17
завел issue
Oleg
запили мне PR =)
без проблем
Tishka17
там вроде понятно
Tishka17
надо взять поля из ориджина и потом не забыть в них реальные аргументы подставить
Tishka17
хотя второе хз как
Oleg
без проблем
блин, я че-то подумал про issue. PR тоже могу, но хз когда
Александр
Есть кто работал с библеотекой vk? Подскажите, почему ошибку выдает? че с версией не так?
Александр
Vladimir
в где?
В ошибке написано, что необходимо передавать версию апи
Александр
куда????
Vladimir
куда????
Куда-то в инициализатор скорее всего. В доке явно есть ответ
Tishka17
Это что мне в каждую схему писать @post_load def make(self, data): return User(**data) ?
Boriskas
поцоны скажите есть ли нормальный гит гуй под линукс что бы он мог в пассфрейз ключа?
Tishka17
зачем нужен гит гуй?
Boriskas
я хочу
Сережа
Git kraken pro
Сережа
Про пассфрейз хз, но вродь самый навороченый
Tishka17
LighteR а насколько дорого каждый раз создавать схему?
Tishka17
и наоборот можно ли переиспользовать инстанс
Oleg
LighteR а насколько дорого каждый раз создавать схему?
думаю, довольно дорого. Поэтому лучше один раз сделать
Oleg
обычно один и тот же инстанс схемы используют
Tishka17
ок
Oleg
хотя я обычно использовал https://github.com/lyft/toasted-marshmallow, там очень дорого создавать инстанс. Может в обычном marshmallow и не так критично
Enot
Читаю xlsx с помощью openpyxl. В самом xlsx файле есть группировка строк (rows). Как через openpyxl понять, что строки сгруппированы? Кто-то работал с ней?
Anonymous
народ на что это похоже? Написать HTTP-сервер для отдачи кластеров из гео-объектов на front. Гео-объекты хранить в базе.
AKozyrev@
на тестовое задание
Anonymous
оно и есть.
Anonymous
сколько это делается?
Oleg
сколько это делается?
кластеризацию надо самостоятельно реализовать?
Tishka17
сколько это делается?
две недели на соглаосвнаие ТЗ за 150к, а дальше посмотрим
Anonymous
кластеризацию надо самостоятельно реализовать?
или использовать готовые варианты