L iUdZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z dd lm Z dd lm Z dd lm Z d d l mZd dlmZd dlmZe deZe dedZe dedefZe deZiZded<GddeeZGddeeZGddeeZe d+ d,d Ze d+ d-d!Ze d+d.d"Ze d/d0d#Ze d+d1d$Zd+d1d%Z d2d'Ze d(d&Zd3d)Zy*)4a7The 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]]] _registrarsceZdZdZdZy) Inspectablea8define 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____doc__ __slots__r[/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sqlalchemy/inspection.pyrr8s Ir rceZdZdZddZy)_InspectableTypeProtocolzla protocol defining a method that's used when a type (ie the class itself) is passed to inspect(). cyNrselfs r!_sa_inspect_typez)_InspectableTypeProtocol._sa_inspect_typeMr Nreturnr)rrrrr(rr r!r#r#Gs  -r r#ceZdZdZddZy)_InspectableProtocolz[a protocol defining a method that's used when an instance is passed to inspect(). cyr%rr&s r!_sa_inspect_instancez)_InspectableProtocol._sa_inspect_instanceVr)r Nr*)rrrrr/rr r!r-r-Ps  1r r-cyr%rsubjectraiseerrs r!inspectr4Y r cyr%rr1s r!r4r4_r5r cyr%rr1s r!r4r4esFIr cyr%rr1s r!r4r4isLOr cyr%rr1s r!r4r4ms9.decorates= +E #$%Du%LMM!*K  +r )rIrr+rr)rJrKs` r! _inspectsrLs Or _TTcD|tvrtd|zdt|<|S)NrFTrG)r@s r!_self_inspectsrOs* krVse.# ! Tsd3 T#s(+, e3FH CH '"+ -x-18E?1 CG 0<@   9= &26   I I O O < <&R    e;'r