Как стать автором
Обновить

Комментарии 9

Докатились, статьи на Хабре где тупо выкидывают ответ ллм модели…

Ок. Понял.

Переписал. Полностью рабочий код, только gc что то тупил пришлось пока убрать. Обычно в комбинации с декораторами работает нормально.

Не стоит использовать function composition. Они не обрабатываются стандартным pickle и потому не могут быть переданы на выполнение в соседний поток или процесс. Больше тут: The Ghosts of Distant Objects | PyCon Lithuania 2024 https://pycon.lt/2024/talks/YUXXZS

Спасибо, на досуге почитаю.

danilovmy вы про который function composition ? и что за странная ссылка pycon, что там читать ?

@zoldaten, спасибо за вопрос. На всякий случай уточню, что мой предыдущий комментарий относится к этому моменту статьи:

  • Не используй классы. Применяй Inline-функции def.

Я встречал, как вложенные функции в одну функцию называют functions composition (fc). (без пруфа)

Читать про вложенные функции можно, например, тут https://realpython.com/inner-functions-what-are-they-good-for/#creating-python-inner-functions. правда там обертку для вложенных функций никак не называют.

Описание проблемы "запикливания" функций, содержащих вложенные функции, можно найти тут: https://stackoverflow.com/questions/72766345/attributeerror-cant-pickle-local-object-in-multiprocessing, первый ответ про "pickle can only serialize top-module level functions in general".

По моей ссылке на PyCon надо не читать, а смотреть про то, как чел рассказывает и показывает что врожденный pickle не работает при передаче fc между процессами, и какой костыль они соорудили в библиотеке dill, чтобы сделать это возможным.

В стилистике fc написан FastAPI, благодаря чему он не работает в интеграционных тестах с использованием multiprocessing и авторам Fastapi понадобилось соорудить целый доп класс для тестов. дискуссия по этому поводу тут: https://github.com/fastapi/fastapi/discussions/10213

Как я понял он про передачу данных между процессами, если передавать данные локально, то да лучше сериализавать в pickle.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации