ÿØÿà 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  } xZ | j    D]L \ } } | j d  s_ | j d  r@ q t | t  r | j |  q q Wx` | D]X } | j d |  } | j d |  } | s | rj |  j | | | |  | | <qj qj 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   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*   R0   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.pyR1   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 X    } y | j d  Wn t k
 r n Xy | j d	  Wn t k
 r n X| 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.pyR2   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   R6   (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyt   m2a   s    c         S   s   d  S(   N(    (   R   R6   (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyt   m2_pree   s    c         S   s   d  S(   N(    (   R   t   resultR6   (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyt   m2_posth   s    (   R   R   R   R7   R8   R:   (    (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR5   [   s   			t   Subc              s    e  Z d    Z   f d   Z RS(   c         S   s   | d S(   Ni   (    (   R   R6   (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR7   l   s    c            s   t    |   j | |  d  S(   N(   R   R:   (   R   t   ResultR6   (   R;   (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR:   n   s    (   R   R   R7   R:   (    (   R;   (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyR;   k   s   	i   i    i
   i   (    (   R   R7   t   AssertionError(   R4   R2   R5   t   tt   s(    (   R;   R4   s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyt   _testW   s(    		t   __main__N(    (   R#   t   typesR    R   t   typeR   R   R%   t   objectR-   R1   R@   R   (    (    (    s2   /usr/lib64/python2.7/Demo/newmetaclasses/Eiffel.pyt   <module>   s   		4
