%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/
Upload File :
Create Path :
Current File : //opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyo

�
��4]c@s�dZddlZddlZddlmZddlmZddlmZddlmZdd	lm	Z	dd
l
mZddl
mZddl
m
Z
ddl
mZdd
l
mZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddl	mZe a!a"d�Z#d�Z$d�Z%e&d�Z'd�Z(d�Z)de*fd��YZ+d e+fd!��YZ,d"�Z-d#�Z.d$�Z/d%e/_0d&�Z1dS('s(Internal implementation for declarative.i����N(tinstrumentationi(tclsregistryi(tevent(texc(tutil(tclass_mapper(tmapper(t	mapperlib(tsynonym(tQueryableAttribute(t_is_mapped_class(tInspectionAttr(tMapperProperty(tColumnProperty(tCompositeProperty(tColumn(tTable(t
expression(ttopologicalcCs@tj|�rtj|�St|�r8t|dt�SdSdS(Nt	configure(t_DeferredMapperConfigthas_clstconfig_for_clsR
RtFalsetNone(tcls((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyt_declared_mapping_info%s

cCs�|tkrdSt|ddt�r\xT|jD]"}t|�}|dk	r/|Sq/WdSn t|�}|dk	rx|S|SdS(Nt__abstract__tstrict(tobjectRt_get_immediate_cls_attrtTruet	__bases__t"_resolve_for_abstract_or_classicalt"_dive_for_classically_mapped_class(Rtsupt	classical((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyR!0scCsjt|d�rdStj|�}|dk	r2|Sx1|jD]"}t|�}|dk	r<|Sq<WdSdS(Nt_decl_class_registry(thasattrRRtmanager_of_classR R"(RtmanagerR#R((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyR"CscCs�t|t�sdSx�|jD]}t|d�}|oHt|�dk	}||jkr||ks�|r{||jkntr|r|rt	||�SqWdSdS(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.

    R%N(
t
issubclassRRt__mro__R&R"t__dict__R Rtgetattr(RtattrnameRtbaset_is_declarative_inheritst_is_classicial_inherits((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyRWscCs^tdkr.ddlmattjfant|ddt�rGdStj	|||�dS(Ni(t
declared_attrRR(
R1RtapiRt
classpropertytdeclarative_propsRRt
_MapperConfigt
setup_mapping(Rt	classnametdict_((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyt_as_declarativeyscCsGt|t�r?t|dt�r;tjd||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.(t
isinstanceR4R,RRtwarnR(tobjtnameR((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyt_check_declared_props_nocascade�sR5cBs�eZed��Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�ZRS(
cCsMt|ddt�p!t|d�}|r3t}nt}||||�dS(Nt_sa_decl_prepare_nocascadeRt_sa_decl_prepare(RRR&RR5(Rtcls_R7R8t	defer_maptcfg_cls((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyR6�s	cCs�||_t|�|_||_d|_tj�|_t	�|_
i|_|j�i|j_
|j�tjj�zLtj|j|j�|j�|j�|j�|j�|j�Wdtjj�XdS(N(RtdictR8R7Rtpersist_selectableRtOrderedDictt
propertiestsettdeclared_columnst
column_copiest_setup_declared_eventst_sa_declared_attr_regt_scan_attributesRt_CONFIGURE_MUTEXtacquireRt	add_classt_extract_mappable_attributest_extract_declared_columnst_setup_tablet_setup_inheritancet_early_mappingtrelease(tselfRBR7R8((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyt__init__�s&				






cCs|j�dS(N(tmap(RX((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyRV�scspt�jd�r6tjtd��fd��}nt�jd�rltjtd��fd��}ndS(Nt__declare_last__tafter_configuredcs�jj�dS(N(RR[((RX(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyR\�st__declare_first__tbefore_configuredcs�jj�dS(N(RR]((RX(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyR^�s(RRRtlistens_forR(RXR\R^((RXsR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyRL�s$cs�|j�|j}|j}d}d}}d}x_�jD]T}|�k	ort|�dk	ort|ddt�}|r�|�k	r�|j|�nx�t	|�j
�D]�\}	}
|	dkr�t|
|	��}|r�|s�|r��fd�}q�q�|	dkr?t|
|	��}|r�|s0|r��j}q�q�|	dkr�t|
|	��}|r�|sq|r��j
}t|tttd�f�s�tjd��n|�k	r�t}q�q�q�|rt|
t�r�tjd|j|	|�f�q�q�q�|�k	r�t|
t�r$q�q�t|
t�rEtjd	��q�t|
t�rut|
tj�}|r�|
jr�|	|kr�tjd
|	�f�n|
j|
��||	<||
<}
t�|	|
�nn|r�tjd�nt �|	�}
t|
t!�r-|
j"r-t|
j#t�r-|
j$}
n|
||	<||
<t|
ttf�r�|
j%dkr�|
j&|
_%q�q�|j'||	|
�q�q�Wq;W|r�|r�d}n||_(||_)||_*dS(NR@Rt__mapper_args__cs
t�j�S(N(RER`((R(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pytmapper_args_fn�st
__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.sXAttribute '%s' on class %s cannot be processed due to @declared_attr.cascading; skippingsJUse of sqlalchemy.util.classproperty on declarative classes is deprecated.(+RR8RKRR*RRRt_produce_column_copiestvarstitemsR?RbRcR;ttupleREttypeRt
ArgumentErrorR4RR<t__name__RRtInvalidRequestErrorR3R:t__get__tsetattrtwarn_deprecatedR,Rt_is_internal_proxytoriginal_propertyt
descriptortdoct__doc__t_warn_for_decl_attributest
table_argst	tablenameRa(RXR8RKRaRutinherited_table_argsRvR.tclass_mappedR>R=t
check_decltoldclassproptret((RsR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyRN�s�			
	"
	
			cCs0t|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(R;RtColumnClauseRR<(RXRtkeytc((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyRtcscCs�|j}|j}|j}x�t|�j�D]�\}}t|t�r.t||�|k	rdq.q�|jrt	j
d��q�||kr�d|ko�|jp�||djkr�|j
�||<}|j|_t|||�|||<q�q.q.WdS(NsvColumns with foreign keys to other columns must be declared as @declared_attr callables on declarative mixin classes. t	__table__(RR8RKReRfR;RR,tforeign_keysRRkR>R~tcopyt_creation_orderRm(RXR.RR8RKR>R=tcopy_((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyRdls"				cCs�|j}|j}|j}t|ddt�}x�t|�D]�}|d
krUq=n||}t|t�r�t|t�r�|j	r�t
jd|j�nt||�}nOt|t
�r�|j|k	r�|j|kr�t|j�}t|||�nt|t�rOt|�dkrOt|dttf�rOt
jd	|�q=n�t|ttf�s�|jd
�s=|j|�|j|||�|s�t|||�q�q=q=n|dkr�tjd��ntj||�}|||<q=WdS(NR@RRRbR`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__tmetadatasdAttribute name 'metadata' is reserved for the MetaData instance when using a declarative base class.(RRbR`(RR8RHRRtlistR;R4R1R:RR<R,R	tclass_R}RRmRgtlenRRt
startswithtpopRtRRkRt_deferred_relationship(RXRR8t	our_stufftlate_mappedtktvaluetprop((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyRR�sN			

cs�|j��jd�fd��|j}tjt�}xt�j��D]�\}}t|t	t
f�r�x�|jD]g}t|t�rx|j
dkrxt||�t|t
�s�||jj|�n|j|�qxqxWqMt|t�rMt||�||jj|�|j|�||jkr?�|=q?qMqMWx[|j�D]M\}}t|�dkrPtjd|j|djt|��f�qPqPWdS(NR}cs�|jS(N(R�(R}(R�(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyt<lambda>�tiszOn class %r, Column object %r named directly multiple times, only one will be used: %s. Consider using orm.synonym insteads, (RHtsortRJtcollectionstdefaultdictRIR�RfR;R
RtcolumnsRttableRt_undefer_column_nameR>taddR}R�RR<R7tjointsorted(RXRJtname_to_prop_keyR}R~tcolR>tkeys((R�sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyRS�s.		


cCs�|j}|j}|j}|j}|j}t|dd��}|_d}t|d�rstj	|j
�}nt}d|kr\|dk	r�d
i}}	|rt|t
�r�|}	qt|t�rt|dt
�r�|dd!|d}}	q|}qn|jd�}
|
r't|	d<n|||jt|�t|�|	�|_}q�nN|j}|r�x<|D]1}|jj|�srtjd	|j��qrqrWn||_dS(NR}cSs|jS(N(R�(R~((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyR��R�t
__table_cls__Ri����it__autoload__tautoloads8Can't add additional column %r when specifying __table__((RRvRuR8RJR�RR&Rtunbound_method_to_callableR�RR;RERgtgetRR�RR~tcontains_columnRRiR}tlocal_table(RXRRvRuR8RJR�t	table_clstargsttable_kwR�R~((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyRT�sJ					
	
	
c
Cs2|j}|j}|j}|j}g}xg|jD]\}t|�}|dkrXq4nt|�dk	r4t|ddt	�r4|j
|�q4q4W|r�t|�dkr�tj
d||f��n|d|_n	d|_|dkr"|jdkr"t|d�r"tj
d|��n|jr.t|j�}|j}|j}	|dkr.|rptjd��nx�|D]�}|j|jkr�|j|j|kr�qwntjd	|||j|jf��n|jr�tjd
��n|j|�|	dk	rw|	|k	rw|	j|�qwqwWq.ndS(NR@Ris&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.(R�RRuRJR R!RRRRtappendR�RRktinheritsRFRiR>R~tprimary_keyt
append_columnt_refresh_for_new_column(
RXR�RRuRJR�R~tinherited_mappertinherited_tabletinherited_persist_selectable((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyRU's`					
			
 	
cCs�|j}|jr!|j�}ni}x@dD]8}||kr.||}|jj||�||<q.q.W|jr�|j|d<n|jr�|jdt�r�t|j�}|j}d|kr:tg|j	D]}||j
kr�|j^q��j|j
pd�|d<}|jg|jD]}|j^q!�nx�t|j��D]i\}}	t|	tj�sqqMn||jkrM|j|}
t|
t�r�|	g|
j||<q�qMqMWn|j�}||d<||_dS(	Ntversion_id_coltpolymorphic_onR�tconcretetexclude_propertiesRH(R�R�((RHRaRKR�R�RRR�RIR~t_columntopropertyR}tunionR�tdifference_updateRJR�RfR;Rt
ColumnElementt_propsR
R�R�tmapper_args(RXRHR�R�tvR�R�R~R�R�tptresult_mapper_args((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyt_prepare_mapper_argumentsrs>		

 		
!#	
!
cCsl|j�t|jd�r4tj|jj�}nt}||j|j|j�|j_	}|j`
|S(Nt__mapper_cls__(R�R&RRR�R�RR�R�t
__mapper__RM(RXt
mapper_clstmp_((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyRZ�s
"	(Rjt
__module__tclassmethodR6RYRVRLRNRtRdRRRSRTRUR�RZ(((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyR5�s
	$		
	�				F	'	3	K	<RcBs�eZej�Zd�Zed��Zejd��Ze	d��Z
e	d��Ze	d��Ze	d��Z
e	ed��Zd�ZRS(	cCsdS(N((RX((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyRV�scCs
|j�S(N(t_cls(RX((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyR�scCs,tj||j�|_||j|j<dS(N(tweakreftreft_remove_config_clsR�t_configs(RXR�((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyR�scCs|jj|d�dS(N(R�R�R(RR�((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyR��scCs%t|t�o$tj|�|jkS(N(R;RhR�R�R�(RR�((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyR�scCsBt|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.(R&R�torm_exctUnmappedClassErrort_safe_cls_name(RR�((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pytraise_unmapped_for_cls�s
cCs|jtj|�S(N(R�R�R�(RR�((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyR�scs�gg|jj�D]}||jf^qD]-\}}|dk	r,t||�r,|^q,}|si|Std�|D���g}x1�D])�|j��fd��jD��q�Wtt	j
||��S(Ncss|]}|j|fVqdS(N(R(t.0tm((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pys	<genexpr>�sc3s/|]%}|�kr�|��fVqdS(N((R�tbase_cls(tall_m_by_clstm_cls(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pys	<genexpr>�s(R�tvaluesRRR)REtextendR R�RR�(RR�R�R�RBtclasses_for_basettuples((R�R�sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyR��s5'
cCs)|jj|jd�tt|�j�S(N(R�R�R�RtsuperRRZ(RX((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyRZ�s(RjR�RRGR�RVtpropertyRtsetterR�R�RR�RRR�RZ(((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyR�s	cCs�d|jkrkt|t�rQt||�|jj|�|jj||�q~t|t�r�xO|j	D]D}t|t�rj|j
dkrjt||�|jj|�qjqjW|jj||�q~t|t�r�|jj|t
j||��q~t|t�rH|j|krHt|j�}|jj|t
j||��q~tj|||�|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�N(R+R;RR�RR�R�tadd_propertyR
R�R�RRRR�R	R}RRht__setattr__t_expire_memoizations(RR}R�R�((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyt_add_attributes*

		cCs�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_calledR;RR
RR	tNotImplementedErrorRht__delattr__R�(RR}R�((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyt_del_attribute%s

cKs`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(RhR&t	TypeErrorRjRm(RXtkwargsRBR�((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyt_declarative_constructor:s

RYcCs:|jdkr||_n|jdkr6||_ndS(N(R}RR>(R}tcolumn((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyR�Ps(2RsR�R�tsqlalchemy.ormRR�RRRRtormRR�RRRtorm.attributesR	torm.baseR
Rtorm.interfacesRtorm.propertiesR
RtschemaRRtsqlRRRR1R4RR!R"RRR9R?RR5RR�R�R�RjR�(((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/ext/declarative/base.pyt<module>sL
			"	
	��,B	%			

Zerion Mini Shell 1.0