Use decorators.
This commit is contained in:
parent
9ba3684ecc
commit
75b64e65f1
|
@ -9,6 +9,7 @@ class EiffelBaseMetaClass(type):
|
||||||
return super(EiffelBaseMetaClass, meta).__new__(meta, name, bases,
|
return super(EiffelBaseMetaClass, meta).__new__(meta, name, bases,
|
||||||
dict)
|
dict)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
def convert_methods(cls, dict):
|
def convert_methods(cls, dict):
|
||||||
"""Replace functions in dict with EiffelMethod wrappers.
|
"""Replace functions in dict with EiffelMethod wrappers.
|
||||||
|
|
||||||
|
@ -30,11 +31,10 @@ class EiffelBaseMetaClass(type):
|
||||||
if pre or post:
|
if pre or post:
|
||||||
dict[k] = cls.make_eiffel_method(dict[m], pre, post)
|
dict[k] = cls.make_eiffel_method(dict[m], pre, post)
|
||||||
|
|
||||||
convert_methods = classmethod(convert_methods)
|
|
||||||
|
|
||||||
class EiffelMetaClass1(EiffelBaseMetaClass):
|
class EiffelMetaClass1(EiffelBaseMetaClass):
|
||||||
# an implementation of the "eiffel" meta class that uses nested functions
|
# an implementation of the "eiffel" meta class that uses nested functions
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
def make_eiffel_method(func, pre, post):
|
def make_eiffel_method(func, pre, post):
|
||||||
def method(self, *args, **kwargs):
|
def method(self, *args, **kwargs):
|
||||||
if pre:
|
if pre:
|
||||||
|
@ -49,8 +49,6 @@ class EiffelMetaClass1(EiffelBaseMetaClass):
|
||||||
|
|
||||||
return method
|
return method
|
||||||
|
|
||||||
make_eiffel_method = staticmethod(make_eiffel_method)
|
|
||||||
|
|
||||||
class EiffelMethodWrapper:
|
class EiffelMethodWrapper:
|
||||||
|
|
||||||
def __init__(self, inst, descr):
|
def __init__(self, inst, descr):
|
||||||
|
|
|
@ -63,12 +63,12 @@ class UserDict:
|
||||||
return self.data.popitem()
|
return self.data.popitem()
|
||||||
def __contains__(self, key):
|
def __contains__(self, key):
|
||||||
return key in self.data
|
return key in self.data
|
||||||
|
@classmethod
|
||||||
def fromkeys(cls, iterable, value=None):
|
def fromkeys(cls, iterable, value=None):
|
||||||
d = cls()
|
d = cls()
|
||||||
for key in iterable:
|
for key in iterable:
|
||||||
d[key] = value
|
d[key] = value
|
||||||
return d
|
return d
|
||||||
fromkeys = classmethod(fromkeys)
|
|
||||||
|
|
||||||
class IterableUserDict(UserDict):
|
class IterableUserDict(UserDict):
|
||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
|
|
|
@ -656,6 +656,7 @@ class TarInfo(object):
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<%s %r at %#x>" % (self.__class__.__name__,self.name,id(self))
|
return "<%s %r at %#x>" % (self.__class__.__name__,self.name,id(self))
|
||||||
|
|
||||||
|
@classmethod
|
||||||
def frombuf(cls, buf):
|
def frombuf(cls, buf):
|
||||||
"""Construct a TarInfo object from a 512 byte string buffer.
|
"""Construct a TarInfo object from a 512 byte string buffer.
|
||||||
"""
|
"""
|
||||||
|
@ -699,8 +700,6 @@ class TarInfo(object):
|
||||||
tarinfo.name += "/"
|
tarinfo.name += "/"
|
||||||
return tarinfo
|
return tarinfo
|
||||||
|
|
||||||
frombuf = classmethod(frombuf)
|
|
||||||
|
|
||||||
def tobuf(self):
|
def tobuf(self):
|
||||||
"""Return a tar header block as a 512 byte string.
|
"""Return a tar header block as a 512 byte string.
|
||||||
"""
|
"""
|
||||||
|
@ -858,6 +857,7 @@ class TarFile(object):
|
||||||
# the super-constructor. A sub-constructor is registered and made available
|
# the super-constructor. A sub-constructor is registered and made available
|
||||||
# by adding it to the mapping in OPEN_METH.
|
# by adding it to the mapping in OPEN_METH.
|
||||||
|
|
||||||
|
@classmethod
|
||||||
def open(cls, name=None, mode="r", fileobj=None, bufsize=20*512):
|
def open(cls, name=None, mode="r", fileobj=None, bufsize=20*512):
|
||||||
"""Open a tar archive for reading, writing or appending. Return
|
"""Open a tar archive for reading, writing or appending. Return
|
||||||
an appropriate TarFile class.
|
an appropriate TarFile class.
|
||||||
|
@ -923,8 +923,7 @@ class TarFile(object):
|
||||||
|
|
||||||
raise ValueError, "undiscernible mode"
|
raise ValueError, "undiscernible mode"
|
||||||
|
|
||||||
open = classmethod(open)
|
@classmethod
|
||||||
|
|
||||||
def taropen(cls, name, mode="r", fileobj=None):
|
def taropen(cls, name, mode="r", fileobj=None):
|
||||||
"""Open uncompressed tar archive name for reading or writing.
|
"""Open uncompressed tar archive name for reading or writing.
|
||||||
"""
|
"""
|
||||||
|
@ -932,8 +931,7 @@ class TarFile(object):
|
||||||
raise ValueError, "mode must be 'r', 'a' or 'w'"
|
raise ValueError, "mode must be 'r', 'a' or 'w'"
|
||||||
return cls(name, mode, fileobj)
|
return cls(name, mode, fileobj)
|
||||||
|
|
||||||
taropen = classmethod(taropen)
|
@classmethod
|
||||||
|
|
||||||
def gzopen(cls, name, mode="r", fileobj=None, compresslevel=9):
|
def gzopen(cls, name, mode="r", fileobj=None, compresslevel=9):
|
||||||
"""Open gzip compressed tar archive name for reading or writing.
|
"""Open gzip compressed tar archive name for reading or writing.
|
||||||
Appending is not allowed.
|
Appending is not allowed.
|
||||||
|
@ -970,8 +968,7 @@ class TarFile(object):
|
||||||
t._extfileobj = False
|
t._extfileobj = False
|
||||||
return t
|
return t
|
||||||
|
|
||||||
gzopen = classmethod(gzopen)
|
@classmethod
|
||||||
|
|
||||||
def bz2open(cls, name, mode="r", fileobj=None, compresslevel=9):
|
def bz2open(cls, name, mode="r", fileobj=None, compresslevel=9):
|
||||||
"""Open bzip2 compressed tar archive name for reading or writing.
|
"""Open bzip2 compressed tar archive name for reading or writing.
|
||||||
Appending is not allowed.
|
Appending is not allowed.
|
||||||
|
@ -1002,8 +999,6 @@ class TarFile(object):
|
||||||
t._extfileobj = False
|
t._extfileobj = False
|
||||||
return t
|
return t
|
||||||
|
|
||||||
bz2open = classmethod(bz2open)
|
|
||||||
|
|
||||||
# All *open() methods are registered here.
|
# All *open() methods are registered here.
|
||||||
OPEN_METH = {
|
OPEN_METH = {
|
||||||
"tar": "taropen", # uncompressed tar
|
"tar": "taropen", # uncompressed tar
|
||||||
|
|
Loading…
Reference in New Issue