Skip to main content

Utilities for traversing and transforming data structures

Project description

Utilities for traversing and transforming data structures

reach(source, pattern, [options])

Converts an object key chain string to reference

  • options - optional settings

    • separator - string to split chain path on, defaults to ‘.’

    • default - value to return if the path or value is not present, default is None

    • strict - if true, will throw an error on missing member, default is False

A pattern including negative numbers will work like negative indices on an array.

If chain is False-y, the object itself will be returned.

from schleppy import reach

pattern = 'a.b.c'
source_obj = {'a' : {'b' : { 'c' : 1}}}

reach(source_obj, pattern) # returns 1

pattern = 'a.b.-1'
source_obj = {'a' : {'b' : [2,3,6]}}

reach(source_obj, pattern) # returns 6

transform(source, transform, [options])

Transforms an existing object into a new one based on the supplied obj and transform map. options are the same as the reach options. The first argument can also be an array of objects. In that case the method will return an array of transformed objects. Note that options.separator will be respected for the keys in the transform object as well as values.

source = {
    'address': {
        'one': '123 main street',
        'two': 'PO Box 1234'
    },
    'title': 'Warehouse',
    'state': 'CA'
}

result = transform(source, {
    'person.address.lineOne': 'address.one',
    'person.address.lineTwo': 'address.two',
    'title': 'title',
    'person.address.region': 'state'
})
# Results in
# {
#     'person': {
#         'address': {
#             'lineOne': '123 main street',
#             'lineTwo': 'PO Box 1234',
#             'region': 'CA'
#         }
#     },
#     'title': 'Warehouse'
# }

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

schleppy-0.4.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

schleppy-0.4-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file schleppy-0.4.tar.gz.

File metadata

  • Download URL: schleppy-0.4.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/28.8.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.5.2

File hashes

Hashes for schleppy-0.4.tar.gz
Algorithm Hash digest
SHA256 57ddfb54c3a44d2e930a03f9ca3f29b8b04ef10adee5da137a0ea3ae3714b6f0
MD5 1906a5bcf950bd22b2afea2e30df2719
BLAKE2b-256 aa3e099a5dc26d1a38270319922804877759ca141b219bcbba32f3464af89db2

See more details on using hashes here.

File details

Details for the file schleppy-0.4-py3-none-any.whl.

File metadata

  • Download URL: schleppy-0.4-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/28.8.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.5.2

File hashes

Hashes for schleppy-0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 085880dbe045797e447b4a38cbbbb4e4e0b49e86280593adcb0f9a0a620d6eee
MD5 18aa588ddc58d248fb178860cd841365
BLAKE2b-256 1d297d257d52a361f69323e796c3a870b39b195b202ecd601dc55573807c2801

See more details on using hashes here.

Supported by

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