Hacked By AnonymousFox
�
�܋f�� � � � 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)�
isinstance�type�_InstrumentationEventsHold��cls�targets �L/opt/cloudlinux/venv/lib64/python3.11/site-packages/sqlalchemy/orm/events.py�_accept_withz"InstrumentationEvents._accept_with5 s'