[issue31209] MappingProxyType can not be pickled

2017-08-28 Thread Alex Hayes

Alex Hayes added the comment:

Closing issue - thanks rhettinger

--
resolution:  -> not a bug
stage:  -> resolved
status: open -> closed

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



[issue31209] MappingProxyType can not be pickled

2017-08-22 Thread Alex Hayes

Alex Hayes added the comment:

Some background. I'm not actually trying to pickle MappingProxyType, I'm using 
the schematics [1] library and recently it broke support for pickle [2] and the 
cause of that is because they are using MappingProxyType [3] internally (when 
they used to use dict).

The Python docs on MappingProxyType [4] provides an appropriate level of API 
documentation but what it doesn't cover is when you should or should not use 
MappingProxyType (understandably, it's most likely a complex answer). However, 
I imagine that it's being used in schematics because at the bottom of the 
Python dict documentation [5] it states;

> See also types.MappingProxyType can be used to create a read-only view of a 
> dict.

To answer the question "What would be the point of pickling a MappingProxy?" I 
would probably have to ask, what is the intended use of MappingProxyType?

If one was unfamiliar with the way in which pickle and MappingProxyType works I 
imagine they would think there would be no reason why a "read-only view of a 
dict" can't be pickled.

So I guess my questions now are;

1. Should types.MappingProxyType be pickleable?
2. Should there be some documentation about the intended use of 
MappingProxyType?

I imagine the answer to the first question is "no" given how `__setstate__` 
works.




[1] https://github.com/schematics/schematics
[2] https://github.com/schematics/schematics/issues/510
[3] https://github.com/schematics/schematics/pull/511
[4] https://docs.python.org/3/library/types.html#types.MappingProxyType
[5] https://docs.python.org/3/library/stdtypes.html#dict

--

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



[issue31209] MappingProxyType can not be pickled

2017-08-14 Thread Alex Hayes

New submission from Alex Hayes:

I imagine that this is by design (likely because it can't be implemented) 
however I wanted to check if this was the case.

Instances of types.MappingProxyType can't be pickled.

For example;

```
import pickle
from types import MappingProxyType
eggs = MappingProxyType(dict(sausage=True))
pickle.dumps(eggs)
```

Raises: TypeError: can't pickle mappingproxy objects



Is this the desired behaviour or is it a bug?

--
components: Library (Lib)
messages: 300284
nosy: Alex Hayes
priority: normal
severity: normal
status: open
title: MappingProxyType can not be pickled
type: behavior
versions: Python 3.6

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