File: //lib64/python2.7/Demo/newmetaclasses/Eiffel.pyc
ó
¿œ^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"