<commit_before>========================
Functions and decorators
========================

.. autofunction:: satella.coding.update_if_not_none

.. autofunction:: satella.coding.merge_dicts

.. autofunction:: satella.coding.static_var

.. autofunction:: satella.coding.silence_excs

.. autoclass:: satella.coding.log_exceptions

.. autoclass:: satella.coding.rethrow_as
    :members:

.. autofunction:: satella.coding.catch_exception

.. autofunction:: satella.coding.raises_exception

.. autofunction:: satella.coding.for_argument

.. autofunction:: satella.coding.chain_functions

.. autofunction:: satella.coding.auto_adapt_to_methods

Wrapping classes with something
-------------------------------

Sometimes you need to wrap all methods/properties in given class with
a common decorator. Here's the function you can use:

.. autofunction:: satella.coding.wrap_with

In order to more easily construct functions that will wrap properties,
the following was provided:

.. autofunction:: satella.coding.wrap_property

You can also decorate given callables in order not to be wrapped with

.. autofunction:: satella.coding.dont_wrap


DocsFromParent
--------------

.. autoclass:: satella.coding.DocsFromParent
    :members:

metaclass_maker
---------------

Now, give the following type structure:

::

    class MetaA(type):
        pass

    class MetaB(type):<commit_msg>docs!<commit_after>========================
Functions and decorators
========================

.. autofunction:: satella.coding.update_if_not_none

.. autofunction:: satella.coding.merge_dicts

.. autofunction:: satella.coding.static_var

.. autofunction:: satella.coding.silence_excs

.. autoclass:: satella.coding.log_exceptions

.. autoclass:: satella.coding.rethrow_as
    :members:

.. autofunction:: satella.coding.catch_exception

.. autofunction:: satella.coding.raises_exception

.. autofunction:: satella.coding.for_argument

.. autofunction:: satella.coding.chain_functions

.. autofunction:: satella.coding.auto_adapt_to_methods

Wrapping classes with something
-------------------------------

Sometimes you need to wrap all methods/properties in given class with
a common decorator. Here's the function you can use:

.. autofunction:: satella.coding.wrap_with

In order to more easily construct functions that will wrap properties,
the following was provided:

.. autofunction:: satella.coding.wrap_property

You can also decorate given callables in order not to be wrapped with

.. autofunction:: satella.coding.dont_wrap


DocsFromParent
--------------

.. autofunction:: satella.coding.DocsFromParent

CopyDocsFrom
------------

.. autofunction:: satella.coding.CopyDocsFrom

metaclass_maker
---------------

Now, give the following type structure:

::

    class MetaA(type):
        pass

    class MetaB(type):
{'fraction_non_alphanumeric': 0.16363636363636364, 'fraction_numerical': 0.0, 'mean_word_length': 3.6533996683250414, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2818148', 'n_tokens_mistral': 850, 'n_tokens_neox': 799, 'n_words': 203}