1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- Metadata-Version: 2.1
- Name: deepmerge
- Version: 1.1.1
- Summary: a toolset to deeply merge python dictionaries.
- Home-page: http://deepmerge.readthedocs.io/en/latest/
- Classifier: Development Status :: 5 - Production/Stable
- Classifier: License :: OSI Approved :: MIT License
- Classifier: Programming Language :: Python :: 3
- License-File: LICENSE
- =========
- 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 tools to handle merging of
- nested data structures in python.
- ------------
- Installation
- ------------
- deepmerge is available on `pypi <https://pypi.python.org/>`_:
- .. 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/>`_
|