Files
Home-AssistantConfig/deps/sqlalchemy/ext/declarative/__pycache__/base.cpython-34.pyc

101 lines
17 KiB
Plaintext
Raw Normal View History

2016-10-11 16:42:06 +00:00
<EFBFBD>
}<7D><>W<EFBFBD>b<00>@s<>dZddlmZmZddlmZmZmZddlm Z ddl
m Z m Z ddl mZddlmZddlmZmZdd lmZdd
lmZdd lmZd d lmZddlZddlZddlmZdaadd<00>Zdd<00>Z ddd<00>Z!dd<00>Z"Gdd<00>de#<00>Z$Gdd<00>de$<00>Z%dd<00>Z&d d!<00>Z'd"e'_(d#d$<00>Z)dS)%z(Internal implementation for declarative.<2E>)<02>Table<6C>Column)<03>mapper<65> class_mapper<65>synonym)<01>MapperProperty)<02>ColumnProperty<74>CompositeProperty)<01>QueryableAttribute)<01>_is_mapped_class)<02>util<69>exc)<01> topological)<01>
expression)<01>event<6E>)<01> clsregistry<72>N)<01>instrumentationcCs@tj|<00>rtj|<00>St|<00>r8t|dd<00>SdSdS)N<> configureF)<05>_DeferredMapperConfig<69>has_cls<6C>config_for_clsr r)<01>cls<6C>r<00>E/tmp/pip-build-zkr322cu/sqlalchemy/sqlalchemy/ext/declarative/base.py<70>_declared_mapping_infos
  rcCsd|tkrdSt|ddd<00>r\x8|jD]"}t|<00>}|dk r/|Sq/WdSn|SdS)N<> __abstract__<5F>strictT)<04>object<63>_get_immediate_cls_attr<74> __bases__<5F>_resolve_for_abstract)r<00>suprrrr"&s   r"FcCs<>t|t<00>sdSxn|jD]_}t|d<00>}||jkr||kso|rb||jkndr| rt||<00>SqWdSdS)a<>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 mixin, that is, not a descendant of
the declarative base.
This is used to detect attributes that indicate something about
a mapped class independently from any mapped classes that it may
inherit from.
NZ_decl_class_registryT)<07>
issubclassr<00>__mro__<5F>hasattr<74>__dict__r!<00>getattr)r<00>attrnamer<00>baseZ_is_declarative_inheritsrrrr 5s  r cCs^tdkr.ddlmattjfant|ddd<00>rGdStj|||<00>dS)Nr)<01> declared_attrrrT)r+<00>apir <00> classproperty<74>declarative_propsr <00> _MapperConfig<69> setup_mapping)r<00> classname<6D>dict_rrr<00>_as_declarativeOs  r3c@s<>eZdZedd<00><00>Zdd<00>Zdd<00>Zdd<00>Zd d
<00>Zd d <00>Z d d<00>Z
dd<00>Z dd<00>Z dd<00>Z dd<00>Zdd<00>ZdS)r/cCsMt|ddd<00>p!t|d<00>}|r3t}nt}||||<00>dS)N<>_sa_decl_prepare_nocascaderTZ_sa_decl_prepare)r r&rr/)r<00>cls_r1r2Z defer_mapZcfg_clsrrrr0]s z_MapperConfig.setup_mappingcCs<>||_t|<00>|_||_d|_tj<00>|_t<00>|_ i|_
|j <00>i|j_ |j <00>tj|j|j<00>|j<00>|j<00>|j<00>|j<00>|j<00>dS)N)r<00>dictr2r1<00> mapped_tabler <00> OrderedDict<63>
properties<EFBFBD>set<65>declared_columns<6E> column_copies<65>_setup_declared_events<74>_sa_declared_attr_reg<65>_scan_attributesrZ add_class<73>_extract_mappable_attributes<65>_extract_declared_columns<6E> _setup_table<6C>_setup_inheritance<63>_early_mapping)<04>selfr5r1r2rrr<00>__init__is      
 




