A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2013-June/126779.html below:

[Python-Dev] doctest and pickle

[Python-Dev] doctest and pickleEthan Furman ethan at stoneleaf.us
Sat Jun 8 09:03:14 CEST 2013
On 06/07/2013 11:45 PM, Steven D'Aprano wrote:
> On 08/06/13 15:18, Stephen J. Turnbull wrote:
>> Ethan Furman writes:
>>
>>   > Enumerations can be pickled and unpickled::
>>   >
>>   >      >>> from enum import Enum
>>   >      >>> class Fruit(Enum):
>>   >      ...     tomato = 1
>>   >      ...     banana = 2
>>   >      ...     cherry = 3
>>   >      ...
>>   >      >>> from pickle import dumps, loads
>>   >      >>> Fruit.tomato is loads(dumps(Fruit.tomato))
>>   >      True
>>   > [...]
>>   > Still, it would be nice if this could work.
>>
>> Well, you could cheat and reverse the test. ;-)
>>
>> I assume the problem is that loads proceeds to recreate the Fruit
>> enum, rather than checking if there already is one?
>
>
> I don't believe so. I understand that the problem is that pickle cannot find the Fruit enum in the __main__ module.
>
> Untested, but adding this before the call to dumps might work:
>
> import __main__
> __main__.Fruit = Fruit
>
>
> although that's the sort of thing that makes me think it's time to turn this into a unittest rather than a doctest.

Indeed, and it is already in several different ways.  But it would be nice to have a pickle example in the docs that 
worked with doctest.

I ended up doing what Barry did:

     >>> from test.test_enum import Fruit
     >>> from pickle import dumps, loads
     >>> Fruit.tomato is loads(dumps(Fruit.tomato))
     True

--
~Ethan~
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4