Skip to main content

The "turn a dict from one API into a dict for another" python module.

Project description

transmogrifydict

The "map a dict from one API into a dict for another" python module.

That dict is so cool...

master

Tests Coverage

Tests Coverage

Tests Coverage

Tests Coverage

Tests Coverage

Flake8

develop

Tests Coverage

Tests Coverage

Tests Coverage

Tests Coverage

Tests Coverage

Flake8

methods

  • resolve_mapping_to_dict(mapping, source) - move values from source into a returned dict, using mapping for paths and returned keys.

    from transmogrifydict import resolve_mapping_to_dict
    
    mapping = {
        'a': 'd',
        'b': 'e',
        'c': 'f'
    }
    
    source = {
        'd': 1,
        'e': 2,
        'f': 3
    }
    
    resolve_mapping_to_dict(mapping, source)
    # {
    #     'a': 1,
    #     'b': 2,
    #     'c': 3,
    # }
    
  • resolve_path_to_value(source, path) - fetch a value out of source using path as the pointer to the desired value. see docstring for path string formats.

    from transmogrifydict import resolve_path_to_value
    
    source = {
        'd': 1,
        'e': 2,
        'f': 3
    }
    
    found, value = resolve_path_to_value(source, 'e')
    
    print((found, value))
    # (True, 2)
    

path or mapping value format

from transmogrifydict import resolve_path_to_value

source = {
    'some-key': {
        'another-key': '123'
    }
}

# dot notation can be used to descend into dictionaries.
resolve_path_to_value(source, 'some-key.another-key')
# (True, '123')

source = {
    'some-key': '{"another-key":"123"}'
}

# dot notation can also be used to descend into json strings that are dictionary like
resolve_path_to_value(source, 'some-key.another-key')
# (True, '123')

source = {
    'some-key': {
        'another-key': ['1', '2', '3']
    }
}

# square brackets can be used to get specific indexes from a list
resolve_path_to_value(source, 'some-key.another-key[1]')
# (True, '2')

source = {
    'some-key': {
        'another-key': [
            {
                'filter-key': 'yeah',
                'each-key': 'a',
            },
            {
                'filter-key': 'yeah',
                'each-key': 'b',
            },
            {
                'filter-key': 'nah',
                'each-key': 'c',
            }
        ]
    }
}

# dot notation can be used after square brackets if the list contains dict-like values
resolve_path_to_value(source, 'some-key.another-key[1].each-key')
# (True, ['b']) 

# square brackets can be used to iterate over arrays to descend into the items
resolve_path_to_value(source, 'some-key.another-key[].each-key')
# (True, ['a', 'b', 'c'])

# when iterating over a list, a filter can be applied using [key=value]
resolve_path_to_value(source, 'some-key.another-key[filter-key=yeah].each-key')
# (True, ['a', 'b'])

source = {
    'a-key': [
        {
            'b-key': {
                'c-key': 1,
                'd-key': 2,
            }
        },
        {
            'b-key': {
                'c-key': 1,
                'd-key': 3,
            }
        },
        {
            'b-key': {
                'c-key': 0,
                'd-key': 4,
            }
        }
    ]
}
# tidle notation can be used to filter on sub keys of dict list items.
resolve_path_to_value(source, 'a-key[b-key~c-key=1].b-key.d-key')
# (True, [2, 3, 4])
# 

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

transmogrifydict-1.1.3.post1.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

transmogrifydict-1.1.3.post1-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file transmogrifydict-1.1.3.post1.tar.gz.

File metadata

  • Download URL: transmogrifydict-1.1.3.post1.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.5.9

File hashes

Hashes for transmogrifydict-1.1.3.post1.tar.gz
Algorithm Hash digest
SHA256 38991572abd66ea7a657917be94751cf32278f5d742b5d2fef3963b34211d05e
MD5 7a2f92ebdea8ea96220bda57c6f387e9
BLAKE2b-256 fad5e5bef42bb9378149ad909c070010666a1d2620ac8eae3235e52a99832b5d

See more details on using hashes here.

File details

Details for the file transmogrifydict-1.1.3.post1-py3-none-any.whl.

File metadata

  • Download URL: transmogrifydict-1.1.3.post1-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.5.9

File hashes

Hashes for transmogrifydict-1.1.3.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 9e624db49b400e2c32e26ad139f9d45d19156e06ffeac17f808453408cc0ea16
MD5 0a98a761283fb9f3166016881ce27a3e
BLAKE2b-256 384f705a865d700e8e1858c8adbabd787cf1f5beb246a8b0d46988a45c8b617f

See more details on using hashes here.

Supported by

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