Я хотел бы сериализовать на машине A и десериализовать на машине B питтон лямбда. Есть несколько очевидных проблем с этим:
- модуль рассола не сериализует или десериализует код. Он только сериализует имена классов/методов/функций
- некоторые из ответов, которые я нашел в google, предлагают использовать модуль маршала низкого уровня для сериализации атрибута func_code для лямбда, но они не могут описать, как можно восстановить объект функции из десериализованного объекта кода.
- marhshal (l.func_code) не будет сериализовать замыкание, связанное с лямбдой, что приведет к проблеме обнаружения, когда данной лямбде действительно нужно закрытие и предупреждение пользователю о том, что он пытается сериализовать лямбда, которая использует замыкание
Следовательно, мой вопрос (ы):
- как можно восстановить функцию из десериализованного (демаршаллированного) объекта кода?
- как можно обнаружить, что данная лямбда не будет работать должным образом без соответствующего закрытия?