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

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

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.

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.

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