Size: a a a

2021 January 02

🚲U

🚲 Oleh Kopyl UI/UX d... in SPb Python
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in SPb Python
Есть смысл разбивать на более мелкие функции этот декоратор?

Если да, то как лучше это сдлеать?
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in SPb Python
🚲 Oleh Kopyl UI/UX designer
Есть смысл разбивать на более мелкие функции этот декоратор?

Если да, то как лучше это сдлеать?
Разве что можно вынести это вот отдельно, не?
источник

ES

Egor Suvorov in SPb Python
🚲 Oleh Kopyl UI/UX designer
Есть такой класс.

Как не наворачивать на каждую божью функцию декоратор?

Сделать что-то типа

@cookie_ensurer
def __init__(self):
Можно сделать метакласс, который сам навернет на все функции нужный декоратор.

Или можно после объявления класса пройти циклом по методам и навернуть: https://stackoverflow.com/questions/3467526/attaching-a-decorator-to-all-functions-within-a-class
источник

ES

Egor Suvorov in SPb Python
🚲 Oleh Kopyl UI/UX designer
Есть 3 треда.

Как только последний – телебот – выкидывает в стрим ошибку (но все равно не падает ипродолжает работать), так прекращает полностью работать первый тред.

Уже второй раз такое наблюдаю, никак не могу понять в чем же проблема...

Почему так может происходить и как можно фиксить это?

Пока что попробовал поменять порядок тредов, посмотрим как оно теперь будет себя вести. Но я чет очень сомневаюсь что это поможет.

Еще думаю перейти обратно с infinity_polling на polling с маленьким таймаутом. Но тоже не особо верится что это решит проблему.

Кто-то сталкивался?
Тут надо смотреть код детальнее. Например, может быть такое, что если телебот вернул ошибку, то он это делает сразу во всех потоках.
источник

ES

Egor Suvorov in SPb Python
🚲 Oleh Kopyl UI/UX designer
Как заставить программу сохранять ВСЕ обьекты после создания каждого божьего обьекта? Чтобы не писать по 100 раз код

И чтобы потом сделать что-то from past import last_app_memory

Зачем?

Например:

Запускаешь в программе response = requests..., который обрабатывается ну оочень долго.

Потом программа падает, а ты понимаешь что лучше не делать новый реквест по 3 часа, а вызвать его из прошлого, скажем так.
Все объекты скорее всего никак. Причина: объекты могут ссылаться на объекты ОС (файлы, сокеты, пайпы), их так просто не восстановить.

Но наверняка requests умеет либо сам кэшировать запросы, либо есть пакеты для этого.
источник

ES

Egor Suvorov in SPb Python
🚲 Oleh Kopyl UI/UX designer
Правильно ли так отделять импорты по категориям?
Зависит от стайлгайда в проекте.

Я обычно видел, что внутри каждой группы сортируют строчки по алфавиту
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in SPb Python
Egor Suvorov
Все объекты скорее всего никак. Причина: объекты могут ссылаться на объекты ОС (файлы, сокеты, пайпы), их так просто не восстановить.

Но наверняка requests умеет либо сам кэшировать запросы, либо есть пакеты для этого.
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in SPb Python
Egor Suvorov
Зависит от стайлгайда в проекте.

Я обычно видел, что внутри каждой группы сортируют строчки по алфавиту
Спасибо :)
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in SPb Python
Egor Suvorov
Можно сделать метакласс, который сам навернет на все функции нужный декоратор.

Или можно после объявления класса пройти циклом по методам и навернуть: https://stackoverflow.com/questions/3467526/attaching-a-decorator-to-all-functions-within-a-class
Сложно. Уж проще тогдак руками накидывать декораторы, пока их не 100500
источник

ES

Egor Suvorov in SPb Python
🚲 Oleh Kopyl UI/UX designer
Есть смысл разбивать на более мелкие функции этот декоратор?

Если да, то как лучше это сдлеать?
Мне кажется, не стоит. Только если обнаружите, что тело с логикой перезапроса и сообщения об ошибке используется ещё где-то

Кстати, рекомендую @functools.wraps(fn)
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in SPb Python
Egor Suvorov
Мне кажется, не стоит. Только если обнаружите, что тело с логикой перезапроса и сообщения об ошибке используется ещё где-то

Кстати, рекомендую @functools.wraps(fn)
Зачем мне знать на что я навернул декоратор?)
источник

ES

Egor Suvorov in SPb Python
Что-то такое, похоже
источник

ES

Egor Suvorov in SPb Python
🚲 Oleh Kopyl UI/UX designer
Зачем мне знать на что я навернул декоратор?)
Оно пробросит name, doc, сигнатуру функции из fn во wrapped и ещё по мелочи.

Сейчас у вас с декорированными функциями не будет работать help() или inspect вообще никак, что в будущем может быть не очень приятно, а чинится одной строкой в декораторе
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in SPb Python
Egor Suvorov
Оно пробросит name, doc, сигнатуру функции из fn во wrapped и ещё по мелочи.

Сейчас у вас с декорированными функциями не будет работать help() или inspect вообще никак, что в будущем может быть не очень приятно, а чинится одной строкой в декораторе
А зачем это нужно?)
источник

ES

Egor Suvorov in SPb Python
Какие-то пакеты могут использовать. Например, если вы захотите, скажем, туда добавить ещё декоратор, который логирует все вызовы с учётом параметров по умолчанию. Сейчас они не будут учтены и логи будут думать, что у функции параметры (*args, **kwargs)
источник

ES

Egor Suvorov in SPb Python
А, ещё просто имя функции будет в таких логах всегда "wrapped"
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in SPb Python
Egor Suvorov
Какие-то пакеты могут использовать. Например, если вы захотите, скажем, туда добавить ещё декоратор, который логирует все вызовы с учётом параметров по умолчанию. Сейчас они не будут учтены и логи будут думать, что у функции параметры (*args, **kwargs)
Декораторов и правда 2
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in SPb Python
Egor Suvorov
А, ещё просто имя функции будет в таких логах всегда "wrapped"
ну да
источник

ES

Egor Suvorov in SPb Python
Egor Suvorov
А, ещё просто имя функции будет в таких логах всегда "wrapped"
Вместо fn.__name__
источник