diff options
| author | Giampaolo Rodola' <g.rodola@gmail.com> | 2011-03-23 16:36:27 +0000 |
|---|---|---|
| committer | Giampaolo Rodola' <g.rodola@gmail.com> | 2011-03-23 16:36:27 +0000 |
| commit | b40c16e9904cf443d83515e2f2ad0046b4d221fa (patch) | |
| tree | ac109d9dc2f76d8b1ddb895bd14a7a33ffbcfdf5 /psutil/_compat.py | |
| parent | e85b92c0a5d777fc6242d4dad6f9eaa6e2692d06 (diff) | |
| download | psutil-b40c16e9904cf443d83515e2f2ad0046b4d221fa.tar.gz | |
- linux: close fd
- linux: when parsing /proc files and the desired line is not found raise RuntimeError instead of returning None
- rewrite _compat.property to support deleters and docstrings
Diffstat (limited to 'psutil/_compat.py')
| -rw-r--r-- | psutil/_compat.py | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/psutil/_compat.py b/psutil/_compat.py index 6469552b..1c746aee 100644 --- a/psutil/_compat.py +++ b/psutil/_compat.py @@ -10,6 +10,7 @@ __all__ = ["namedtuple", "property"] from operator import itemgetter as _itemgetter from keyword import iskeyword as _iskeyword import sys as _sys +import __builtin__ try: from collections import namedtuple @@ -114,17 +115,37 @@ except ImportError: return result + # dirty hack to support property.setter on python < 2.6 property = property if not hasattr(property, "setter"): + class property(property): - def setter(self, value): + + def __init__(self, fget, *args, **kwargs): + self.__doc__ = fget.__doc__ + super(property, self).__init__(fget, *args, **kwargs) + + def setter(self, fset): cls_ns = _sys._getframe(1).f_locals for k, v in cls_ns.iteritems(): - if v == self: - name = k - break - cls_ns[name] = property(self.fget, value, self.fdel, self.__doc__) - return cls_ns[name] + if v == self: + propname = k + break + cls_ns[propname] = property(self.fget, fset, + self.fdel, self.__doc__) + return cls_ns[propname] + + def deleter(self, fdel): + cls_ns = _sys._getframe(1).f_locals + for k, v in cls_ns.iteritems(): + if v == self: + propname = k + break + cls_ns[propname] = property(self.fget, self.fset, + fdel, self.__doc__) + return cls_ns[propname] + + __builtin__.property = property |
