Pythonの「units」パッケージ(http://pypi.python.org/pypi/units/)を使用していますが、それらをピクルスにしようとすると問題が発生しました。私はそれを可能な限り単純なケースに要約して、何が起こっているのかを理解しようとしました。これが私の簡単なテストです:
from units import unit, named_unit
from units.predefined import define_units
from units.compatibility import compatible
from units.registry import REGISTRY
a = unit('m')
a_p = pickle.dumps(a)
a_up = pickle.loads(a_p)
logging.info(repr(unit('m')))
logging.info(repr(a))
logging.info(repr(a_up))
logging.info(a.is_si())
logging.info(a_up.is_si())
logging.info( compatible(a,a_up) )
logging.info(a(10) + a_up(10))
これを実行したときに表示される出力は次のとおりです。
LeafUnit('m', True)
LeafUnit('m', True)
LeafUnit('m', True)
True
True
False
IncompatibleUnitsError
repr()が同じ結果を返しているという事実がなければ、ピクルスユニットがそれらを壊したかどうかは理解できます。私は何が欠けていますか?
これは、unitsパッケージのv0.04とGoogle App Engine 1.4SDK1を使用しています。