Author: tack
Date: Wed Feb 13 15:22:07 2008
New Revision: 3081

Log:
new property implementation


Modified:
   trunk/base/src/utils.py

Modified: trunk/base/src/utils.py
==============================================================================
--- trunk/base/src/utils.py     (original)
+++ trunk/base/src/utils.py     Wed Feb 13 15:22:07 2008
@@ -252,3 +252,32 @@
         if self._singleton is None:
             return Singleton.MemberFunction(self, attr)
         return getattr(self._singleton, attr)
+
+
+class property(property):
+    """
+    Replaces built-in property function to extend it as per 
+    http://bugs.python.org/issue1416
+    """
+    def __init__(self, fget = None, fset = None, fdel = None, doc = None):
+        super(property, self).__init__(fget, fset, fdel)
+        self.__doc__ = doc or fget.__doc__
+
+    def _add_doc(self, prop, doc = None):
+        prop.__doc__ = doc or self.__doc__
+        return prop
+
+    def setter(self, fset):
+        if isinstance(fset, property):
+            # Wrapping another property, use deleter.
+            self, fset = fset, fset.fdel
+        return self._add_doc(property(self.fget, fset, self.fdel))
+
+    def deleter(self, fdel):
+        if isinstance(fdel, property):
+            # Wrapping another property, use setter.
+            self, fdel = fdel, fdel.fset
+        return self._add_doc(property(self.fget, self.fset, fdel))
+
+    def getter(self, fget):
+        return self._add_doc(property(fget, self.fset, self.fdel), 
fget.__doc__ or self.fget.__doc__)

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to