관리-도구
편집 파일: instrumentation.cpython-38.pyc
U -?�f_ � @ s� d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z dd lm Z dd lmZ ddlmZ ddlm Z dd lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddlm!Z! ddl"m#Z# dd l"m$Z$ e�r�dd!lm%Z% dd"lm&Z& dd#lm'Z' dd$lm(Z( dd%lm)Z) dd&l*m+Z+ dd'l,m-Z- dd(l.m/Z/ dd)lm0Z0 dd*lm1Z1 ed+ed,�Z2e�3d-�Z4G d.d/� d/e$�Z5G d0d1� d1e$�Z6G d2d3� d3e!ee7d4f e e e �Z8G d5d6� d6�Z9G d7d8� d8e �Z:e:� Z;ej< Z<Z=ej> Z>Z?ej@ Z@ZAejB ZBZCdKd:d;d<d=d>d?d@dAdB�dCdD�ZDdEdF� ZEdGdH� ZFdIdJ� ZGdS )La� Defines SQLAlchemy's system of class instrumentation. This module is usually not directly visible to user applications, but defines a large part of the ORM's interactivity. instrumentation.py deals with registration of end-user classes for state tracking. It interacts closely with state.py and attributes.py which establish per-instance and per-class-attribute instrumentation, respectively. The class instrumentation system can be customized on a per-class or global basis using the :mod:`sqlalchemy.ext.instrumentation` module, which provides the means to build and specify alternate instrumentation forms. .. versionchanged: 0.8 The instrumentation extension system was moved out of the ORM and into the external :mod:`sqlalchemy.ext.instrumentation` package. When that package is imported, it installs itself within sqlalchemy.orm so that its more comprehensive resolution mechanics take effect. � )�annotations)�Any)�Callable)�cast)� Collection)�Dict)�Generic)�Iterable)�List)�Optional)�Set)�Tuple)�Type)� TYPE_CHECKING)�TypeVar)�UnionN� )�base)�collections)�exc)� interfaces)�state)�_O)�_is_collection_attribute_impl� )�util)�EventTarget)�HasMemoized)�Literal)�Protocol)� _RegistryType)� AttributeImpl)�QueryableAttribute)�_AdaptedCollectionProtocol)�_CollectionFactoryType)� _MapperConfig)�InstanceEvents)�Mapper)� InstanceState)� dispatcher�_T)�bound�DEL_ATTRc @ s e Zd Zddddd�dd�ZdS ) �_ExpiredAttributeLoaderProto�state.InstanceState[Any]zSet[str]zbase.PassiveFlag�None)r �toload�passive�returnc C s d S �N� )�selfr r0 r1 r4 r4 �N/opt/hc_python/lib64/python3.8/site-packages/sqlalchemy/orm/instrumentation.py�__call__S s z%_ExpiredAttributeLoaderProto.__call__N��__name__� __module__�__qualname__r7 r4 r4 r4 r6 r- R s r- c @ s e Zd Zddd�dd�ZdS )�_ManagerFactory�Type[_O]�ClassManager[_O]��class_r2 c C s d S r3 r4 �r5 r@ r4 r4 r6 r7 \ � z_ManagerFactory.__call__Nr8 r4 r4 r4 r6 r<