ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     
^c           @   s   d  Z  d d l m Z d e f d     YZ d e f d     YZ d d d     YZ d	 e f d
     YZ	 d e f d     YZ
 d   Z e d k r e e  e e
  n  d S(   s6   Support Eiffel-style preconditions and postconditions.i(   t   FunctionTypet   EiffelBaseMetaClassc           B   s    e  Z d    Z e d    Z RS(   c         C   s,   |  j  |  t t |   j |  | | |  S(   N(   t   convert_methodst   superR   t   __new__(   t   metat   namet   basest   dict(    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR      s    c         C   s   g  } xo | j    D]a \ } } | j d  s= | j d  rU t | t  st t  q t | t  r | j |  q q Wx` | D]X } | j d |  } | j d |  } | s | r |  j | | | |  | | <q q Wd S(   s   Replace functions in dict with EiffelMethod wrappers.

        The dict is modified in place.

        If a method ends in _pre or _post, it is removed from the dict
        regardless of whether there is a corresponding method.
        t   _pret   _posts   %s_pres   %s_postN(   t	   iteritemst   endswitht
   isinstancet   functiont   AssertionErrort   appendt   gett   make_eiffel_method(   t   clsR   t   methodst   kt   vt   mt   pret   post(    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR      s    
(   t   __name__t
   __module__R   t   classmethodR   (    (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR      s   	t   EiffelMetaClass1c           B   s   e  Z e d     Z RS(   c            s1       f d   }   j  r-   j  | _  n  | S(   Nc            sK    r  |  | |  n    |  | |  }  rG  |  | | |  n  | S(   N(    (   t   selft   argst   kwargst   x(   t   funcR   R   (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyt   method'   s    (   t   __doc__(   R"   R   R   R#   (    (   R"   R   R   s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR   %   s    	(   R   R   t   staticmethodR   (    (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR   "   s   t   EiffelMethodWrapperc           B   s   e  Z d    Z d   Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t   _instt   _descr(   R   t   instt   descr(    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyt   __init__6   s    	c         O   s   |  j  j |  j | |  S(   N(   R(   t
   callmethodR'   (   R   R   R    (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyt   __call__:   s    (   R   R   R+   R-   (    (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR&   4   s   	t   EiffelDescriptorc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s7   | |  _  | |  _ | |  _ | j |  _ | j |  _ d  S(   N(   t   _funcR	   R
   R   R$   (   R   R"   R   R   (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR+   ?   s
    			c         C   s   t  | |   S(   N(   R&   (   R   t   objR   (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyt   __get__G   s    c         C   sZ   |  j  r |  j  | | |  n  |  j | | |  } |  j rV |  j | | | |  n  | S(   N(   R	   R/   R
   (   R   R)   R   R    R!   (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR,   J   s    		(   R   R   R+   R1   R,   (    (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR.   =   s   		t   EiffelMetaClass2c           B   s   e  Z e Z RS(    (   R   R   R.   R   (    (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR2   R   s   c            s  d d  f d     Y} d | f d     Y} d | f   f d     Y  |   } | j  d  | j d  y | j d  Wn t k
 r n Xt s t      } y | j d  Wn t k
 r n Xt s t  y | j d	  Wn t k
 r n Xt s
t  | j d
  d  S(   Nt   Eiffelc              s   e  Z   Z RS(    (   R   R   t   __metaclass__(    (   t	   metaclass(    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR3   X   s   t   Testc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         S   s   | d S(   s   Make it a little largeri   (    (   R   t   arg(    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR   ]   s    c         S   s   | d S(   s   Make it a little largeri   (    (   R   R7   (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyt   m2a   s    c         S   s   | d k s t   d  S(   Ni    (   R   (   R   R7   (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyt   m2_pree   s    c         S   s   | | k s t   d  S(   N(   R   (   R   t   resultR7   (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyt   m2_posth   s    (   R   R   R   R8   R9   R;   (    (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR6   [   s   			t   Subc              s    e  Z d    Z   f d   Z RS(   c         S   s   | d S(   Ni   (    (   R   R7   (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR8   l   s    c            s/   t    |   j | |  | d k  s+ t  d  S(   Nid   (   R   R;   R   (   R   t   ResultR7   (   R<   (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR;   n   s    (   R   R   R8   R;   (    (   R<   (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR<   k   s   	i   i    i
   i   (    (   R   R8   R   t   False(   R5   R3   R6   t   tt   s(    (   R<   R5   s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyt   _testW   s.    		t   __main__N(    (   R$   t   typesR    R   t   typeR   R   R&   t   objectR.   R2   RA   R   (    (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyt   <module>   s   		4
