Index: third_party/psutil/psutil/_compat.py |
diff --git a/third_party/psutil/psutil/_compat.py b/third_party/psutil/psutil/_compat.py |
index 1cac8b7b6721ba99366945ac441761325e25f38f..b0ca8fd9ab94f3b963f93020b94ef6eda1657464 100644 |
--- a/third_party/psutil/psutil/_compat.py |
+++ b/third_party/psutil/psutil/_compat.py |
@@ -1,6 +1,6 @@ |
#!/usr/bin/env python |
# |
-# $Id: _compat.py 1142 2011-10-05 18:45:49Z g.rodola $ |
+# $Id: _compat.py 1145 2011-10-11 10:30:02Z g.rodola $ |
# |
# Copyright (c) 2009, Jay Loden, Giampaolo Rodola'. All rights reserved. |
# Use of this source code is governed by a BSD-style license that can be |
@@ -119,36 +119,23 @@ except ImportError: |
return result |
-# dirty hack to support property.setter on python < 2.6 |
-property = property |
- |
-if not hasattr(property, "setter"): |
- |
- class property(property): |
+# hack to support property.setter/deleter on python < 2.6 |
+# http://docs.python.org/library/functions.html?highlight=property#property |
+if hasattr(property, 'setter'): |
+ property = property |
+else: |
+ class property(__builtin__.property): |
+ __metaclass__ = type |
def __init__(self, fget, *args, **kwargs): |
- self.__doc__ = fget.__doc__ |
super(property, self).__init__(fget, *args, **kwargs) |
+ self.__doc__ = fget.__doc__ |
- def setter(self, fset): |
- 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, 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] |
+ def getter(self, method): |
+ return property(method, self.fset, self.fdel) |
- __builtin__.property = property |
+ def setter(self, method): |
+ return property(self.fget, method, self.fdel) |
+ def deleter(self, method): |
+ return property(self.fget, self.fset, method) |