Size: a a a

Сообщество Python Программистов

2021 February 01

Д

Дмитрий in Сообщество Python Программистов
Бензофуран Гетероцикл
Вот так

def sample(cls=None, /, *, **kwargs):
   def dispatch(**kwargs):
       def wrapper(cls):
           # some shit with
           # class cls
           #
           # args and kwargs
           # used here passes
           # from dispatch
           return cls
       return wrapper
   dispatched = dispatch(**kwargs)
   if not cls:
       return dispatched
   return dispatched(cls)
нехило...
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Дмитрий
нехило...
Чойта нехило? Простенько же совсем
Два базовых приёма используются вместе
источник

𝕬

𝕬𝖗𝖙𝖊𝖒 in Сообщество Python Программистов
Бензофуран Гетероцикл
Блед, ну кто с неймингом-то поможет?((
Ась?
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Декораторы + отделение позиционных аргументов от ииеновааных
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
источник

𝕬

𝕬𝖗𝖙𝖊𝖒 in Сообщество Python Программистов
Бензофуран Гетероцикл
Очередной вопрос про нейминг


Есть декоратор, который после вызова оборачиваемой функции создаёт событие
В коде его использование выглядит так:

@emit_on_call(SomeEvent)
async def some_func(...):
   ...



Сам декоратор примерно такое делает

def emit_on_call(event):
   def decorator(coro):
       async def wrapped(*args, **kwargs):
           result = await coro(*args, **kwargs)
           await event.emit(*args, **kwargs)
           return result
       return wrapped
   return decorator



Собсна мне чота кажется что название emit_on_call какое-то невыразительное. Как бы назвать по красоте?
emit_call_event?
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Бензофуран Гетероцикл
Тут ещё отдельная херня с тем что он оборачивает хендлеры aiohttp, и вытягивать из Реквесты параметры каждый раз кажется ну таким себе занятием...
Ну и вот с этим у меня тоже какие-то невнятные ощущения. Такое чувство как будто можно сделать это прям очень красиво, но не хватает для этого какой-то детали...
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
𝕬𝖗𝖙𝖊𝖒
emit_call_event?
ну чота такое
"Поднять событие вызова"
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
emit_event_after_call выглядит ок по смыслу, но сцуко какое-то длинное
источник

𝕬

𝕬𝖗𝖙𝖊𝖒 in Сообщество Python Программистов
Бензофуран Гетероцикл
ну чота такое
"Поднять событие вызова"
Да это собственно вполне логичное решение. Главная цель - event, выполняет - event, call - триггер
источник

𝕬

𝕬𝖗𝖙𝖊𝖒 in Сообщество Python Программистов
Бензофуран Гетероцикл
emit_event_after_call выглядит ок по смыслу, но сцуко какое-то длинное
Логичнее event и call заменить по очередности
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
𝕬𝖗𝖙𝖊𝖒
Логичнее event и call заменить по очередности
Не, эвент эмитится только после вызова функции и если функция отработала без исключений
источник

Д

Дмитрий in Сообщество Python Программистов
Бензофуран Гетероцикл
Не, эвент эмитится только после вызова функции и если функция отработала без исключений
А чо Вадим предложил?
источник

𝕬

𝕬𝖗𝖙𝖊𝖒 in Сообщество Python Программистов
Бензофуран Гетероцикл
emit_event_after_call выглядит ок по смыслу, но сцуко какое-то длинное
Пиши просто emit_event_call/emit_event_on_call и хер с ним
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Дмитрий
А чо Вадим предложил?
Промолчала золотая рыбка, только хвостиком махнула и была такова...
источник

Д

Дмитрий in Сообщество Python Программистов
Бензофуран Гетероцикл
Промолчала золотая рыбка, только хвостиком махнула и была такова...
Чойта? Вы с ним минимум полчаса в войсе общались...
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Дмитрий
Чойта? Вы с ним минимум полчаса в войсе общались...
Там про другое было
источник

Д

Дмитрий in Сообщество Python Программистов
Бензофуран Гетероцикл
Там про другое было
Ну тогда пингани его...
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Дмитрий
Ну тогда пингани его...
Он же опять ругаться будет)
источник

Д

Дмитрий in Сообщество Python Программистов
Бензофуран Гетероцикл
Он же опять ругаться будет)
Ну побухтит чутка, зато с неймингом поможет...
источник