PK���ȼRY��������€��� �v3.phpUT �øŽg‰gñ“gux �õ��õ��½T]kÛ0}߯pEhìâÙM7X‰çv%”v0֐µ{)Aå:6S$!ÉMJèߕ?R÷!>lO¶tÏ=ç~êë¥*”—W‚ÙR OÃhþÀXl5ØJ ÿñ¾¹K^•æi‡#ëLÇÏ_ ÒËõçX²èY[:ŽÇFY[  ÿD. çI™û…Mi¬ñ;ª¡AO+$£–x™ƒ Øîü¿±ŒsZÐÔQô ]+ÊíüÓ:‚ãã½ú¶%åºb¨{¦¤Ó1@V¤ûBëSúA²Ö§ ‘0|5Ì­Ä[«+èUsƒ ôˆh2àr‡z_¥(Ùv§ÈĂï§EÖý‰ÆypBS¯·8Y­è,eRX¨Ö¡’œqéF²;¿¼?Ø?Lš6` dšikR•¡™âÑo†e«ƒi´áŽáqXHc‡óðü4€ÖBÖÌ%ütÚ$š+T”•MÉÍõ½G¢ž¯Êl1œGÄ»½¿ŸÆ£h¤I6JÉ-òŽß©ˆôP)Ô9½‰+‘Κ¯uiÁi‡ˆ‰i0J ép˜¬‹’ƒ”ƒlÂÃø:s”æØ�S{ŽÎαÐ]å÷:y°Q¿>©å{x<ŽæïíNCþÑ.Mf?¨«2ý}=ûõýî'=£§ÿu•Ü(—¾IIa­"éþ@¶�¿ä9?^-qìÇÞôvŠeÈc ðlacã®xèÄ'®âd¶ çˆSEæódP/ÍÆv{Ô)Ó ?>…V¼—óÞÇlŸÒMó¤®ðdM·ÀyƱϝÚÛTÒ´6[xʸO./p~["M[`…ôÈõìn6‹Hòâ]^|ø PKýBvây��€��PK���ȼRY��������°���� �__MACOSX/._v3.phpUT �øŽg‰gþ“gux �õ��õ��c`cg`b`ðMLVðVˆP€'qƒøˆŽ!!AP&HÇ %PDF-1.7 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R /F2 9 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Producer (���d�o�m�p�d�f� �2�.�0�.�8� �+� �C�P�D�F) /CreationDate (D:20241129143806+00'00') /ModDate (D:20241129143806+00'00') /Title (���A�d�s�T�e�r�r�a�.�c�o�m� �i�n�v�o�i�c�e) >> endobj 6 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 904 >> stream x���]o�J���+F�ͩ����su\ �08=ʩzရ���lS��lc� "Ց� ���wޙ�%�R�DS��� �OI�a`� �Q�f��5����_���םO�`�7�_FA���D�Џ.j�a=�j����>��n���R+�P��l�rH�{0��w��0��=W�2D ����G���I�>�_B3ed�H�yJ�G>/��ywy�fk��%�$�2.��d_�h����&)b0��"[\B��*_.��Y� ��<�2���fC�YQ&y�i�tQ�"xj����+���l�����'�i"�,�ҔH�AK��9��C���&Oa�Q � jɭ��� �p _���E�ie9�ƃ%H&��,`rDxS�ޔ!�(�X!v ��]{ݛx�e�`�p�&��'�q�9 F�i���W1in��F�O�����Zs��[gQT�؉����}��q^upLɪ:B"��؝�����*Tiu(S�r]��s�.��s9n�N!K!L�M�?�*[��N�8��c��ۯ�b�� ��� �YZ���SR3�n�����lPN��P�;��^�]�!'�z-���ӊ���/��껣��4�l(M�E�QL��X ��~���G��M|�����*��~�;/=N4�-|y�`�i�\�e�T�<���L��G}�"В�J^���q��"X�?(V�ߣXۆ{��H[����P�� �c���kc�Z�9v�����? �a��R�h|��^�k�D4W���?Iӊ�]<��4�)$wdat���~�����������|�L��x�p|N�*��E� �/4�Qpi�x.>��d����,M�y|4^�Ż��8S/޾���uQe���D�y� ��ͧH�����j�wX � �&z� endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj xref 0 10 0000000000 65535 f 0000000009 00000 n 0000000074 00000 n 0000000120 00000 n 0000000284 00000 n 0000000313 00000 n 0000000514 00000 n 0000000617 00000 n 0000001593 00000 n 0000001700 00000 n trailer << /Size 10 /Root 1 0 R /Info 5 0 R /ID[] >> startxref 1812 %%EOF
Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 128

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 129

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 130

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 131
 ec@s"dZddlmZddlmZddlmZddlmZddlmZddlm Z dd lm Z dd lm Z dd lm Z ddlmZdd l mZdd l mZdefdYZdefdYZdefdYZdefdYZdS(sDescriptor properties are more "auxiliary" properties that exist as configurational elements, but don't participate as actively in the load/persist ORM loop. i(t attributes(tutil(tMapperProperty(tPropComparator(t _none_seti(tevent(texc(tschema(tsql(t expression(t operatorstDescriptorPropertycBs)eZdZdZeZeZdZRS(sO:class:`.MapperProperty` which proxies access to a user-defined descriptor.c s>dtffdY}jdkrmtjjd}jj|rm|_qmnjdkrfd}fd}fd}td|d|d|_ntj jj jjjfd d j d }|j|_ j jj|dS( Nt _ProxyImplcs_eZeZeZeZefdZdZ e dr]e j fdZ nRS(csjS(N(t uses_objects(tself(tprop(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyR -scSs ||_dS(N(tkey(RR((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyt__init__1st get_historycsj|||S(N(R(Rtstatetdict_tpassive(R(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyR6s(t__name__t __module__tFalsetaccepts_scalar_loadertTruetload_on_unexpiret collectiontpropertyR RthasattrRt PASSIVE_OFFR((R(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyR (s cst|j|dS(N(tsetattrtname(tobjtvalue(R(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pytfsetBscst|jdS(N(tdelattrR!(R"(R(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pytfdelEscst|jS(N(tgetattrR!(R"(R(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pytfgetHsR(R$R&cs jS(N(t_comparator_factory((tmapperR(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pytQttdoctoriginal_property(tobjectt descriptortNoneR'tclass_Rt_is_userland_descriptorRRtcreate_proxied_attributetparentR-timplt class_managertinstrument_attribute(RR*R tdescR$R&R(t proxy_attr((R*RRsR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pytinstrument_class%s(!   N( RRt__doc__R1R-RR t_links_to_entityR;(((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyR s tCompositePropertycBseZdZdZdZdZeZdZe j dZ e j dZ e dZdZd Ze j d Zejd Zd Zd ejfdYZdefdYZdZRS(sDefines a "composite" mapped attribute, representing a collection of columns as one attribute. :class:`.CompositeProperty` is constructed using the :func:`.composite` function. .. seealso:: :ref:`mapper_composite` cOstt|j||_||_|jdt|_|jdt|_|jdd|_ |j d|j j |_d|kr|j d|_ntj||jdS(s`Return a composite column-based property for use with a Mapper. See the mapping documentation section :ref:`mapper_composite` for a full usage example. The :class:`.MapperProperty` returned by :func:`.composite` is the :class:`.CompositeProperty`. :param class\_: The "composite type" class, or any classmethod or callable which will produce a new instance of the composite object given the column values in order. :param \*cols: List of Column objects to be mapped. :param active_history=False: When ``True``, indicates that the "previous" value for a scalar attribute should be loaded when replaced, if not already loaded. See the same flag on :func:`.column_property`. :param group: A group name for this property when marked as deferred. :param deferred: When True, the column property is "deferred", meaning that it does not load immediately, and is instead loaded when the attribute is first accessed on an instance. See also :func:`~sqlalchemy.orm.deferred`. :param comparator_factory: a class which extends :class:`.CompositeProperty.Comparator` which provides custom SQL clause generation for comparison operations. :param doc: optional string that will be applied as the doc on the class-bound descriptor. :param info: Optional data dictionary which will be populated into the :attr:`.MapperProperty.info` attribute of this object. tactive_historytdeferredtgrouptcomparator_factorytinfoN(tsuperR>Rtattrstcomposite_classtgetRR?R@R1RAtpopt __class__t ComparatorRBRCRtset_creation_ordert_create_descriptor(RR2REtkwargs((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyRfs+    cCs$tt|j||jdS(N(RDR>R;t_setup_event_handlers(RR*((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyR;scCs|jdS(sInitialization which occurs after the :class:`.CompositeProperty` has been associated with its parent mapper. N(t_setup_arguments_on_columns(R((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pytdo_initscsFfd}fd}fd}t|||_dS(stCreate the Python descriptor that will serve as the access point on instances of the mapped class. cstj|}tj|}j|krgjD]}t||^q7}j|kr|jdk stj| rj ||j<|j j j |j jgqn|jjdS(N(Rt instance_dicttinstance_stateRt_attribute_keysR'R1Rt issupersetRFtmanagertdispatchtrefresht_COMPOSITE_FGETRG(tinstanceRRRtvalues(R(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyR(s% cstj|}tj|}|jj}|jjtj}x,|jjD]}|||||j }qSW||j<|dkrx]j D]}t ||dqWn9x6t j |jD]\}}t |||qWdS(N(RRQRRRURRGtNO_VALUERVtsetR6R1RSR tzipt__composite_values__(RYR#RRtattrtprevioustfnR(R(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyR$s  cstj|}tj|}|jjtj}|jj}|jj|||j x!j D]}t ||dqiWdS(N( RRRRQRHRR[RURVtremoveR6RSR R1(RYRRR`R_R(R(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyR&sN(RR0(RR(R$R&((RsR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyRLs cCs,g|jD]}t|jj|j^q S(N(tpropsR'R5R2R(RR((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyt_comparable_elementsscCsg}x|jD]}t|tr@|jj|dt}nYt|tjre|jj|}n4t|t j r|j }nt j d|f|j|qW|S(Nt_configure_mapperss[Composite expects Column objects or mapped attributes/attribute names as arguments, got: %r(REt isinstancetstrR5t get_propertyRRtColumnt_columntopropertyRtInstrumentedAttributeRtsa_exct ArgumentErrortappend(RRcR_R((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyRcs  cCs,g|jD]}t|tjr |^q S(N(RERfRRi(Rta((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pytcolumnsscCscx\|jD]Q}|j|_|jrO|j|_dtfdtff|_n|j|_q WdS(swPropagate configuration arguments made on this composite to the target columns, for those that apply. R@t instrumentN(RcR?R@Rt strategy_keyRA(RR((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyROs    csfd}fd}fdfd}fd}tjjd|dttjjd|dttjjd |dtd ttjjd |dtd ttjjd |dtd td S(s>Establish events that populate/expire the composite attribute.cs||ddtdS(Nt is_refresh(R1R(Rtcontext(t_load_refresh_handler(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyt load_handlerscsE| s(jhjjj|rA|||dtndS(NRs(RtunionRSt intersectionR(RRttto_load(RuR(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pytrefresh_handlers cs|j}| s|jkr2j|kr2dSx!jD]}||kr<dSq<WjgjD]}|j|^qf|jProvided for userland code that uses attributes.get_history().N((((RRcRRUR6Rt has_changesRt non_deletedtextendRnR1tdeletedRtHistoryRF( RRRRtaddedRt has_historyRRthistR((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyR`s*      cCs|j||S(N(RB(RR*((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyR)stCompositeBundlecBseZdZdZRS(cCs,||_ttj|j|j|dS(N(RRDR>RRR(Rt property_texpr((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyRs csfd}|S(Ncs)jjgD]}||^qS(N(RRF(trowtproc(tprocsR(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyRs ((RtqueryRtlabelsR((RRsR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pytcreate_row_processors(RRRR(((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyRs RJcBsneZdZdZejdZdZejdZ dZ ejdZ dZ dZ RS( sProduce boolean, comparison, and other operators for :class:`.CompositeProperty` attributes. See the example in :ref:`composite_operations` for an overview of usage , as well as the documentation for :class:`.PropComparator`. .. seealso:: :class:`.PropComparator` :class:`.ColumnOperators` :ref:`types_operators` :attr:`.TypeEngine.comparator_factory` cCstjdt|jS(NRA(R t ClauseListRRd(R((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pytclausess cCs|jS(N(R (R((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyt__clause_element__scCsF|jji|jd6|jd6|jjd6}tj|j|S(Nt parententityt parentmappert proxy_key(Rt _annotatet _parententityRRR>R(RR((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyR s    cCst|tjjr!|j}n|dkrOg|jjD] }d^q:}n@t||jjrs|j }nt j d|j|ft |j |S(Ns)Can't UPDATE composite attribute %s to %r(RfRtelementst BindParameterR#R1RRSRFR^RlRmR]Rd(RR#RRZ((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyt_bulk_update_tupless  "cCsF|jr8g|jjD]}t|jj|j^qS|jjSdS(N(t_adapt_to_entityRRdR'tentityR(RR((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyRds ,cCs|dkr(dgt|jj}n |j}gt|jj|D]\}}||k^qJ}|jrg|D]}|j|^qx}ntj |S(N( R1tlenRRdR^R]RtadapterRtand_(RtotherRZRotbt comparisonstx((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyt__eq__s  4 %cCstj|j|S(N(Rtnot_R(RR((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyt__ne__sN(RRR<R1t__hash__Rtmemoized_propertyRRR RRdRR(((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyRJs   cCst|jjjd|jS(Nt.(RgR5R2RR(R((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyt__str__s(RRR<RR;RPR/RXRLRRRdRcRRpRORNRSRRRR)torm_utiltBundleRRRJR(((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyR>Ys"  ;    = J RtConcreteInheritedPropertycBs eZdZdZdZRS(s4A 'do nothing' :class:`.MapperProperty` that disables an attribute on a concrete subclass that is only present on the inherited mapper, not the concrete classes' mapper. Cases where this occurs include: * When the superclass mapper is mapped against a "polymorphic union", which includes all attributes from all subclasses. * When a relationship() is configured on an inherited mapper, but not on the subclass mapper. Concrete mappers require that relationship() is configured explicitly on each subclass. cCsPd}xC|jjD]2}|j|j}t|ts|j}PqqW|S(N(R1R5titerate_to_roott_propsRRfRRB(RR*tcomparator_callabletmtp((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyR)s csQttjfddtffdY}|_dS(Ncs&tdjjjfdS(NsgConcrete %s does not implement attribute %r at the instance level. Add this property explicitly to %s.(tAttributeErrorR5R((R(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pytwarnstNoninheritedConcretePropcs8eZfdZfdZfdZRS(cs dS(N((tsR"R#(R(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyt__set__scs dS(N((RR"(R(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyt __delete__scs|dkrjSdS(N(R1R0(RR"towner(RR(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyt__get__s (RRRRR((RR(sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyRs(RDRRR/R0(RR((RRsR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyRs (RRR<R)R(((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyRs tSynonymPropertycBskeZddddddZedZejdZdZ dZ ej ddZ RS(cCsxtt|j||_||_||_||_|pO|rL|jpOd|_ |rg||_ nt j |dS(sDenote an attribute name as a synonym to a mapped property, in that the attribute will mirror the value and expression behavior of another attribute. e.g.:: class MyClass(Base): __tablename__ = 'my_table' id = Column(Integer, primary_key=True) job_status = Column(String(50)) status = synonym("job_status") :param name: the name of the existing mapped property. This can refer to the string name ORM-mapped attribute configured on the class, including column-bound attributes and relationships. :param descriptor: a Python :term:`descriptor` that will be used as a getter (and potentially a setter) when this attribute is accessed at the instance level. :param map_column: **For classical mappings and mappings against an existing Table object only**. if ``True``, the :func:`.synonym` construct will locate the :class:`_schema.Column` object upon the mapped table that would normally be associated with the attribute name of this synonym, and produce a new :class:`.ColumnProperty` that instead maps this :class:`_schema.Column` to the alternate name given as the "name" argument of the synonym; in this way, the usual step of redefining the mapping of the :class:`_schema.Column` to be under a different name is unnecessary. This is usually intended to be used when a :class:`_schema.Column` is to be replaced with an attribute that also uses a descriptor, that is, in conjunction with the :paramref:`.synonym.descriptor` parameter:: my_table = Table( "my_table", metadata, Column('id', Integer, primary_key=True), Column('job_status', String(50)) ) class MyClass(object): @property def _job_status_descriptor(self): return "Status: %s" % self._job_status mapper( MyClass, my_table, properties={ "job_status": synonym( "_job_status", map_column=True, descriptor=MyClass._job_status_descriptor) } ) Above, the attribute named ``_job_status`` is automatically mapped to the ``job_status`` column:: >>> j1 = MyClass() >>> j1._job_status = "employed" >>> j1.job_status Status: employed When using Declarative, in order to provide a descriptor in conjunction with a synonym, use the :func:`sqlalchemy.ext.declarative.synonym_for` helper. However, note that the :ref:`hybrid properties ` feature should usually be preferred, particularly when redefining attribute behavior. :param info: Optional data dictionary which will be populated into the :attr:`.InspectionAttr.info` attribute of this object. .. versionadded:: 1.0.0 :param comparator_factory: A subclass of :class:`.PropComparator` that will provide custom comparison behavior at the SQL expression level. .. note:: For the use case of providing an attribute which redefines both Python-level and SQL-expression level behavior of an attribute, please refer to the Hybrid attribute introduced at :ref:`mapper_hybrids` for a more effective technique. .. seealso:: :ref:`synonyms` - Overview of synonyms :func:`.synonym_for` - a helper oriented towards Declarative :ref:`mapper_hybrids` - The Hybrid Attribute extension provides an updated approach to augmenting attribute behavior more flexibly than can be achieved with synonyms. N( RDRRR!t map_columnR0RBR<R1R-RCRRK(RR!RR0RBR-RC((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyRsp     cCst|jj|jjjS(N(R'R5R2R!R6R (R((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyR scCst|jj|j}t|d s;t|jt rt|tj rT|j St|t j rj|St jd|jjj|j|fn|jS(NRsGsynonym() attribute "%s.%s" only supports ORM mapped attributes, got %r(R'R5R2R!RRfRRRtQueryableAttributet comparatorR tColumnOperatorsRltInvalidRequestErrorR(RR_((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyt_proxied_objects"cCsT|j}t|trL|jr6|j||}n|j||}|S|SdS(N(RRfRRB(RR*Rtcomp((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyR)s  cOs+t|jj|j}|jj||S(N(R'R5R2R!R6R(RtargtkwR_((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyRsssqlalchemy.orm.propertiescCstjj}|jr|j|jjkrUtjd|j |jj |jfnp|jj|j|j kr|j |jj|jj|j krtjd|j|j |j |jfn|j |jj|j}|j |j |d|dt|j|_n||_dS(Ns>Can't compile synonym '%s': no column on table '%s' named '%s'spCan't call map_column=True for synonym %r=%r, a ColumnProperty already exists keyed to the name %r for column %rtinitt setparent(Rt preloadedtorm_propertiesRRtpersist_selectabletcRlRmR!t descriptionRjtColumnPropertyt_configure_propertyRt_mapped_by_synonymR5(RR5Rt propertiesR((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyt set_parents*     %N( RRR1RRR RRRR)Rtpreload_moduleR(((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyRs u N(R<R,RRRt interfacesRRRRRRlRRR R R R>RR(((sR/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/orm/descriptor_props.pyt s"=5