Edit File: 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"���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