Edit File: api.cpython-37.pyc
B ��4]#l � @ s� d Z ddlZddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd l m Z d dlmZ d dlm Z d d lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm Z d dlm!Z! dd� Z"dd� Z#G dd � d e$�Z%d7d"d#�Z&d$d%� Z'G d&d'� d'ej(e)�Z*G d(d)� d)e*�Z+ddde,d*ede%fd+d,�Z-d-d.� Z.G d/d0� d0e,�Z/G d1d2� d2e/�Z0G d3d4� d4e,�Z1e �2e%�d5d6� �Z3dS )8z1Public API functions and helpers for declarative.� N� )�_add_attribute)�_as_declarative)�_declarative_constructor)�_DeferredMapperConfig)�_del_attribute)�_class_resolver� )�exc)� inspection)�util)� attributes)�comparable_property)� interfaces)� properties)�synonym)�_inspect_mapped_class)�_mapper_or_none)�polymorphic_union)�MetaData)�Table)�hybridmethod)�hybridproperty)�OrderedDictc C s8 d| j krt�d| ��|| _|| _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 ZInvalidRequestErrorr �metadatar �__name__)�cls�registryr � r �Q/opt/alt/python37/lib64/python3.7/site-packages/sqlalchemy/ext/declarative/api.py�instrument_declarative&