HEX
Server: LiteSpeed
System: Linux us-phx-web1284.main-hosting.eu 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: u300739242 (300739242)
PHP: 8.2.30
Disabled: system, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyc
�
���ec@@s�dZddlmZddlZddlZddlmZddlmZddlm	Z	ddlm
Zdd	lmZ
dd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm
Z
ddlmZddlmZddl m!Z!ddl m"Z"ddlm#Z#d�Z$d�Z%e&d�Z'd�Z(d�Z)d �Z*ej+d!�d"��Z,d#�Z-d$e.fd%��YZ/d&e/fd'��YZ0d(e/fd)��YZ1ej+d!�d*��Z2d+e1fd,��YZ3d-�Z4d.�Z5d/�Z6d0e6_7d1�Z8dS(2s(Internal implementation for declarative.i(tabsolute_importN(t
attributes(tinstrumentationi(tclsregistry(texc(tmapper(tInstrumentedAttribute(tQueryableAttribute(t_is_mapped_class(tInspectionAttr(tCompositeProperty(tSynonymProperty(tMapperProperty(tMapper(tColumnProperty(tclass_mapperi(tevent(tutil(t
expression(tColumn(tTable(ttopologicalcC@s@tj|�rtj|�St|�r8t|dt�SdSdS(Nt	configure(t_DeferredMapperConfigthas_clstconfig_for_clsRRtFalsetNone(tcls((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyt_declared_mapping_info%s

cC@s}|tkrdS|jjdt�r\xQ|jD]"}t|�}|dk	r/|Sq/WdSnt|�}|ru|jS|SdS(Nt__abstract__(	tobjectRt__dict__tgetRt	__bases__t"_resolve_for_abstract_or_classicalt_dive_for_cls_managertclass_(Rtsupt
clsmanager((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR#0scC@s�|dkst�t|t�s%dS||jkrAt||�Sxo|jdD]\}t|�}||jkrO||ks�|r�||jknt	rO|rOt||�SqOWdSdS(s�return an attribute of the class that is either present directly
    on the class, e.g. not on a superclass, or is from a superclass but
    this superclass is a non-mapped mixin, that is, not a descendant of
    the declarative base and is also not classically mapped.

    This is used to detect attributes that indicate something about
    a mapped class independently from any mapped classes that it may
    inherit from.

    RiN(
tAssertionErrort
issubclassRRR tgetattrt__mro__R$R"tTrue(Rtattrnametstricttbaset_is_classicial_inherits((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyt_get_immediate_cls_attrDs
cC@sDt|d�sdSx*|jD]}tj|�}|r|SqWdS(NR+(thasattrRR+Rtmanager_of_class(RR/tmanager((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR$iscC@stj|||di�S(N(t
_MapperConfigt
setup_mappingR(tregistryRtdict_((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyt_as_declarativeyscC@st||||�|jS(N(t_ImperativeMapperConfigt
__mapper__(R7Rttablet	mapper_kw((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyt_mapper�sssqlalchemy.orm.decl_apicC@s%tjjj}t||tjf�S(N(Rt	preloadedtorm_decl_apit
declared_attrt
isinstancet
classproperty(tobjRA((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyt_is_declarative_props�scC@sDt|�r<t|dt�r8tjd||f�ntStSdS(Nt
_cascadings~@declared_attr.cascading is not supported on the %s attribute on class %s.  This attribute invokes for subclasses in any case.(RER*RRtwarnR,(RDtnameR((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyt_check_declared_props_nocascade�sR5cB@s8eZd	Zed��Zd�Zd�Zd�ZRS(
Rt	classnamet
propertiestdeclared_attr_regt__weakref__c	C@s�tj|�}|r:|j|kr:tjd|��n|jjdt�rSdSt|ddt	�ptt
|d�}|r�t}nt}||||||�S(Ns4Class %r already has been instrumented declarativelyRt_sa_decl_prepare_nocascadeR.t_sa_decl_prepare(
RR3R%RtInvalidRequestErrorR R!RR1R,R2Rt_ClassScanMapperConfig(	RR7tcls_R8R<R=R4t	defer_maptcfg_cls((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR6�s	c
C@s�tj|td�|_|j|_tj�|_i|_|j	dt
�s|tj|jdt
d|d|d|j
�n<tj|j�}|s�|jr�tjd|j��ndS(NRRtnon_primarytfinalizeR7tdeclarative_scantinit_methodstClass %s has no primary mapper configured.  Configure a primary mapper first before setting up a non primary Mapper.(Rtassert_arg_typettypeRt__name__RJtOrderedDictRKRLR!RRtregister_classtconstructorRR3t	is_mappedRRP(tselfR7RRR=R4((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyt__init__�s 		
cC@s&tj|j�}|j||�|S(N(RR3Rtinstall_member(R`R-tvalueR4((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pytset_cls_attribute�scC@s|j|�dS(N(tmap(R`R=((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyt_early_mapping�s(RRJRKRLRM(R[t
__module__t	__slots__tclassmethodR6RaRdRf(((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR5�s		R:cB@s/eZdZd�Zejd�Zd�ZRS(R8tlocal_tabletinheritscC@s�tt|�j|||�i|_|jd|�|_tj�P|jdt	�sut
j|j|j
|j�n|j|�|j|�WdQXdS(Nt	__table__RU(tsuperR:RaR8RdRjt	mapperlibt_CONFIGURE_MUTEXR!RRt	add_classRJRt_class_registryt_setup_inheritanceRf(R`R7RRR<R=((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyRa�s
	

cC@s(t}|jd||j|j|��S(NR;(RRdRRj(R`R=t
mapper_cls((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyRe�scC@s|j}|jdd�}|dkr�g}xg|jD]\}t|�}|dkr[q7nt|�dk	r7t|ddt�r7|j|�q7q7W|r�t	|�dkr�t
jd||f��n|d}q�nt|t
�r�|j}n||_dS(NRkRNR.is&Class %s has multiple mapped bases: %ri(RR!RR"R#RR1R,tappendtlenRRPRBRR%Rk(R`R=RRktinherits_searchtc((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyRr�s,	(R8RjRk(R[RgRhRaRt
EMPTY_DICTReRr(((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR:�s	RQc
B@s�eZdZd
�Zd�Zd�Zd
�Zd�Zd�Zd�Z	d�Z
d�Zdd�Z
d�Zd�Zd�Zejd�ZRS(R8Rjtpersist_selectabletdeclared_columnst
column_copiest
table_argst	tablenametmapper_argstmapper_args_fnRkcC@s�|rt|�ni|_tt|�j|||�d|_t�|_i|_	|j
�|j�tj
�\tj|j|j|j�|j�|j�|j|�|j|�|j|�WdQXdS(N(tdictR8RmRQRaRRytsetRzR{t_setup_declared_eventst_scan_attributesRnRoRRpRJRRqt_extract_mappable_attributest_extract_declared_columnst_setup_tableRrRf(R`R7RRR8R<R=((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyRa,s		






c@spt�jd�r6tjtd��fd��}nt�jd�rltjtd��fd��}ndS(Nt__declare_last__tafter_configuredc@s�jj�dS(N(RR�((R`(sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR�Tst__declare_first__tbefore_configuredc@s�jj�dS(N(RR�((R`(sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR�Zs(R1RRtlistens_forR(R`R�R�((R`sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR�Qs$c@s�t�dd���dkr0�fd�}n_�fd�tj��D���fd�tj��D��t������fd�}|S(s�Produce a function that checks if a class has overridden an
        attribute, taking SQLAlchemy-enabled dataclass fields into account.

        t__sa_dataclass_metadata_key__c@st�|�|k	S(N(R*(tkeyRD(R(sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pytattribute_is_overriddenisc@s2i|](}�|jkr|j�|j�qS((tmetadataRH(t.0tf(tsa_dataclass_metadata_key(sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pys
<dictcomp>os	c@s2i|](}�|jkr|j�|j�qS((R�RH(R�R�(R�(sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pys
<dictcomp>ts	c@s�t|�r|j}n�j|��}t|�rB|j}n||krRtS|�k	rbtS�j|��}t�||�}||kr�tS|�k	r�t|t�r�tS||kr�tS|�k	r�tStS(N(REtfgetR!RR,R*RBR(R�RDtrett	all_field(tabsenttall_datacls_fieldsRtlocal_datacls_fields(sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR�{s*N(R1RRtdataclass_fieldstlocal_dataclass_fieldsR(R`RR�((R�R�RR�R�sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyt_cls_attr_override_checker^s	(c@sRt�dd���dkr0�fd�}nt�����fd�}|S(s�produce a function to iterate the "attributes" of a class,
        adjusting for SQLAlchemy fields embedded in dataclass fields.

        R�c3@s5x.t��j�D]\}}||tfVqWdS(N(tvarstitemsR(RHRD(R(sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pytlocal_attributes_for_class�sc3@s�xVtj��D]E}�|jkr�j|j�|jt|j��tfVqqWx=t��j�D])\}}|�krl||t	fVqlqlWdS(N(
RR�R�taddRHt_as_dc_declaredattrR,R�R�R(tfieldRHRD(Rtfield_namesR�(sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR��s	N(R1RR�(R`RR�((RR�R�sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyt_cls_attr_resolver�s	c@s�|j�|j}|j}d}d}}d}|j|j�}g}x��jD]�}	|	�k	o�t|	�dk	o�t|	ddt�}
|j	|	�}|
r�|	�k	r�|j
||�}ni}|j|	|
||f�qSWx||D]t\}	}
}}|j|�xR|�D]G\}
}}|
dkrmt
||
��}|r^|
sX|r^�fd�}q^q|
dkr�t
||
��}|r^|
s�|r^�j}q^q|
dkr4t
||
��}|r^|
s�|r^�j}t|tttd�f�stjd��n|	�k	r1t}q1q^q|
rot|�rtjd|	j|
|	�f�qqq|	�k	r�t|t�r�qq^t|t�r�tjd	��q^t|�r�|jr!|
|kr�tjd
|
�f�n|j|��||
<||<}t�|
|�n�|rZt �|
d�}t|t!�si|j"�}qint �|
�}t|t!�r�|j#r�t|j$t�r�|j%}n|||
<||<t|ttf�r�|j&dkr�|j'|_&q�q^|j(|	|
|�q|r|
|ks ||
|k	r||
|�s6t)�t|�rQ|j"�}n|||
<qqWq�W|r||r|d}n||_*||_+||_,dS(NRNR.t__mapper_args__c@s
t�j�S(N(R�R�((R(sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyRst
__tablename__t__table_args__s3__table_args__ value must be a tuple, dict, or Nones�Regular (i.e. not __special__) attribute '%s.%s' uses @declared_attr, but owning class %s is mapped - not applying to subclass %s.s�Mapper properties (i.e. deferred,column_property(), relationship(), etc.) must be declared as @declared_attr callables on declarative mixin classes.  For dataclass field() objects, use a lambda:sXAttribute '%s' on class %s cannot be processed due to @declared_attr.cascading; skipping(-RR8R{RR�R+RR1R,R�t_produce_column_copiesRttupdateRIR�R�RBttupleR�RZRt
ArgumentErrorRERRGR[RRRPRFt__get__tsetattrR*R	R�t_is_internal_proxytoriginal_propertyt
descriptortdoct__doc__t_warn_for_decl_attributesR(R|R}R(R`R8R{RR|tinherited_table_argsR}R�tbasesR/tclass_mappedR�tlocally_collected_columnsRHRDtis_dataclasst
check_declR�((RsI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR��s�			

		"	

			cC@s0t|tj�r,tjd||f�ndS(Ns�Attribute '%s' on class %s appears to be a non-schema 'sqlalchemy.sql.column()' object; this won't be part of the declarative mapping(RBRtColumnClauseRRG(R`RR�Rw((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR��scC@s�|j}|j}i}|j}x�|�D]�\}}}	t|t�r+|||�r^q+q�|jrytjd��q�||kr�d|ko�|jp�||dj	kr�|j
�||<}
|j|
_t|||
�|
||<q�q+q+W|S(Ns�Columns with foreign keys to other columns must be declared as @declared_attr callables on declarative mixin classes.  For dataclass field() objects, use a lambda:.Rl(
RR8R{RBRtforeign_keysRRPRHRwt_copyt_creation_orderR�(R`tattributes_for_classR�RR8tlocally_collected_attributesR{RHRDR�tcopy_((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR��s&				cC@s�|j}|j}|j}t|ddt�}x�t|�D]�}|d
krUq=n||}t|�r�|jr�tj	d|j�nt
||�}nOt|t�r�|j
|k	r�|j|kr�t|j�}t|||�nt|t�r=t|�dkr=t|dttf�r=tj	d	|�q=n�t|ttf�s�|jd
�s=|j|�|j|||�|s�t|||�q�q=q=n|dkr�tjd��n|||<q=WdS(NRNR.RlR�R�s�Use of @declared_attr.cascading only applies to Declarative 'mixin' and 'abstract' classes.  Currently, this flag is ignored on mapped class %siis�Ignoring declarative-like tuple value of attribute '%s': possibly a copy-and-paste error with a comma accidentally placed at the end of the line?t__R�sdAttribute name 'metadata' is reserved for the MetaData instance when using a declarative base class.(RlR�R�(RR8RKR1R,tlistRERFRRGR*RBRR%R�RR�R�RuRRt
startswithtpopR�RRP(R`RR8t	our_stufftlate_mappedtkRc((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR��sL			
	
c@s�|j�tj�d�fd��|j}tjt�}xt�j��D]�\}}t	|t
tf�r�x�|jD]g}t	|t
�r{|jdkr{t||�t	|t�s�||jj|�n|j|�q{q{WqPt	|t
�rPt||�||jj|�|j|�||jkrB�|=qBqPqPWx[|j�D]M\}}t|�dkrStjd|j|djt|��f�qSqSWdS(NR�c@s�|jS(N(R�(R�(R�(sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyt<lambda>	tiszOn class %r, Column object %r named directly multiple times, only one will be used: %s. Consider using orm.synonym insteads, (RKRtsort_dictionaryRztcollectionstdefaultdictR�R�R�RBRR
tcolumnsRR<Rt_undefer_column_nameRHR�R�RuRGRJtjointsorted(R`Rztname_to_prop_keyR�RwtcolRHtkeys((R�sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR�s0		


cC@s|j}|j}|j}|j}|j}tj|�}t|dd��}|_d|kr�|dkr�t	|d�r�t
j|j�}nt
}|dk	r�di}	}
|rt|t�r�|}
qt|t�rt|dt�r|dd!|d}	}
q|}	qn|jd�}|r<||
d<n|jd	�}|r^t|
d
<n|jd|||j|�t|�t|	�|
��}q�n]|dkr�|j}n|r�x<|D]1}
|jj|
�s�tjd|
j��q�q�Wn||_dS(
NR�cS@s|jS(N(R�(Rw((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR�7R�Rlt
__table_cls__i����it__autoload_with__t
autoload_witht__autoload__tautoloads8Can't add additional column %r when specifying __table__((RR}R|R8RzRR3R�RR2Rtunbound_method_to_callableR�RRBR�R�R!R,Rdt_metadata_for_clsRlRwtcontains_columnRR�R�Rj(R`R<RR}R|R8RzR4t	table_clstargsttable_kwR�R�Rw((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR�-sV					
	


cC@s*t|jd�r|jjS|jjSdS(NR�(R2RR�R7(R`R4((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR�is
cC@sz|j}|j}|j}|j}|jdd�}|dkrg}xv|jD]k}t|�}|dkrvqRnt|�dk	rRt	|ddt
�rR||kr�|j|�q�qRqRW|r t|�dkr�t
jd||f��n|d}q nt|t�r |j}n||_|dkrj|jdkrjt	|d�rjt
jd|��n|jrvt|j�}	|	j}
|	j}|dkrv|r�t
jd	��nx�|D]�}|j|
jkr|
j|j|kr�q�nt
jd
|||
j|jf��n|jr7t
jd��n|
j|�|dk	r�||
k	r�|j|�q�q�WqvndS(NRkRNR.is&Class %s has multiple mapped bases: %rit__no_table__swClass %r does not have a __table__ or __tablename__ specified and does not inherit from an existing table-mapped class.s?Can't place __table_args__ on an inherited class with no table.s;Column '%s' on class %s conflicts with existing column '%s'sDCan't place primary key columns on an inherited class with no table.(RjRR|RzR!RR"R#RR1R,RtRuRRPRBRR%RkRyR�RHRwtprimary_keyt
append_columnt_refresh_for_new_column(R`R=R<RR|RzRkRvRwtinherited_mappertinherited_tabletinherited_persist_selectable((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyRrosl					
			
 	
cC@s|j}|jr!|j�}ni}|r=|j|�nd|krit|�}|j|d�nx@dD]8}||krp||}|jj||�||<qpqpWd|kr	|d}t|t�r�|j}n||j	k	r	t
jd|d��q	n|j	r"|j	|d<n|j	r\|jdt�r\t
|j	�}|j}d|kr�tg|jD]}	|	|jkro|	j^qo�j|jp�d	�|d<}
|
jg|jD]}	|	j^q��nx�t|j��D]i\}}t|tj�sq�n||jkr�|j|}t|t�rU|g|j||<qUq�q�Wn|j�}
||
d<|
|_dS(
NRKtversion_id_coltpolymorphic_onRks:mapper inherits argument given for non-inheriting class %stconcretetexclude_properties(R�R�(( RKRR�R�R{R!RBRR%RkRRPRRRjR�Rwt_columntopropertyR�tunionR�tdifference_updateRzR�R�Rt
ColumnElementt_propsRR�tcopyR~(R`R=RKR~R�tvtinherits_argR�R�RwR�R�tptresult_mapper_args((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyt_prepare_mapper_arguments�sX		

 
		
!#	
!
cC@sb|j|�t|jd�r7tj|jj�}nt}|jd||j|j|j	��S(Nt__mapper_cls__R;(
R�R2RRR�R�RRdRjR~(R`R=Rs((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyRes
(
R8RjRyRzR{R|R}R~RRkN(R[RgRhRaR�R�R�R�R�R�R�R�RR�R�RrR�RRxRe(((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyRQs0	%	
	G		�			!	E	)<		R	KcC@sJtjj}||}t|�rBt||j�rB|j|�S|SdS(N(RR?R@tcallableRBRA(tfield_metadataR�tdecl_apiRD((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR�s


RcB@s�eZej�Zd�Zed��Zejd��Ze	d��Z
e	d��Ze	d��Ze	d��Z
e	ed��Zejd�ZRS(	cC@sdS(N((R`R=((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyRf+scC@s
|j�S(N(t_cls(R`((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR.scC@s,tj||j�|_||j|j<dS(N(tweakreftreft_remove_config_clsR�t_configs(R`R%((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR2scC@s|jj|d�dS(N(R�R�R(RR�((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR�7scC@s%t|t�o$tj|�|jkS(N(RBRZR�R�R�(RR%((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR;scC@sBt|d�r|j�ntj|ddtj|���dS(Nt_sa_raise_deferred_configtmsgsOClass %s has a deferred mapping on it.  It is not yet usable as a mapped class.(R2R�torm_exctUnmappedClassErrort_safe_cls_name(RR%((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pytraise_unmapped_for_cls@s
cC@s|jtj|�S(N(R�R�R�(RR%((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyRKsc@s�gg|jj�D]}||jf^qD]-\}}|dk	r,t||�r,|^q,}|si|Std�|D���g}x1�D])�|j��fd��jD��q�Wtt	j
||��S(Ncs@s|]}|j|fVqdS(N(R(R�tm((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pys	<genexpr>Zsc3@s/|]%}|�kr�|��fVqdS(N((R�tbase_cls(tall_m_by_clstm_cls(sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pys	<genexpr>_s(R�tvaluesRRR)R�textendR"R�Rtsort(RRR	RRRtclasses_for_basettuples((RRsI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR
Os5'
cC@s,|jj|jd�tt|�j|�S(N(R�R�R�RRmRRe(R`R=((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyRees(R[RgRR\R�RftpropertyRtsetterRiR�RRRR,R
RxRe(((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR(s	cC@svd|jkr_t|t�rWt||�|jj|dt�|jj||�qrt|t	�r�xU|j
D]J}t|t�rp|jdkrpt||�|jj|dt�qpqpW|jj||�qrt|t
�r�|jj||�qrt|t�r<|j|kr<t|j�}|jj||�qrtj|||�|jj�ntj|||�dS(s�add an attribute to an existing declarative class.

    This runs through the logic to determine MapperProperty,
    adds it to the Mapper, adds a column to the mapped Table, etc.

    R;treplace_existingN(R RBRR�RlR�R,R;tadd_propertyRR�R<RRRR�RRZt__setattr__t_expire_memoizations(RR�RcR�((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyt_add_attributejs&

cC@s�d|jkr�||jkr�|jjr�|j|}t|ttttf�rbtd��q�t	j
||�|jj�nt	j
||�dS(NR;s<Can't un-map individual mapped attributes on a mapped class.(R R;t_dispose_calledRBRRRRtNotImplementedErrorRZt__delattr__R(RR�Rc((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyt_del_attribute�s

cK@s`t|�}xM|D]E}t||�sDtd||jf��nt||||�qWdS(s=A simple constructor that allows initialization from kwargs.

    Sets attributes on the constructed instance using the names and
    values in ``kwargs``.

    Only keys that are present as
    attributes of the instance's class are allowed. These could be,
    for example, any mapped columns or relationships.
    s(%r is an invalid keyword argument for %sN(RZR2t	TypeErrorR[R�(R`tkwargsRRR�((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyt_declarative_constructor�s

RacC@s:|jdkr||_n|jdkr6||_ndS(N(R�RRH(R�tcolumn((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyR��s(9R�t
__future__RR�R�tsqlalchemy.ormRRR�RRR�RRnRRR/RR	tdescriptor_propsR
Rt
interfacesRR
RKRRRRtsqlRt
sql.schemaRRRRR#RR1R$R9R>tpreload_moduleRERIRR5R:RQR�RRRRR[R�(((sI/opt/alt/python27/lib/python2.7/site-packages/sqlalchemy/orm/decl_base.pyt<module>s\		%				
@D���
B	!