[issue44342] enum with inherited type won't pickle

2021-06-07 Thread Tom Brown


New submission from Tom Brown :

The following script runs without error in 3.8.5 and raises an error in 3.8.6, 
3.9.5 and 3.10.0b1. 

Source:
```
import enum, pickle

class MyInt(int):
pass
# work-around: __reduce_ex__ = int.__reduce_ex__

class MyEnum(MyInt, enum.Enum):
A = 1

pickle.dumps(MyEnum.A)
```

Error (same in 3.8.6, 3.9.5 and 3.10.0b1):
```
Traceback (most recent call last):
  File "/home/thecap/projects/covid-data-model/./enum-pickle.py", line 12, in 

pickle.dumps(MyEnum.A)
  File "/home/thecap/.pyenv/versions/3.10.0b1/lib/python3.10/enum.py", line 83, 
in _break_on_call_reduce
raise TypeError('%r cannot be pickled' % self)
TypeError: MyEnum.A cannot be pickled
```

Like https://bugs.python.org/issue41889 this seems to be related to the fix for 
https://bugs.python.org/issue39587 which changes member_type from int to MyInt. 
A work-around is in the comment above.

--
components: Library (Lib)
messages: 395300
nosy: Tom.Brown
priority: normal
severity: normal
status: open
title: enum with inherited type won't pickle
versions: Python 3.10, Python 3.8, Python 3.9

___
Python tracker 
<https://bugs.python.org/issue44342>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue12657] Cannot override JSON encoding of basic type subclasses

2018-11-15 Thread Tom Brown


Tom Brown  added the comment:

I found this work-around useful https://stackoverflow.com/a/32782927

--
nosy: +Tom.Brown

___
Python tracker 
<https://bugs.python.org/issue12657>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com