Hacked By AnonymousFox
�
�܋f8p � �X � d Z ddlZddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd lm Z dd
l
mZ ddlm
Z
dd
lmZ ddlmZ ddlmZ ddlmZ ddlm
Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddlm!Z! ddlm"Z" d� Z#d� Z$ G d� de%� � Z&d1d!�Z'd"� Z( G d#� d$ej) e*� � Z+ G d%� d&e+� � Z,ddde-d'ede&fd(�Z.d)� Z/ G d*� d+e-� � Z0 G d,� d-e0� � Z1 G d.� d/e-� � Z2 ej3 e&� � d0� � � Z4dS )2z1Public API functions and helpers for declarative.� N� ��_add_attribute)�_as_declarative)�_declarative_constructor)�_DeferredMapperConfig��_del_attribute)�_get_immediate_cls_attr)�_class_resolver� )�exc)�
inspection)�util)�
attributes��comparable_property)�
interfaces)�
properties)�synonym)�_inspect_mapped_class)�_mapper_or_none)�polymorphic_union)�MetaData)�Table)�hybridmethod)�hybridproperty)�OrderedDictc � � d| j v rt j d| z � � �|| _ || _ t | | j | j � � dS )z�Given a class, configure the class declaratively,
using the given registry, which can be any dictionary, and
MetaData object.
�_decl_class_registryz4Class %r already has been instrumented declarativelyN)�__dict__r �InvalidRequestErrorr �metadatar �__name__)�cls�registryr# s �U/opt/cloudlinux/venv/lib64/python3.11/site-packages/sqlalchemy/ext/declarative/api.py�instrument_declarativer( '