freshcrate
Home > Developer Tools > deepmerge

deepmerge

A toolset for deeply merging Python dictionaries.

Description

========= deepmerge ========= .. image:: https://img.shields.io/pypi/v/deepmerge.svg :target: https://pypi.org/project/deepmerge/ .. image:: https://img.shields.io/pypi/status/deepmerge.svg :target: https://pypi.org/project/deepmerge/ .. image:: https://img.shields.io/pypi/pyversions/pillar.svg :target: https://github.com/toumorokoshi/deepmerge .. image:: https://img.shields.io/github/license/toumorokoshi/deepmerge.svg :target: https://github.com/toumorokoshi/deepmerge .. image:: https://github.com/toumorokoshi/deepmerge/actions/workflows/python-package.yaml/badge.svg :target: https://github.com/toumorokoshi/deepmerge/actions/workflows/python-package.yaml A tool to handle merging of nested data structures in Python. ------------ Installation ------------ deepmerge is available on `pypi <https://pypi.org/project/deepmerge/>`_: .. code-block:: bash pip install deepmerge ------- Example ------- **Generic Strategy** .. code-block:: python 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** .. code-block:: python 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 <https://deepmerge.readthedocs.io/en/latest/>`_ ------------------ Supported Versions ------------------ deepmerge is supported on Python 3.8+. For older Python versions the last supported version of deepmerge is listed below: - 3.7 : 1.1.1

Release History

VersionChangesUrgencyDate
2.0Imported from PyPI (2.0)Low4/21/2026
v2.0## Breaking Changes * Add typing / drop Python < 3.8 support by @nhairs in https://github.com/toumorokoshi/deepmerge/pull/30 ## What's Changed * feat: add typing for `merge` and `value_strategy` functions by @Atry in https://github.com/toumorokoshi/deepmerge/pull/33 * fix: Different hash for same dictionaries problem by @alexeykomp in https://github.com/toumorokoshi/deepmerge/pull/32 ## New Contributors * @icy made their first contribution in https://github.com/toumorokoshi/deepmLow8/30/2024
v2.0b0## What's Changed * minor: small doc improvement by @icy in https://github.com/toumorokoshi/deepmerge/pull/29 * Add typing / drop Python < 3.8 support by @nhairs in https://github.com/toumorokoshi/deepmerge/pull/30 ## New Contributors * @icy made their first contribution in https://github.com/toumorokoshi/deepmerge/pull/29 * @nhairs made their first contribution in https://github.com/toumorokoshi/deepmerge/pull/30 **Full Changelog**: https://github.com/toumorokoshi/deepmerge/comparLow1/29/2024
v1.1.1## What's Changed * Fix documentation for custom strategies by @jan-golda in https://github.com/toumorokoshi/deepmerge/pull/24 * Update Python versions by @pabloge in https://github.com/toumorokoshi/deepmerge/pull/26 * Make predefined merge strategies work with built-in collections subtypes by @pabloge in https://github.com/toumorokoshi/deepmerge/pull/25 ## New Contributors * @jan-golda made their first contribution in https://github.com/toumorokoshi/deepmerge/pull/24 * @pabloge madeLow12/18/2023

Dependencies & License Audit

Loading dependencies...

Similar Packages

azure-coreMicrosoft Azure Core Library for Pythonazure-template_0.1.0b6187637
azure-mgmt-coreMicrosoft Azure Management Core Library for Pythonazure-template_0.1.0b6187637
azure-monitor-opentelemetry-exporterMicrosoft Azure Monitor Opentelemetry Exporter Client Library for Pythonazure-template_0.1.0b6187637
azure-servicebusMicrosoft Azure Service Bus Client Library for Pythonazure-template_0.1.0b6187637
azure-monitor-opentelemetryMicrosoft Azure Monitor Opentelemetry Distro Client Library for Pythonazure-template_0.1.0b6187637