Message157036
Patch version 4, it is ready for a review. Summary of the patch:
- expose the internal dict_proxy() type (used for __dict__ of user classes) as types.MappingViewType (it was exposed a types.DictProxyType in Python 2)
- repr(types.MappingViewType) returns 'mappingview(...)' instead of 'dict_proxy(...)'
- implement mappingview.__new__()
- mappingview constructors (mappingview.__new__() and PyDictProxy_New) rejects sequences
- Keep PyDictProxy_New() and PyDictProxy_Type names for backward compatibility
- mappingview_contains() calls PySequence_Contains() for types other than dict (instead of PyDict_Contains)
- Write a doc and a lot of tests
- Rename the internal "dict" attribute to "mapping" (this change may be reverted if it impacts backward compatibility)
I added the new tests to test_descr. Is test_types a better place for these types (the type is exposed in the types module, but implemented in descrobject.c)? I leaved the object implementation in descrobject.c to not have to add a new short file and to keep the Mercurial history. The file does still contain this funny comment:
/* This has no reason to be in this file except that adding new files is a
bit of a pain */
MappingViewType constructor accepts any mapping: dict, collections.ChainMap, ... Sequences are rejected: tuple, list, dict_view, etc. |
|
Date |
User |
Action |
Args |
2012-03-29 11:52:30 | vstinner | set | recipients:
+ vstinner, gvanrossum, georg.brandl, rhettinger, pitrou, giampaolo.rodola, eric.araujo, Arfrever, r.david.murray, michael.foord, skrah, eric.snow, poq, Jim.Jewett |
2012-03-29 11:52:30 | vstinner | set | messageid: <1333021950.86.0.90353592993.issue14386@psf.upfronthosting.co.za> |
2012-03-29 11:52:30 | vstinner | link | issue14386 messages |
2012-03-29 11:52:30 | vstinner | create | |
|