Skip to main content

a toolset to deeply merge python dictionaries.

Reason this release was yanked:

broken, does not ship with the module.

Project description

https://travis-ci.org/toumorokoshi/deepmerge.svg?branch=master

A tools to handle merging of nested data structures in python.

Installation

deepmerge is available on pypi:

pip install deepmerge

Example

Generic Strategy

from deepmerge import always_merger

base = {"foo": ["bar"]}
next = {"foo": ["baz"]}

expected_result = {'foo': ['bar', 'baz']}
result = always_merger.merge(base, next)

assert expected_result == result

Custom Strategy

from deepmerge import Merger

my_merger = Merger(
    # pass in a list of tuple, with the
    # strategies you are looking to apply
    # to each type.
    [
        (list, ["append"]),
        (dict, ["merge"]),
        (set, ["union"])
    ],
    # next, choose the fallback strategies,
    # applied to all other types:
    ["override"],
    # finally, choose the strategies in
    # the case where the types conflict:
    ["override"]
)
base = {"foo": ["bar"]}
next = {"bar": "baz"}
my_merger.merge(base, next)
assert base == {"foo": ["bar"], "bar": "baz"}

You can also pass in your own merge functions, instead of a string.

For more information, see the docs

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

deepmerge-1.0.0.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

deepmerge-1.0.0-py3-none-any.whl (2.6 kB view details)

Uploaded Python 3

File details

Details for the file deepmerge-1.0.0.tar.gz.

File metadata

  • Download URL: deepmerge-1.0.0.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.9.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for deepmerge-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ea1ba5e28f34a5bba56461c17daa7d1a79a46eeecec71e498770dd2a674daf93
MD5 f3446f7605981ebb4e2437fe2b117685
BLAKE2b-256 209e09506d48571ac6e3bb6e705df960dfb1cf129727d8dcfc845bdc4f28ca8a

See more details on using hashes here.

Provenance

File details

Details for the file deepmerge-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: deepmerge-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 2.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.9.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for deepmerge-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 da07f5babca17e1faa44a6dd8501e93eff340d57652635b18c1969d321c08106
MD5 bc02f507679022a041cbb72d6c1d75c5
BLAKE2b-256 83fbde90c82423bc34c7a3f529fbc1e46f5212e2e1333b9586994c02518023bb

See more details on using hashes here.

Provenance

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