CONstrained CONtainers: immutable and append-only container subclasses and utilities.
Project description
concon (CONstrained CONtainers) provides usefully constrained container subtypes:
frozenlist
frozendict
frozenset - (Note this is a synonym for the builtin frozenset for completeness.)
appendonlylist
appendonlydict
appendonlyset
Examples
>>> import concon >>> d = concon.appendonlydict() >>> d['foo'] = 'bar' >>> d.items() [('foo', 'bar')] >>> d['foo'] = 'quz' Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/n/virtualenvs/default/lib/python2.7/site-packages/concon.py", line 102, in setitem_without_overwrite raise OverwriteError(key, value, d[key]) concon.OverwriteError: Attempted overwrite of key 'foo' with new value 'quz' overwriting old value 'bar' >>> l = concon.frozenlist(['a', 'b', 'c']) >>> l[1] 'b' >>> l.append(42) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/n/virtualenvs/default/lib/python2.7/site-packages/concon.py", line 37, in blocked_method raise cls(self, method.__name__, a, kw) concon.ConstraintError: Attempt to call ['a', 'b', 'c'].append (42,) {} violates constraint. >>> l[2] = 42 Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/n/virtualenvs/default/lib/python2.7/site-packages/concon.py", line 37, in blocked_method raise cls(self, method.__name__, a, kw) concon.ConstraintError: Attempt to call ['a', 'b', 'c'].__setitem__ (2, 42) {} violates constraint.
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
File details
Details for the file concon-1.39f12a0e86e50b0895d998c8c5b8d00e80d7abb6.tar.gz
.
File metadata
- Download URL: concon-1.39f12a0e86e50b0895d998c8c5b8d00e80d7abb6.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6a2f832a0707c2ab2b253681cbd1dc422aae646c4553fb4ea8456b81a4c2746 |
|
MD5 | ed809366d986172d49841fd9b2dbc4c6 |
|
BLAKE2b-256 | 864339236f8d7d4d2c2682978fed8fee765be5e81130a3befb721c870f936373 |