Metadata-Version: 1.0
Name: pathdict
Version: 0.0.4
Summary: UNKNOWN
Home-page: https://github.com/diogommartins/pathdict
Author: Diogo Magalhães Martins
Author-email: magalhaesmartins@icloud.com
License: UNKNOWN
Description: # PathDict
        
        [![Build Status](https://travis-ci.org/diogommartins/simple_json_logger.svg?branch=master)](https://travis-ci.org/diogommartins/pathdict)
        [![codecov](https://codecov.io/gh/diogommartins/simple_json_logger/branch/master/graph/badge.svg)](https://codecov.io/gh/diogommartins/pathdict)
        
        Extended dict with the capability of accessing and manipulating nested itens 
        using a path notation.
        
        ## Installation
        
        ```
        pip install pathdict
        ```
        
        ## Examples
        
        You can change your chained multiple access operator with a dotted path notation:
        
        ```python
        from pathdict import PathDict
        
        
        path_dict = PathDict({
            'dogs': {
                'male': 'Xablau',
                'female': 'Xena'
            },
            'enterprises': ['B2W', 'Sieve'],
            'author': '@diogommartins'
        })
        
        # Same as path_dict['dogs']['female']
        print(path_dict['dogs.female'])
        >>> 'Xena'
        ```
        
        Lists are also accessible by the path notation:
        
        ```python
        from pathdict import PathDict
        
        
        path_dict = PathDict({
            'mammalia': {
                'ferae': {
                    'carnivora': [
                        'carnidae',
                        'felidae',
                        'mustelidae',
                        'ursidae',
                        'viverridae'
                    ]       
                },
                'something': {
                    'wiki': 'pedia'
                }
            }
        })
        
        # Same as path_dict['mammalia']['ferae']['carnivora'][3]
        print(path_dict['mammalia.ferae.carnivora.3'])
        >>> 'ursidae'
        ```
        
        Everything you do with a normal python `dict` will work.
        
        ## Customization
        
        The default `separator` is `.` but you can change it using the `separator` kwarg.
        
        ```python
        from pathdict import PathDict
        
        
        path_dict = PathDict({
            'mammalia': {
                'ferae': {
                    'carnivora': [
                        'carnidae',
                        'felidae',
                        'mustelidae',
                        'ursidae',
                        'viverridae'
                    ]
                },
                'something': {
                    'wiki': 'pedia'
                }
            }
        }, separator='/')
        
        
        print(path_dict['mammalia/ferae/carnivora/3'])
        >>> 'ursidae'
        ```
        
        It is possible to let `PathDict` generate the steps to a given path:
        
        ```python
        from pathdict import PathDict
        
        
        path_dict = PathDict(create_if_not_exists=True)
        path_dict['the.answer.to.all.problems'] = 42
        
        print(path_dict)
        >>> {'the': {'answer': {'to': {'all': {'problems': 42}}}}}
        
        ```
        
Keywords: collection dictionary dict path dotted
Platform: UNKNOWN
