Your IP : 216.73.216.213


Current Path : /opt/alt/python33/lib64/python3.3/Tools/demo/__pycache__/
Upload File :
Current File : //opt/alt/python33/lib64/python3.3/Tools/demo/__pycache__/eiffel.cpython-33.pyc

�
��fNc@s�dZddlZddlmZGdd�de�ZGdd�de�ZGdd	�d	�ZGd
d�d�Z	Gdd
�d
e�Z
Gdd�dej�Ze
dkr�ej�ndS(uj
Support Eiffel-style preconditions and postconditions for functions.

An example for Python metaclasses.
iN(uFunctionTypecs8|EeZdZ�fdd�Zedd��Z�S(uEiffelBaseMetaClasscs,|j|�tt|�j||||�S(N(uconvert_methodsusuperuEiffelBaseMetaClassu__new__(umetaunameubasesudict(u	__class__(u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyu__new__s
uEiffelBaseMetaClass.__new__cCs�g}xo|j�D]a\}}|jd�s=|jd�rUt|t�stt�qt|t�r|j|�qqWx`|D]X}|jd|�}|jd|�}|s�|r|j||||�||<qqWdS(u�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.
        u_preu_postu%s_preu%s_postN(uitemsuendswithu
isinstanceufunctionuAssertionErroruappendugetumake_eiffel_method(uclsudictumethodsukuvumupreupost((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyuconvert_methodss

u#EiffelBaseMetaClass.convert_methods(u__name__u
__module__u__qualname__u__new__uclassmethoduconvert_methods(u
__locals__((u	__class__u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyuEiffelBaseMetaClasssuEiffelBaseMetaClasscBs&|EeZdZedd��ZdS(uEiffelMetaClass1cs4���fdd�}�jr0�j|_n|S(NcsK�r�|||�n�|||�}�rG�||||�n|S(N((uselfuargsukwargsurv(ufuncupostupre(u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyumethod/su3EiffelMetaClass1.make_eiffel_method.<locals>.method(u__doc__(ufuncupreupostumethod((ufuncupostupreu6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyumake_eiffel_method-s	u#EiffelMetaClass1.make_eiffel_methodN(u__name__u
__module__u__qualname__ustaticmethodumake_eiffel_method(u
__locals__((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyuEiffelMetaClass1*suEiffelMetaClass1cBs,|EeZdZdd�Zdd�ZdS(uEiffelMethodWrappercCs||_||_dS(N(u_instu_descr(uselfuinstudescr((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyu__init__?s	uEiffelMethodWrapper.__init__cOs|jj|j||�S(N(u_descru
callmethodu_inst(uselfuargsukwargs((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyu__call__CsuEiffelMethodWrapper.__call__N(u__name__u
__module__u__qualname__u__init__u__call__(u
__locals__((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyuEiffelMethodWrapper=suEiffelMethodWrappercBs8|EeZdZdd�Zdd�Zdd�ZdS(uEiffelDescriptorcCs7||_||_||_|j|_|j|_dS(N(u_funcu_preu_postu__name__u__doc__(uselfufuncupreupost((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyu__init__Is
			uEiffelDescriptor.__init__cCs
t||�S(N(uEiffelMethodWrapper(uselfuobjucls((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyu__get__QsuEiffelDescriptor.__get__cCsZ|jr|j|||�n|j|||�}|jrV|j||||�n|S(N(u_preu_funcu_post(uselfuinstuargsukwargsux((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyu
callmethodTs		uEiffelDescriptor.callmethodN(u__name__u
__module__u__qualname__u__init__u__get__u
callmethod(u
__locals__((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyuEiffelDescriptorGsuEiffelDescriptorcBs|EeZdZeZdS(uEiffelMetaClass2N(u__name__u
__module__u__qualname__uEiffelDescriptorumake_eiffel_method(u
__locals__((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyuEiffelMetaClass2]suEiffelMetaClass2cBs8|EeZdZdd�Zdd�Zdd�ZdS(uTestscCs|jt�dS(N(u_testuEiffelMetaClass1(uself((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyutestEiffelMetaClass1esuTests.testEiffelMetaClass1cCs|jt�dS(N(u_testuEiffelMetaClass2(uself((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyutestEiffelMetaClass2hsuTests.testEiffelMetaClass2cs�Gdd�dd|�}Gdd�d|�}G�fdd�d|��|�}|j|jd�d	�|j|jd�d	�|jt|jd
���}|jt|jd�|jt|jd�|j|jd�d
�dS(NcBs|EeZdZdS(uTests._test.<locals>.EiffelN(u__name__u
__module__u__qualname__(u
__locals__((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyuEiffellsuEiffelu	metaclasscBsD|EeZdZdd�Zdd�Zdd�Zdd�Zd	S(
uTests._test.<locals>.TestcSs|dS(uMake it a little largeri((uselfuarg((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyumpsuTests._test.<locals>.Test.mcSs|dS(uMake it a little largeri((uselfuarg((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyum2tsuTests._test.<locals>.Test.m2cSs|dkst�dS(Ni(uAssertionError(uselfuarg((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyum2_prexsu Tests._test.<locals>.Test.m2_precSs||kst�dS(N(uAssertionError(uselfuresultuarg((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyum2_post{su!Tests._test.<locals>.Test.m2_postN(u__name__u
__module__u__qualname__umum2um2_preum2_post(u
__locals__((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyuTestosuTestcs5|EeZdZdd�Z��fdd�Z�S(uTests._test.<locals>.SubcSs|dS(Ni((uselfuarg((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyum2suTests._test.<locals>.Sub.m2cs/t�|�j||�|dks+t�dS(Nid(usuperum2_postuAssertionError(uselfuResultuarg(uSubu	__class__(u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyum2_post�su Tests._test.<locals>.Sub.m2_post(u__name__u
__module__u__qualname__um2um2_post(u
__locals__(uSub(u	__class__u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyuSub~suSubiiii
ii(uassertEqualumum2uassertRaisesuAssertionError(uselfu	metaclassuEiffeluTestutus((uSubu6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyu_testks		uTests._testN(u__name__u
__module__u__qualname__utestEiffelMetaClass1utestEiffelMetaClass2u_test(u
__locals__((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyuTestscsuTestsu__main__(u__doc__uunittestutypesuFunctionTypeufunctionutypeuEiffelBaseMetaClassuEiffelMetaClass1uEiffelMethodWrapperuEiffelDescriptoruEiffelMetaClass2uTestCaseuTestsu__name__umain(((u6/opt/alt/python33/lib64/python3.3/Tools/demo/eiffel.pyu<module>s
.