[Python-checkins] python/dist/src/Demo/newmetaclasses Eiffel.py,1.4,1.5
jhylton@users.sourceforge.net
jhylton@users.sourceforge.net
Fri, 12 Jul 2002 08:42:12 -0700
Update of /cvsroot/python/python/dist/src/Demo/newmetaclasses
In directory usw-pr-cvs1:/tmp/cvs-serv14407
Modified Files:
Eiffel.py
Log Message:
Get the meta class inheritance right.
Index: Eiffel.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Demo/newmetaclasses/Eiffel.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** Eiffel.py 11 Jul 2002 21:17:26 -0000 1.4
--- Eiffel.py 12 Jul 2002 15:42:10 -0000 1.5
***************
*** 5,8 ****
--- 5,13 ----
class EiffelBaseMetaClass(type):
+ def __new__(meta, name, bases, dict):
+ meta.convert_methods(dict)
+ return super(EiffelBaseMetaClass, meta).__new__(meta, name, bases,
+ dict)
+
def convert_methods(cls, dict):
"""Replace functions in dict with EiffelMethod wrappers.
***************
*** 31,38 ****
# an implementation of the "eiffel" meta class that uses nested functions
- def __new__(meta, name, bases, dict):
- meta.convert_methods(dict)
- return super(EiffelMetaClass1, meta).__new__(meta, name, bases, dict)
-
def make_eiffel_method(func, pre, post):
def method(self, *args, **kwargs):
--- 36,39 ----
***************
*** 81,85 ****
return x
! class EiffelMetaClass2(EiffelMetaClass1):
# an implementation of the "eiffel" meta class that uses descriptors
--- 82,86 ----
return x
! class EiffelMetaClass2(EiffelBaseMetaClass):
# an implementation of the "eiffel" meta class that uses descriptors