[Python-Dev] Add a frozendict builtin type
Mark Shannon
mark at hotpy.org
Tue Feb 28 19:13:01 CET 2012
Victor Stinner wrote:
>>> * frozendict values must be immutable, as dict keys
>> Why? That may be useful, but an immutable dict whose values
>> might mutate is also useful; by forcing that choice, it starts
>> to feel too specialized for a builtin.
>
> Hum, I realized that calling hash(my_frozendict) on a frozendict
> instance is enough to check if a frozendict only contains immutable
> objects. And it is also possible to check manually that values are
> immutable *before* creating the frozendict.
>
> I also prefer to not check for immutability because it does simplify
> the code :-)
>
> $ diffstat frozendict-3.patch
> Include/dictobject.h | 9 +
> Lib/collections/abc.py | 1
> Lib/test/test_dict.py | 59 +++++++++++
> Objects/dictobject.c | 256 ++++++++++++++++++++++++++++++++++++++++++-------
> Objects/object.c | 3
> Python/bltinmodule.c | 1
> 6 files changed, 295 insertions(+), 34 deletions(-)
>
> The patch is quite small to add a new builtin type. That's because
> most of the code is shared with the builtin dict type. (But the patch
> doesn't include the documentation, it didn't write it yet.)
>
Could you create an issue for this on the tracker, maybe write a PEP.
I don't think sending patches to this mailing list is the way to do this.
Would you mind taking a look at how your code interacts with PEP 412.
Cheers,
Mark.
More information about the Python-Dev
mailing list