Your IP : 3.145.70.108
�
��^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'