0G d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlm Z dd l
mZ dd
lm
Z
ddlmZ ddlmZ d
dlmZ d
dlmZ d
dlmZ d
dlmZ G d dej Z G d de Z G d dej Z G d dej Z G d de Z G d dej Z G d de Z e Z! G d d!ej Z" G d" d#ej Z# G d$ d%ej Z$dS )&zORM event interfaces.
N )instrumentation)
interfaces) mapperlib)QueryableAttribute_mapper_or_none)Query)scoped_session)Session)sessionmaker )event)exc)util)inspect_getfullargspecc e Zd ZdZdZej Zed Z ed
d Z
e fd Zd Zd Z
d Z xZS )InstrumentationEventsa Events related to class instrumentation events.
The listeners here support being established against
any new style class, that is any object that is a subclass
of 'type'. Events will then be fired off for events
against that class. If the "propagate=True" flag is passed
to event.listen(), the event will fire off for subclasses
of that class as well.
The Python ``type`` builtin is also accepted as a target,
which when used has the effect of events being emitted
for all classes.
Note the "propagate" flag here is defaulted to ``True``,
unlike the other class level events where it defaults
to ``False``. This means that new subclasses will also
be the subject of these events, when a listener
is established on a superclass.
SomeBaseClassc N t |t rt | S d S N)
isinstancetype_InstrumentationEventsHoldclstargets i/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib64/python3.11/site-packages/sqlalchemy/orm/events.py_accept_withz"InstrumentationEvents._accept_with5 s' fd## -f5554 Tc |j |j |j cfdfd}t j j | | t j j
di | d S )Nc t }rt | | r | g|R S s
| |u r | g|R S d S d S r )
issubclass)
target_clsarg
listen_clsfn propagater s r listenz-InstrumentationEvents._listen.