==========
Reflection
==========

--------
Generics
--------

specialize_class
----------------

.. autofunction:: grundzeug.reflection.generics.specialize_class

generic_aware
-------------

.. autofunction:: grundzeug.reflection.generics.generic_aware

generic_accessor
----------------

.. autofunction:: grundzeug.reflection.generics.generic_accessor

generic_classmethod
-------------------

.. autoclass:: grundzeug.reflection.generics.generic_classmethod
   :members:
   :undoc-members:
   :inherited-members:

get_type_parameters
-------------------

.. autofunction:: grundzeug.reflection.generics.get_type_parameters

get_type_arguments
------------------

.. autofunction:: grundzeug.reflection.generics.get_type_arguments

-----
Types
-----

is_generic_alias_of
-------------------

.. autofunction:: grundzeug.reflection.types.is_generic_alias_of

is_none_type
------------

.. autofunction:: grundzeug.reflection.types.is_none_type

is_any_type
-----------

.. autofunction:: grundzeug.reflection.types.is_any_type

extract_callable_parameters_and_return_type
-------------------------------------------

.. autofunction:: grundzeug.reflection.types.extract_callable_parameters_and_return_type

is_callable
-----------

.. autofunction:: grundzeug.reflection.types.is_callable

can_substitute
--------------

.. autofunction:: grundzeug.reflection.types.can_substitute

is_weak_overload_of
-------------------

.. autofunction:: grundzeug.reflection.types.is_weak_overload_of