diff mercurial/scmutil.py @ 29373:36fbd72c2f39

scmutil: allow access to filecache descriptor on class To make it easier to patch the wrapped function, make it possible to access the filecache descriptor directly on the class (rather than have to use ClassObject.__dict__['attributename']). Returning `self` when the first argument to `__get__` is `None` makes the descriptor behave the same way `property` objects do.
author Martijn Pieters <mjpieters@fb.com>
date Fri, 17 Jun 2016 20:06:09 +0100
parents 4e6e280e238f
children 98e8313dcd9e
line wrap: on
line diff
--- a/mercurial/scmutil.py	Fri Jun 17 16:59:08 2016 +0100
+++ b/mercurial/scmutil.py	Fri Jun 17 20:06:09 2016 +0100
@@ -1205,6 +1205,9 @@
         return self
 
     def __get__(self, obj, type=None):
+        # if accessed on the class, return the descriptor itself.
+        if obj is None:
+            return self
         # do we need to check if the file changed?
         if self.name in obj.__dict__:
             assert self.name in obj._filecache, self.name