
    E#i
                        S r SSKJr  SSKrSSKJr  \R                  (       a  SSKJr  \R                  \   r
0 rS	S jrS
SS jjrg)a!  A registry of :class:`Schema <marshmallow.Schema>` classes. This allows for string
lookup of schemas, which may be used with
class:`fields.Nested <marshmallow.fields.Nested>`.

.. warning::

    This module is treated as private API.
    Users should not need to use this module directly.
    )annotationsN   )RegistryError)Schemac                h  ^ UR                   mSR                  TU /5      nU [        ;   a:  [        U4S j[        U     5       5      (       d  [        U    R	                  U5        OU [        ;  a
  U/[        U '   U[        ;  a&  [        R                  U/ 5      R	                  U5        gU/[        U'   g)at  Add a class to the registry of serializer classes. When a class is
registered, an entry for both its classname and its full, module-qualified
path are added to the registry.

Example: ::

    class MyClass:
        pass


    register("MyClass", MyClass)
    # Registry:
    # {
    #   'MyClass': [path.to.MyClass],
    #   'path.to.MyClass': [path.to.MyClass],
    # }

.c              3  @   >#    U  H  oR                   T:H  v   M     g 7f)N)
__module__).0eachmodules     m/home/james-whalen/.local/lib/python3.13/site-packages/ccxt/static_dependencies/marshmallow/class_registry.py	<genexpr>register.<locals>.<genexpr>8   s      *.Bd6!.Bs   N)r
   join	_registryanyappend
setdefault)	classnameclsfullpathr   s      @r   registerr      s    ( ^^F xx+,H Ic *.7	.B* ' ' 	)##C(	)	# #u	) y Xr*11#6   #e	(    c                     [         U    n[        U5      S:  a   U(       a	  [         U    $ [        SU < S35      e[         U    S   $ ! [         a  n[        SU < S35      UeSnAff = f)zRetrieve a class from the registry.

:raises: marshmallow.exceptions.RegistryError if the class cannot be found
    or if there are multiple entries for the given class name.
zClass with name z1 was not found. You may need to import the class.Nr   zMultiple classes with name z8 were found. Please use the full, module-qualified path.r   )r   KeyErrorr   len)r   allclasseserrors       r   	get_classr!   H   s    I& 7|aY'')) 7% %
 	
 #A&&  ym ,# #
 	s   	A 
A&A!!A&)r   strr   
SchemaTypereturnNone)F)r   r"   r   boolr$   zlist[SchemaType] | SchemaType)__doc__
__future__r   typing
exceptionsr   TYPE_CHECKING r   Typer#   r   r   r!    r   r   <module>r/      sA    #  %	V$J 	(V'r   