✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server303.web-hosting.com ​🇻​♯➤ 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP 🇾​♯➤ 2025

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 199.188.205.31 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.217.42
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗙𝗙 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ 𝗔𝗟𝗟 𝗪𝗢𝗥𝗞𝗜𝗡𝗚....

𝗛𝗢𝗠𝗘
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /usr/lib64/python2.7/Demo/metaclasses//Eiffel.pyc
�
��^c@s�dZddlmZmZmZdefd��YZdefd��YZdefd��YZed	d
i�Zd
�Z	e
dkr�e	�ndS(s�Support Eiffel-style preconditions and postconditions.

For example,

class C:
    def m1(self, arg):
        require arg > 0
        return whatever
        ensure Result > arg

can be written (clumsily, I agree) as:

class C(Eiffel):
    def m1(self, arg):
        return whatever
    def m1_pre(self, arg):
        assert arg > 0
    def m1_post(self, Result, arg):
        assert Result > arg

Pre- and post-conditions for a method, being implemented as methods
themselves, are inherited independently from the method.  This gives
much of the same effect of Eiffel, where pre- and post-conditions are
inherited when a method is overridden by a derived class.  However,
when a derived class in Python needs to extend a pre- or
post-condition, it must manually merge the base class' pre- or
post-condition with that defined in the derived class', for example:

class D(C):
    def m1(self, arg):
        return arg**2
    def m1_post(self, Result, arg):
        C.m1_post(self, Result, arg)
        assert Result < 100

This gives derived classes more freedom but also more responsibility
than in Eiffel, where the compiler automatically takes care of this.

In Eiffel, pre-conditions combine using contravariance, meaning a
derived class can only make a pre-condition weaker; in Python, this is
up to the derived class.  For example, a derived class that takes away
the requirement that arg > 0 could write:

    def m1_pre(self, arg):
        pass

but one could equally write a derived class that makes a stronger
requirement:

    def m1_pre(self, arg):
        require arg > 50

It would be easy to modify the classes shown here so that pre- and
post-conditions can be disabled (separately, on a per-class basis).

A different design would have the pre- or post-condition testing
functions return true for success and false for failure.  This would
make it possible to implement automatic combination of inherited
and new pre-/post-conditions.  All this is left as an exercise to the
reader.

i����(t	MetaClasst
MetaHelpertMetaMethodWrappertEiffelMethodWrappercBseZd�Zd�ZRS(cCs�tj|||�yt||jd�|_Wntk
rLd|_nXyt||jd�|_Wntk
r�d|_nXdS(Nt_pret_post(Rt__init__tgetattrt__name__tpretAttributeErrortNonetpost(tselftfunctinst((s//usr/lib64/python2.7/Demo/metaclasses/Eiffel.pyRDs


cOsh|jrt|j||�nt|j|jf||�}|jrdt|j|f||�n|S(N(R	tapplyRRR(R
targstkwtResult((s//usr/lib64/python2.7/Demo/metaclasses/Eiffel.pyt__call__Ss		(Rt
__module__RR(((s//usr/lib64/python2.7/Demo/metaclasses/Eiffel.pyRBs	tEiffelHelpercBseZeZRS((RRRt__methodwrapper__(((s//usr/lib64/python2.7/Demo/metaclasses/Eiffel.pyR[stEiffelMetaClasscBseZeZRS((RRRt
__helper__(((s//usr/lib64/python2.7/Demo/metaclasses/Eiffel.pyR^stEiffelcCs0dtfd��Y}|�}|jd�dS(NtCcBs#eZd�Zd�Zd�ZRS(cSs|dS(Ni((R
targ((s//usr/lib64/python2.7/Demo/metaclasses/Eiffel.pytm1fscSs|dkstd��dS(Nisprecondition for m1 failed(tAssertionError(R
R((s//usr/lib64/python2.7/Demo/metaclasses/Eiffel.pytm1_prehscSs||kst�dS(N(R(R
RR((s//usr/lib64/python2.7/Demo/metaclasses/Eiffel.pytm1_postjs(RRRRR (((s//usr/lib64/python2.7/Demo/metaclasses/Eiffel.pyRes		i(RR(Rtx((s//usr/lib64/python2.7/Demo/metaclasses/Eiffel.pyt_testds	t__main__N((t__doc__tMetaRRRRRRRR"R(((s//usr/lib64/python2.7/Demo/metaclasses/Eiffel.pyt<module>>s	


Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
15 Jun 2024 8.33 AM
root / root
0755
Eiffel.py
3.387 KB
19 Apr 2020 9.13 PM
root / root
0644
Eiffel.pyc
4.523 KB
10 Apr 2024 4.58 AM
root / root
0644
Eiffel.pyo
4.424 KB
10 Apr 2024 4.58 AM
root / root
0644
Enum.py
4.315 KB
19 Apr 2020 9.13 PM
root / root
0644
Enum.pyc
6.034 KB
10 Apr 2024 4.58 AM
root / root
0644
Enum.pyo
6.034 KB
10 Apr 2024 4.58 AM
root / root
0644
Meta.py
2.864 KB
19 Apr 2020 9.13 PM
root / root
0644
Meta.pyc
4.472 KB
10 Apr 2024 4.58 AM
root / root
0644
Meta.pyo
4.472 KB
10 Apr 2024 4.58 AM
root / root
0644
Simple.py
1.164 KB
19 Apr 2020 9.13 PM
root / root
0644
Simple.pyc
2.682 KB
10 Apr 2024 4.58 AM
root / root
0644
Simple.pyo
2.682 KB
10 Apr 2024 4.58 AM
root / root
0644
Synch.py
7.752 KB
19 Apr 2020 9.13 PM
root / root
0644
Synch.pyc
8.264 KB
10 Apr 2024 4.58 AM
root / root
0644
Synch.pyo
8.119 KB
10 Apr 2024 4.58 AM
root / root
0644
Trace.py
4.036 KB
19 Apr 2020 9.13 PM
root / root
0644
Trace.pyc
6.028 KB
10 Apr 2024 4.58 AM
root / root
0644
Trace.pyo
6.028 KB
10 Apr 2024 4.58 AM
root / root
0644
index.html
20.091 KB
19 Apr 2020 9.13 PM
root / root
0644
meta-vladimir.txt
11.257 KB
19 Apr 2020 9.13 PM
root / root
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF