frozentype

Package frozentype provide some frozen python types (frozendict (C based) and frozenmap (Cython based))


Keywords
frozen, type, mapping, immutable, dict
License
MIT
Install
pip install frozentype==0.6.0.1

Documentation

frozentype

frozentype is MIT Licensed python library. It implements some frozen python types: frozendict type (in C) and FrozenDict, FrozenMap classes (in Cython).

  • frozendict is read-only and hashable dictionary (C based).
  • FrozenMap is read-only mapping object wrapped around a mutable mapping object (Cython based).
  • FrozenDict is read-only and hashable dictionary (Cython based).

This library actually is an attempt to proof the concept of fast frozendict (C/Cython based).

Main repository for frozentype is on bitbucket.

Quick start:

First load inventory:

>>> from frozentype import frozendict, FrozenDict

Simple example:

>>> fd = frozendict(a=1,b=2,c=3)
>>> fd
frozendict({'a': 1, 'b': 2, 'c': 3})
>>> fd['a']
1
>>> fd['a'] = 10
........
TypeError: 'frozentype._frozendict.frozendict' object does not support item assignment
>>> del fd['a']
.........
TypeError: 'frozentype._frozendict.frozendict' object does not support item deletion
>>> fd.pop('a')
.........
AttributeError: 'frozentype._frozendict.frozendict' object has no attribute 'pop'


>>> fd = FrozenDict(a=1,b=2,c=3)
>>> print(fp)
FrozenDict({'a': 1, 'b': 2, 'c': 3})
>>> fd['a']
1
>>> fd['a'] = 10
........
TypeError: 'frozentype.frozendict.FrozenDict' object does not support item assignment
>>> del fd['a']
.........
TypeError: 'frozentype.frozendict.FrozenDict' object does not support item deletion
>>> fd.pop('a')
.........
AttributeError: 'frozentype.frozendict.FrozenDict' object has no attribute 'pop'

Changes:

** 0.6.0.1 ** (technical version to convince pypi to upload project with fixed title in README)

** 0.6 ** (migrate from project intellimath/frozenmap)

  • Add C implementation for frozendict.
  • Add tests for frozendict type.

0.5 Initial version