Recursively convert lists to tuples, sets to frozensets, dicts to mappingproxy etc.
Project description
Recursively convert lists to tuples, sets to frozensets, dicts to mappingproxy etc.
Example usage::
import freezedata
data = {'a': [1,2,3], 'b': {1,2,3}, 'c': {1:1, 2:2, 3:3}}
frozendata = freezedata.freeze_data(data)
print(frozendata)
>> {'a': (1, 2, 3), 'b': frozenset({1, 2, 3}), 'c': mappingproxy({1: 1, 2: 2, 3: 3})}
This is an immutable data structure, that is; there is no direct way to alter this
data structure (without using some special modules(gc, inspect)). For example::
frozendata[c'][4] = 4
>> TypeError: 'mappingproxy' object does not support item assignment
del frozendata['b']
>> TypeError: 'mappingproxy' object does not support item deletion
**Notice**: Since a `mappingproxy` is not hashable, frozen data
structures containing `mappingproxy`s (i.e. based on `dict`s) will not be
hashable either::
hash(frozendata)
>> TypeError: unhashable type: 'mappingproxy'
Example usage::
import freezedata
data = {'a': [1,2,3], 'b': {1,2,3}, 'c': {1:1, 2:2, 3:3}}
frozendata = freezedata.freeze_data(data)
print(frozendata)
>> {'a': (1, 2, 3), 'b': frozenset({1, 2, 3}), 'c': mappingproxy({1: 1, 2: 2, 3: 3})}
This is an immutable data structure, that is; there is no direct way to alter this
data structure (without using some special modules(gc, inspect)). For example::
frozendata[c'][4] = 4
>> TypeError: 'mappingproxy' object does not support item assignment
del frozendata['b']
>> TypeError: 'mappingproxy' object does not support item deletion
**Notice**: Since a `mappingproxy` is not hashable, frozen data
structures containing `mappingproxy`s (i.e. based on `dict`s) will not be
hashable either::
hash(frozendata)
>> TypeError: unhashable type: 'mappingproxy'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
freezedata-1.0.tar.gz
(3.1 kB
view hashes)