Skip to main content

No project description provided

Project description

Build Status codecov

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:

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:

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.

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:

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}}}}}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pathdict-0.0.7.tar.gz (2.6 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page