:py:mod:`core.deepmerge`
========================

.. py:module:: core.deepmerge

.. autodoc2-docstring:: core.deepmerge
   :allowtitles:

Module Contents
---------------

Classes
~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`Strategy <core.deepmerge.Strategy>`
     - .. autodoc2-docstring:: core.deepmerge.Strategy
          :summary:
   * - :py:obj:`Merger <core.deepmerge.Merger>`
     - .. autodoc2-docstring:: core.deepmerge.Merger
          :summary:

Functions
~~~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`dict_strategy_merge <core.deepmerge.dict_strategy_merge>`
     - .. autodoc2-docstring:: core.deepmerge.dict_strategy_merge
          :summary:

Data
~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`strategy_map <core.deepmerge.strategy_map>`
     - .. autodoc2-docstring:: core.deepmerge.strategy_map
          :summary:
   * - :py:obj:`deep <core.deepmerge.deep>`
     - .. autodoc2-docstring:: core.deepmerge.deep
          :summary:

API
~~~

.. py:class:: Strategy
   :canonical: core.deepmerge.Strategy

   Bases: :py:obj:`typing.Protocol`

   .. autodoc2-docstring:: core.deepmerge.Strategy

   .. py:method:: __call__(merger: core.deepmerge.Merger, path: list[str], base: dict[str, typing.Any], other: dict[str, typing.Any]) -> dict[str, typing.Any]
      :canonical: core.deepmerge.Strategy.__call__

      .. autodoc2-docstring:: core.deepmerge.Strategy.__call__

.. py:function:: dict_strategy_merge(merger: Merger, path: list[str], base: dict[str, typing.Any], other: dict[str, typing.Any]) -> dict[str, typing.Any]
   :canonical: core.deepmerge.dict_strategy_merge

   .. autodoc2-docstring:: core.deepmerge.dict_strategy_merge

.. py:data:: strategy_map
   :canonical: core.deepmerge.strategy_map
   :type: dict[type, core.deepmerge.Strategy]
   :value: None

   .. autodoc2-docstring:: core.deepmerge.strategy_map

.. py:class:: Merger
   :canonical: core.deepmerge.Merger

   .. autodoc2-docstring:: core.deepmerge.Merger

   .. py:method:: merge(base: dict[str, typing.Any], other: dict[str, typing.Any]) -> dict[str, typing.Any]
      :canonical: core.deepmerge.Merger.merge

      .. autodoc2-docstring:: core.deepmerge.Merger.merge

   .. py:method:: value_strategy(path: list[str], base: dict[str, typing.Any], other: dict[str, typing.Any]) -> dict[str, typing.Any]
      :canonical: core.deepmerge.Merger.value_strategy

      .. autodoc2-docstring:: core.deepmerge.Merger.value_strategy

.. py:data:: deep
   :canonical: core.deepmerge.deep
   :value: None

   .. autodoc2-docstring:: core.deepmerge.deep
