具有冻结其项目功能的集合集
pyfrozen的Python项目详细描述
冰冻的
具有冻结其项目功能的集合集。
安装
$ pip install pyfrozen
用法
>>> from pyfrozen import FrozenDict, FrozenList
>>>
>>> fd = FrozenDict()
>>> fd['key_1'] = 'value_1'
>>> fd
<FrozenDict(frozen=False, {'key_1': 'value_1'})>
>>> fd.freeze()
>>> fd
<FrozenDict(frozen=True, {'key_1': 'value_1'})>
>>> fd['key_1'] = 'value_2'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/pyfrozen/pyfrozen/frozendict.py", line 23, in __setitem__
self.assert_frozen()
File "/pyfrozen/pyfrozen/frozendict.py", line 45, in assert_frozen
raise RuntimeError('Cannot modify frozen dict')
RuntimeError: Cannot modify frozen dict
>>> fd
<FrozenDict(frozen=True, {'key_1': 'value_1'})>
>>>
>>> fl = FrozenList()
>>> fl.extend(['value_1', 'value_2'])
>>> fl
<FrozenList(frozen=False, ['value_1', 'value_2'])>
>>> fl.freeze()
>>> fl.pop()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/lib/python3.6/_collections_abc.py", line 997, in pop
del self[index]
File "/pyfrozen/pyfrozen/frozenlist.py", line 29, in __delitem__
self.assert_frozen()
File "/pyfrozen/pyfrozen/frozenlist.py", line 56, in assert_frozen
raise RuntimeError('Cannot modify frozen list')
RuntimeError: Cannot modify frozen list
>>> fl
<FrozenList(frozen=True, ['value_1', 'value_2'])>
>>>
贡献
要使用pyfrozen
代码库,您需要在本地克隆项目并通过poetry:
$ git clone git@github.com:Gr1N/pyfrozen.git
$ poetry install
要运行测试和linter,请使用下面的命令:
$ poetry run tox
如果只想运行测试或linter,可以显式指定要运行的测试环境,例如:
$ poetry run tox -e py37-tests
待办事项
- []使用Cython 实现所有集合
许可证
pyfrozen
在mit许可下获得许可。有关详细信息,请参见许可文件。