Metadata-Version: 2.1
Name: pyfrozen
Version: 0.1.0
Summary: Set of collections with ability to freeze their items
Home-page: https://github.com/Gr1N/pyfrozen
Author: Nikita Grishko
Author-email: gr1n@protonmail.com
License: UNKNOWN
Project-URL: Bug Reports, https://github.com/Gr1N/pyfrozen/issues
Project-URL: Source, https://github.com/Gr1N/pyfrozen
Description: # pyfrozen [![Build Status](https://travis-ci.org/Gr1N/pyfrozen.svg?branch=master)](https://travis-ci.org/Gr1N/pyfrozen) [![codecov](https://codecov.io/gh/Gr1N/pyfrozen/branch/master/graph/badge.svg)](https://codecov.io/gh/Gr1N/pyfrozen)
        
        Set of collections with ability to freeze their items.
        
        ## Installation
        
            $ pip install pyfrozen
        
        ## Usage
        
            >>> 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'])>
            >>>
        
        ## Testing and linting
        
        For testing and linting install [tox](http://tox.readthedocs.io):
        
            $ pip install tox
        
        ...and run:
        
            $ tox
        
        ## TODO
        
        - [ ] Implement all collections using [Cython](http://cython.org)
        
        ## License
        
        `pyfrozen` is licensed under the MIT license. See the license file for details.
        
Keywords: collections frozen freeze
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/markdown
