Ñò
ÂŠ›Mc           @   st   d  d k  Z  d  d k Z d  d k Z d  d k Z d  d k l Z d Z e i d ƒ Z d „  Z	 d „  Z
 d „  Z d S(	   iÿÿÿÿN(   t   ormt   mappers   ^(\s+)c         C   s±   t  i |  | ƒ } | o | i ƒ  p d } x} t |  d | !ƒ D]h } d | j o | St  i | ƒ } | o | i ƒ  p d } | | j o Pn | i d ƒ o PqA qA Wd  S(   Nt    i    s   testlib.pragmat   :(   t   _whitespacet   matcht   groupt   reversedt   endswitht   None(   t   linest   currentt   mt   basist   linet   indent(    (    s^   p:\graphics\tools\python26\lib\site-packages\sqlalchemy-0.6.6-py2.6.egg\sqlalchemy\test\orm.pyt   _find_pragma   s     	c            sq   ˆ  i  d ƒ o% ˆ  i d ƒ o d ˆ  d d !‰ n d ˆ  ‰ d ˆ  ‰ ‡ ‡  ‡ ‡ ‡ f d †  ‰ ˆ  ˆ _ ˆ S(   sÐ  Creates tripwired variant of a method, raising when called.

    To excempt an invocation from blockage, there are two options.

    1) add a pragma in a comment::

        # testlib.pragma exempt:methodname
        offending_line()

    2) add a magic cookie to the function's namespace::
        __sa_baremethodname_exempt__ = True
        ...
        offending_line()
        another_offending_lines()

    The second is useful for testing and development.
    t   __s   __sa_%s_exempt__i   iþÿÿÿs   exempt:c   
         sa  d  } zPt i ƒ  d d } t i | d ƒ } | i i d d ƒ } t |  ƒ } t | d d !Œ  } | i d ƒ pK | o ˆ  | j p7 ˆ | i	 j p' d	 | i	 j o t
 | i	 d	 ˆ t ƒ } | oc t
 t | |  ƒ ˆ d  ƒ }	 |	 d  j p t
 |	 d
 d  ƒ ˆ j o ˆ |  | | Ž S|	 | | Ž  Sn+ t d | i ˆ | | d | d f ƒ ‚ Wd  ~ Xd  S(   Ni   i    i	   t   __name__R   i   i   t
   sqlalchemyt   selft   im_funcs!   %s.%s called in %s, line %s in %si   (   R	   t   inspectt   stackt   getframeinfot	   f_globalst   gett   typeR   t
   startswitht   f_localst   getattrt   Falset   supert   AssertionErrorR   (
   R   t   argst   kwt   frame_rt   framet   modulet   type_t   pragmat   exemptt	   supermeth(   t   pragma_markert   method_namet   methodt   frame_markert   fallback(    s^   p:\graphics\tools\python26\lib\site-packages\sqlalchemy-0.6.6-py2.6.egg\sqlalchemy\test\orm.pyR-   @   s,    ((   R   R   R   (   R,   R/   (    (   R,   R.   R/   R+   R-   s^   p:\graphics\tools\python26\lib\site-packages\sqlalchemy-0.6.6-py2.6.egg\sqlalchemy\test\orm.pyt   _make_blocker'   s     

 	c         O   s$  d d d „  f d d d „  f d d d „  f d	 d d
 „  f d d d „  f d d d „  f d d d „  f d d d „  f d d d „  f g	 } t  |  t ƒ ot |  i t f j oa x^ | D]R \ } } } t t i | t ƒ o- | |  i j o t	 |  | t
 | | ƒ ƒ q· q· Wn t i |  | | Ž S(   Nt   __hash__t
   unhashablec         S   s
   t  |  ƒ S(    (   t   id(   t   s(    (    s^   p:\graphics\tools\python26\lib\site-packages\sqlalchemy-0.6.6-py2.6.egg\sqlalchemy\test\orm.pyt   <lambda>e   s    t   __eq__t   noncomparablec         S   s
   |  | j S(    (    (   R4   t   o(    (    s^   p:\graphics\tools\python26\lib\site-packages\sqlalchemy-0.6.6-py2.6.egg\sqlalchemy\test\orm.pyR5   f   s    t   __ne__c         S   s
   |  | j	 S(    (    (   R4   R8   (    (    s^   p:\graphics\tools\python26\lib\site-packages\sqlalchemy-0.6.6-py2.6.egg\sqlalchemy\test\orm.pyR5   g   s    t   __cmp__c         S   s   t  i |  | ƒ S(    (   t   objectR:   (   R4   R8   (    (    s^   p:\graphics\tools\python26\lib\site-packages\sqlalchemy-0.6.6-py2.6.egg\sqlalchemy\test\orm.pyR5   h   s    t   __le__c         S   s   t  i |  | ƒ S(    (   R;   R<   (   R4   R8   (    (    s^   p:\graphics\tools\python26\lib\site-packages\sqlalchemy-0.6.6-py2.6.egg\sqlalchemy\test\orm.pyR5   i   s    t   __lt__c         S   s   t  i |  | ƒ S(    (   R;   R=   (   R4   R8   (    (    s^   p:\graphics\tools\python26\lib\site-packages\sqlalchemy-0.6.6-py2.6.egg\sqlalchemy\test\orm.pyR5   j   s    t   __ge__c         S   s   t  i |  | ƒ S(    (   R;   R>   (   R4   R8   (    (    s^   p:\graphics\tools\python26\lib\site-packages\sqlalchemy-0.6.6-py2.6.egg\sqlalchemy\test\orm.pyR5   k   s    t   __gt__c         S   s   t  i |  | ƒ S(    (   R;   R?   (   R4   R8   (    (    s^   p:\graphics\tools\python26\lib\site-packages\sqlalchemy-0.6.6-py2.6.egg\sqlalchemy\test\orm.pyR5   l   s    t   __nonzero__t	   truthlessc         S   s   d  S(   i   (    (   R4   (    (    s^   p:\graphics\tools\python26\lib\site-packages\sqlalchemy-0.6.6-py2.6.egg\sqlalchemy\test\orm.pyR5   m   s    (   t
   isinstanceR   t	   __bases__R;   R   t   configt   optionsR   t   __dict__t   setattrR0   R    R   (   R'   R"   R#   t	   forbiddenR,   t   optionR/   (    (    s^   p:\graphics\tools\python26\lib\site-packages\sqlalchemy-0.6.6-py2.6.egg\sqlalchemy\test\orm.pyR   c   s     # %(   s   mapper(   R   t   reRD   t   testingR   R    t   __all__t   compileR   R   R0   R   (    (    (    s^   p:\graphics\tools\python26\lib\site-packages\sqlalchemy-0.6.6-py2.6.egg\sqlalchemy\test\orm.pyt   <module>   s   		<