z_MapperConfig.__init__cCs|j<00>dS)N)<01>map)rErrrrD<00>sz_MapperConfig._early_mappingcsvt<00>jd<00>r9tjtd<00><00>fdd<00><00>}nt<00>jd<00>rrtjtd<00><00>fdd<00><00>}ndS) N<>__declare_last__<5F>after_configuredcs<00>jj<00>dS)N)rrHr)rErrrI<00>sz>_MapperConfig._setup_declared_events.<locals>.after_configured<65>__declare_first__<5F>before_configuredcs<00>jj<00>dS)N)rrJr)rErrrK<00>sz?_MapperConfig._setup_declared_events.<locals>.before_configured)r rrZ listens_forr)rErIrKr)rErr=<00>s'z$_MapperConfig._setup_declared_eventsc s>|j<00>|j}|j}d}d}}d}x<><02>jD]<5D>}|<00>k ort|<00>dk ort|ddd<00> }| r<>|<00>k r<>|j|<00>nxjt|<00>j<00>D]V\} }
| dkr<>| r| s<>t |
t
<00>r<03>fdd<00>}qq<>| dkr0| r| s!t |
t
<00>r<03>j }qq<>| dkr<>| r| sYt |
t
<00>r<03>j }t |t ttd<00>f<00>s<>tjd <00><00>n|<00>k r<>d}q<>qq<>|r<>t |
t
<00>r<>tjd
|j| |<00>f<16>q<>q<>q<>|<00>k r<>t |
t<00>r q<>qt |
t<00>r-tjd <00><00>qt |
t
<00>rt |
tj<00>} | r<>|
jr<>|
j|
<00><00>|| <||
<} t<00>| | <00>n5| r<>tjd <00>nt<00>| <00>|| <||
<} t | ttf<00>r<>| jdkr<>|
j| _q<>qq<>q<>Wq;W|r| rd}n||_ ||_!||_"dS) Nr4rT<>__mapper_args__cs t<00>j<00>S)N)r6rLr)rrr<00><lambda><3E>sz0_MapperConfig._scan_attributes.<locals>.<lambda><3E> __tablename__<5F>__table_args__z3__table_args__ value must be a tuple, dict, or Nonez<65>Regular (i.e. not __special__) attribute '%s.%s' uses @declared_attr, but owning class %s is mapped - not applying to subclass %s.z<>Mapper properties (i.e. deferred,column_property(), relationship(), etc.) must be declared as @declared_attr callables on declarative mixin classes.zJUse of sqlalchemy.util.classproperty on declarative classes is deprecated.)#rr2r<r%rr <00>_produce_column_copies<65>vars<72>items<6D>
isinstancer.rNrO<00>tupler6<00>typer <00> ArgumentErrorr <00>warn<72>__name__rr<00>InvalidRequestErrorr-Z
_cascading<EFBFBD>__get__<5F>setattrZwarn_deprecatedr(<00>doc<6F>__doc__<5F>
table_args<EFBFBD> tablename<6D>mapper_args_fn) rEr2r<r`r^Zinherited_table_argsr_r*Z class_mapped<65>name<6D>objZ oldclassprop<6F>retr)rrr?<00>s~   
          "
    z_MapperConfig._scan_attributescCs<>|j}|j}|j}x<>t|<00>j<00>D]<5D>\}}t|t<00>r.t||<00>|k rdq.q<>|jrt j
d<00><00>q<>||kr<>d|ko<>|j p<>||dj k r<>|j <00>||<}|j|_t|||<00>|||<q<>q.q.WdS)NzvColumns with foreign keys to other columns must be declared as @declared_attr callables on declarative mixin classes. <20> __table__)rr2r<rQrRrSrr(Z foreign_keysr rYra<00>c<>copy<70>_creation_orderr[)rEr*rr2r<rarbZcopy_rrrrP<00>s"        z$_MapperConfig._produce_column_copiescCs<>|j}|j}|j}xut|<00>D]g}|d
kr@q(n||}t|t<00>rkt||<00>}nOt|t<00>r<>|j|k r<>|j |kr<>t
|j <00>}t |||<00>nt|t <00>r t |<00>dkr t|dttf<00>r tjd|<16>q(nht|ttf<00>sU|jd<00>s(|j|<00>t |||<00>q(q(n|dkrstjd <00><00>ntj||<00>}|||<q(WdS) NrdrNrLrrz<>Ignoring declarative-like tuple value of attribute %s: possibly a copy-and-paste error with a comma left at the end of the line?<3F>__<5F>metadatazdAttribute name 'metadata' is reserved for the MetaData instance when using a declarative base class.)z __table__z __tablename__z__mapper_args__)rr2r9<00>listrSr.r(r
<00>class_<73>keyrr[rT<00>lenrrr rW<00>
startswith<EFBFBD>popr rYr<00>_deferred_relationship)rErr2<00> our_stuff<66>k<>value<75>proprrrr@s:    
!    z*_MapperConfig._extract_mappable_attributescs<>|j<00><00>jd<00>fdd<00><00>|j}tjt<00>}xt<00>j<00><00>D]<5D>\}}t|t t
f<00>r<>x<>|j D]g}t|t <00>r{|j dkr{t||<00>t|t
<00>s<>||jj|<00>n|j|<00>q{q{WqPt|t <00>rPt||<00>||jj|<00>|j|<00>||jkrB<01>|=qBqPqPWx[|j<00>D]M\}}t|<00>dkrStjd|j|djt|<00><00>f<16>qSqSWdS)Nrlcs <00>|jS)N)rg)rl)rqrrrMCsz9_MapperConfig._extract_declared_columns.<locals>.<lambda>rzzOn class %r, Column object %r named directly multiple times, only one will be used: %s. Consider using orm.synonym insteadz, )r9<00>sortr;<00> collections<6E> defaultdictr:rjrRrSrr <00>columnsr<00>table<6C>_undefer_column_namera<00>addrlrmr rWr1<00>join<69>sorted)rEr;Zname_to_prop_keyrlre<00>colra<00>keysr)rqrrA?s0     z'_MapperConfig._extract_declared_columnsc Cs<>|j}|j}|j}|j}|j}t|ddd<00><00>}|_d}t|d<00>rvtj|j <00>}nt
}d|krb|dk r<>fi}} |r t |t <00>r<>|} q t |t <00>r t |d t <00>r<>|dd <00>|d}} q|}q n|jd<00>}
|
r-d | d
<n|||jt |<00>t |<00>| <00>|_}q<>nN|j}|r<>x<|D]1} |jj| <00>sxtjd | j<16><00>qxqxWn||_dS)NrlcSs|jS)N)rg)rerrrrMosz,_MapperConfig._setup_table.<locals>.<lambda><3E> __table_cls__rdrrZ __autoload__T<5F>autoloadz8Can't add additional column %r when specifying __table__<5F><5F><EFBFBD><EFBFBD><EFBFBD>r<EFBFBD>r<>)rr_r^r2r;r}r&r <00>unbound_method_to_callabler<65>rrSr6rT<00>getrirdreZcontains_columnr rVrl<00> local_table) rErr_r^r2r;ryZ table_cls<6C>argsZtable_kwr<77>rerrrrBgsH              z_MapperConfig._setup_tablec Cs<>|j}|j}|j}|j}xm|jD]Y}t|<00>}|dkrRq.nt|<00>dk r.t|ddd<00> r.||_Pq.q.Wd|_|dkr<>|jdkr<>t|d<00> r<>t j
d|<16><00>n |jr<>t|j<00>}|j}|j }|dkr<>|r#t j d<00><00>nx<>|D]<5D>}|j rKt j d<00><00>n|j|jkr<>|j|j|kryq*nt j d|||j|jf<16><00>n|j|<00>|dk r*||k r*|j|<00>q*q*Wq<57>ndS) Nr4rTZ __no_table__zwClass %r does not have a __table__ or __tablename__ specified and does not inherit from an existing table-mapped class.z?Can't place __table_args__ on an inherited class with no table.zDCan't place primary key columns on an inherited class with no table.z;Column '%s' on class %s conflicts with existing column '%s')r<>rr^r;r!r"rr <00>inheritsr rYr7rVZ primary_keyrare<00> append_columnZ_refresh_for_new_column) rEryrr^r;re<00>inherited_mapper<65>inherited_tableZinherited_mapped_tablerrrrC<00>sR                     z _MapperConfig._setup_inheritancec
s<>|j}|jr!|j<00>}ni}x@d D]8}||kr.||}|jj||<00>||<q.q.Wd|ks<>td<00><00>|jr<>|j|d<n|jr<>|jdd<00> r<>t|j<00><00><00>j}d|kr%t<00>fdd <00>|j D<><00>|d<}|j
d
d <00>|j D<><00>nx<>t |j <00><00>D]i\}}t|tj<00>s\q8n|<00>jkr8<01>j|}t|t<00>r<>|g|j||<q<>q8q8Wn|j<00>} || d <| |_dS) N<>version_id_col<6F>polymorphic_onr<6E>z=Can't specify 'inherits' explicitly with declarative mappingsZconcreteF<65>exclude_propertiescs(g|]}|<00>jkr|j<00>qSr)Z_columntopropertyrl)<02>.0re)r<>rr<00>
<listcomp><3E>s z;_MapperConfig._prepare_mapper_arguments.<locals>.<listcomp>cSsg|]}|j<00>qSr)rl)r<>rerrrr<><00>s r9)r<>r<>)r9r`r<r<><00>AssertionErrorr<72>rr<>r:re<00>difference_updater;rjrRrSrZ ColumnElementZ_propsrrxrf<00> mapper_args)
rEr9r<>rr<00>vr<76>r<>r~<00>pZresult_mapper_argsr)r<>r<00>_prepare_mapper_arguments<74>s:    
     * ! 
