
    5h                       % S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SS	KJ
r
  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  \" S\S9r\" S\SS9r\" S\S\4   S9r\" S\S9r0 rS\S'    " S S\\   5      r " S S\\   5      r " S S\\   5      r\	 S+     S,S  jj5       r\	 S+     S-S! jj5       r\	S+S.S" jj5       r\	S/S0S# jj5       r\	S+S1S$ jj5       rS+S1S% jjr    S2S' jr\" S(S&S9rS3S) jrg*)4a7  The inspection module provides the :func:`_sa.inspect` function,
which delivers runtime information about a wide variety
of SQLAlchemy objects, both within the Core as well as the
ORM.

The :func:`_sa.inspect` function is the entry point to SQLAlchemy's
public API for viewing the configuration and construction
of in-memory objects.   Depending on the type of object
passed to :func:`_sa.inspect`, the return value will either be
a related object which provides a known interface, or in many
cases it will return the object itself.

The rationale for :func:`_sa.inspect` is twofold.  One is that
it replaces the need to be aware of a large variety of "information
getting" functions in SQLAlchemy, such as
:meth:`_reflection.Inspector.from_engine` (deprecated in 1.4),
:func:`.orm.attributes.instance_state`, :func:`_orm.class_mapper`,
and others.    The other is that the return value of :func:`_sa.inspect`
is guaranteed to obey a documented API, thus allowing third party
tools which build on top of SQLAlchemy configurations to be constructed
in a forwards-compatible way.

    )annotations)Any)Callable)Dict)Generic)Optional)overload)Type)TypeVar)Union   )exc)Literal)Protocol_T)bound_TCovT)r   	covariant_F._INz6Dict[type, Union[Literal[True], Callable[[Any], Any]]]_registrarsc                      \ rS rSrSrSrSrg)Inspectable8   a   define a class as inspectable.

This allows typing to set up a linkage between an object that
can be inspected and the type of inspection it returns.

Unfortunately we cannot at the moment get all classes that are
returned by inspection to suit this interface as we get into
MRO issues.

 N)__name__
__module____qualname____firstlineno____doc__	__slots____static_attributes__r       `/var/www/html/cementerio_25MayoBackend/env/lib/python3.13/site-packages/sqlalchemy/inspection.pyr   r   8   s    	 Ir#   r   c                  "    \ rS rSrSrSS jrSrg)_InspectableTypeProtocolG   zda protocol defining a method that's used when a type (ie the class
itself) is passed to inspect().

c                    g Nr   selfs    r$   _sa_inspect_type)_InspectableTypeProtocol._sa_inspect_typeM   s    r#   r   Nreturnr   )r   r   r   r   r    r,   r"   r   r#   r$   r&   r&   G   s    
 -r#   r&   c                  "    \ rS rSrSrSS jrSrg)_InspectableProtocolP   zSa protocol defining a method that's used when an instance is
passed to inspect().

c                    g r)   r   r*   s    r$   _sa_inspect_instance)_InspectableProtocol._sa_inspect_instanceV   s    Sr#   r   Nr.   )r   r   r   r   r    r4   r"   r   r#   r$   r1   r1   P   s    
 1r#   r1   c                    g r)   r   subjectraiseerrs     r$   inspectr:   Y        r#   c                    g r)   r   r7   s     r$   r:   r:   _   r;   r#   c                    g r)   r   r7   s     r$   r:   r:   e   s    FIr#   c                    g r)   r   r7   s     r$   r:   r:   i   s    LOr#   c                    g r)   r   r7   s     r$   r:   r:   m   s    9<r#   c                   [        U 5      nUR                   HB  nU[        ;   d  M  [        R                  US5      nUc  M*  USL a  U s  $ U" U 5      nUc  M@  Us  $    S=pEU(       a  Ub  Uc  [        R
                  " SU-  5      eU$ )az  Produce an inspection object for the given target.

The returned value in some cases may be the
same object as the one given, such as if a
:class:`_orm.Mapper` object is passed.   In other
cases, it will be an instance of the registered
inspection type for the given object, such as
if an :class:`_engine.Engine` is passed, an
:class:`_reflection.Inspector` object is returned.

:param subject: the subject to be inspected.
:param raiseerr: When ``True``, if the given subject
 does not
 correspond to a known SQLAlchemy inspected type,
 :class:`sqlalchemy.exc.NoInspectionAvailable`
 is raised.  If ``False``, ``None`` is returned.

NTz7No inspection system is available for object of type %s)type__mro__r   getr   NoInspectionAvailable)r8   r9   type_clsregrets         r$   r:   r:   q   s    & ME}}+//#t,C{g,C
  S[CK''.056
 	
 Jr#   	Type[Any]c                    ^  SU 4S jjnU$ )Nc                \   > T H$  nU[         ;   a  [        SU-  5      eU [         U'   M&     U $ )NType %s is already registeredr   AssertionError)	fn_or_clsrE   typess     r$   decorate_inspects.<locals>.decorate   s8    E#$%Du%LMM!*K  r#   )rO   r   r/   r   r   )rP   rQ   s   ` r$   	_inspectsrS      s     Or#   _TTc                H    U [         ;   a  [        SU -  5      eS[         U '   U $ )NrL   TrM   )rF   s    r$   _self_inspectsrV      s*    
k<sBCCKJr#   N)T)r8   z#Type[_InspectableTypeProtocol[_IN]]r9   boolr/   r   )r8   z_InspectableProtocol[_IN]r9   rW   r/   r   )r8   zInspectable[_IN]r9   rW   r/   r   ).)r8   r   r9   zLiteral[False]r/   zOptional[Any])r8   r   r9   rW   r/   r   )rP   rI   r/   zCallable[[_F], _F])rF   rT   r/   rT   )r    
__future__r   typingr   r   r   r   r   r	   r
   r   r    r   util.typingr   r   r   r   r   r   r   __annotations__r   r&   r1   r:   rS   rT   rV   r   r#   r$   <module>r]      se  . #             !Tsd3T#s(+,e3FHC H'"+ -x -18E? 1 
CG0<@ 

 
9=&26 

 
 I 
 I 
 O 
 O 
 < 
 <&R


 e;'r#   