# Revision history [back]

Have you looked at the examples section of unpickle_all? I noticed the following there:

We unpickle the standard pickle jar. This doctest tests that all standard pickles unpickle. Every so often the standard pickle jar should be updated by running the doctest suite with the environment variable SAGE_PICKLE_JAR set, then copying the files from SAGE_ROOT/tmp/pickle_jar* into the standard pickle jar.

But I don't know much about pickling, so I don't know if this actually answers your question! Anyway, I hope it's helpful :)

Have you looked at the examples section of unpickle_all? I noticed the following there:

We unpickle the standard pickle jar. This doctest tests that all standard pickles unpickle. Every so often the standard pickle jar should be updated by running the doctest suite with the environment variable SAGE_PICKLE_JAR set, then copying the files from SAGE_ROOT/tmp/pickle_jar* into the standard pickle jar.

But I don't know much about pickling, so I don't know if this actually answers your question! Anyway, I hope it's helpful :)

EDIT: Judging by the docstring, I think the "standard pickle jar" is the contents of SAGE_DATA/extcode/pickle_jar/pickle_jar.tar.bz2:

sage: std = os.environ['SAGE_DATA'] + '/extcode/pickle_jar/pickle_jar.tar.bz2'
sage: std
'/Applications/sage/data/extcode/pickle_jar/pickle_jar.tar.bz2'


testing this:

$cd$SAGE_ROOT/devel/sage
$export SAGE_PICKLE_JAR="pickle"$ sage -t sage/rings/power_series_ring*
sage -t  "devel/sage-main/sage/rings/power_series_ring.py"
[4.3 s]
sage -t  "devel/sage-main/sage/rings/power_series_ring_element.pyx"
[3.3 s]

----------------------------------------------------------------------
All tests passed!
Total time for all tests: 7.7 seconds

\$ ls ../../tmp/pickle_jar*
_class__sage_rings_power_series_ring_PowerSeriesRing_domain__.sobj
_class__sage_rings_power_series_ring_PowerSeriesRing_domain__.txt
_class__sage_rings_power_series_ring_PowerSeriesRing_over_field__.sobj
_class__sage_rings_power_series_ring_PowerSeriesRing_over_field__.txt
_type__sage_rings_power_series_poly_PowerSeries_poly__.sobj
_type__sage_rings_power_series_poly_PowerSeries_poly__.txt



And this looks a lot like the contents of pickle_jar.tar.bz2.

So I guess all you have to do is add whatever new things are generated by your code to the pickle jar file (or maybe replace existing things with the new things).