hermes.model.merge
==================

.. py:module:: hermes.model.merge


Attributes
----------

.. autoapisummary::

   hermes.model.merge.default_merge_strategies


Classes
-------

.. autoapisummary::

   hermes.model.merge.MergeStrategies
   hermes.model.merge.MergeStrategy
   hermes.model.merge.CollectionMergeStrategy
   hermes.model.merge.ObjectMergeStrategy


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

.. py:class:: MergeStrategies

   .. py:attribute:: _strategies
      :value: []



   .. py:method:: select(**kwargs)


   .. py:method:: register(strategy)


.. py:class:: MergeStrategy(**filter)

   .. py:method:: _check_types(item, value)
      :staticmethod:



   .. py:method:: _check_path(item, value)
      :staticmethod:



   .. py:attribute:: checks


   .. py:attribute:: _filter


   .. py:method:: _check(key, filter, value)


   .. py:method:: can_handle(filter: dict)


   .. py:method:: are_equal(left, right)


.. py:class:: CollectionMergeStrategy(**filter)

   Bases: :py:obj:`MergeStrategy`


   .. py:method:: are_equal(left, right)


   .. py:method:: __call__(target, path, value, **kwargs)


.. py:class:: ObjectMergeStrategy(*id_keys, **filter)

   Bases: :py:obj:`MergeStrategy`


   .. py:attribute:: id_keys
      :value: ('@id',)



   .. py:method:: are_equal(left, right)


   .. py:method:: __call__(target, path, value, **kwargs)


.. py:data:: default_merge_strategies

