Pre-release
This release is a pre-release and may not be stable for production use.
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.
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
|