z'_MapperConfig._prepare_mapper_argumentscCsl|j<00>t|jd<00>r4tj|jj<00>}nt}||j|j|j<00>|j_ }|j`
|S)N<>__mapper_cls__) r<>r&rr r<>r<>rr<>r<><00>
__mapper__r>)rEZ
mapper_clsZmp_rrrrGs
 z_MapperConfig.mapN)rX<00>
__module__<EFBFBD> __qualname__<5F> classmethodr0rFrDr=r?rPr@rArBrCr<>rGrrrrr/[s   ]  1 ( 0 : 6r/cs<>eZdZej<00>Zdd<00>Zedd<00><00>Zej dd<00><00>Ze
dd<00><00>Z e
dd <00><00>Z e
d
d <00><00>Z e
d d d<00><00>Z<00>fdd<00>Z<00>S)rcCsdS)Nr)rErrrrDsz$_DeferredMapperConfig._early_mappingcCs
|j<00>S)N)<01>_cls)rErrrrsz_DeferredMapperConfig.clscCs,tj||j<00>|_||j|j<dS)N)<05>weakref<65>ref<65>_remove_config_clsr<73><00>_configs)rErkrrrr"scCs|jj|d<00>dS)N)r<>ro)rr<>rrrr<>'sz(_DeferredMapperConfig._remove_config_clscCs%t|t<00>o$tj|<00>|jkS)N)rSrUr<>r<>r<>)rrkrrrr+sz_DeferredMapperConfig.has_clscCs|jtj|<00>S)N)r<>r<>r<>)rrkrrrr1sz$_DeferredMapperConfig.config_for_clsTcs<><00>fdd<00>|jj<00>D<>}|s,|Stdd<00>|D<><00><00>g}x4<00>D],<00>|j<00><00>fdd<00><00>jD<><00>qRWttj||<00><00>S)Ncs(g|]}t|j<00><00>r|<00>qSr)r$r)r<><00>m)<01>base_clsrrr<>7s z:_DeferredMapperConfig.classes_for_base.<locals>.<listcomp>css|]}|j|fVqdS)N)r)r<>r<>rrr<00> <genexpr>=sz9_DeferredMapperConfig.classes_for_base.<locals>.<genexpr>c3s/|]%}|<00>kr<00>|<19><00>fVqdS)Nr)r<>r<>)<02> all_m_by_cls<6C>m_clsrrr<>Ds)r<><00>valuesr6<00>extendr!rjrru)rr<>ru<00>classes_for_baseZtuplesr)r<>r<>r<>rr<>5s"   z&_DeferredMapperConfig.classes_for_basecs)|jj|jd<00>tt|<00>j<00>S)N)r<>ror<><00>superrrG)rE)<01> __class__rrrGOsz_DeferredMapperConfig.map)rXr<>r<>r r8r<>rD<00>propertyr<00>setterr<72>r<>rrr<>rGrr)r<>rrs   rcCsud|jkr^t|t<00>rQt||<00>|jj|<00>|jj||<00>qqt|t<00>r<>xO|j D]D}t|t<00>rj|j
dkrjt||<00>|jj|<00>qjqjW|jj||<00>qqt|t <00>r<>|jj|t j ||<00><00>qqt|t<00>rH|j|krHt|j<00>}|jj|t j ||<00><00>qqtj|||<00>ntj|||<00>dS)z<>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'rSrrzrdr<>r<>Z add_propertyrrxryrrrpr
rlrrU<00> __setattr__)rrlrsr~rrr<00>_add_attributeTs,    r<>cKs`t|<00>}xM|D]E}t||<00>sDtd||jf<16><00>nt||||<19>qWdS)a=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.
z(%r is an invalid keyword argument for %sN)rUr&<00> TypeErrorrXr[)rE<00>kwargsr5rrrrr<00>_declarative_constructorzs
 r<>rFcCs:|jdkr||_n|jdkr6||_ndS)N)rlra)rl<00>columnrrrrz<00>s rz)*r]ZschemarrZormrrrZorm.interfacesrZorm.propertiesrr Zorm.attributesr
Zorm.baser <00>r r rZsqlrrrrvr<>Zsqlalchemy.ormrr+r.rr"r r3rr/rr<>r<>rXrzrrrr<00><module>s4  
  <16><00>< &