[PATCH 6 of 9 RFC] revset: added basic operators to ordered lazysets

Lucas Moscovicz lmoscovicz at fb.com
Wed Feb 12 16:39:56 CST 2014


# HG changeset patch
# User Lucas Moscovicz <lmoscovicz at fb.com>
# Date 1391737328 28800
#      Thu Feb 06 17:42:08 2014 -0800
# Node ID 1cc650bf69c051609ef85d955d7562cbf9285743
# Parent  1c8171087d53c930aee31fb53701bb1fb66341f0
revset: added basic operators to ordered lazysets

Now __add__ and __sub__ return ordered lazysets for both ascending and
descending lazysets.

diff --git a/mercurial/revset.py b/mercurial/revset.py
--- a/mercurial/revset.py
+++ b/mercurial/revset.py
@@ -2157,10 +2157,22 @@
     def filter(self, l):
         return asclazyset(self, l)
 
+    def __and__(self, x):
+        return asclazyset(self, lambda r: r in x)
+
+    def __sub__(self, x):
+        return asclazyset(self, lambda r: r not in x)
+
 class desclazyset(lazyset):
     def filter(self, l):
         return desclazyset(self, l)
 
+    def __and__(self, x):
+        return desclazyset(self, lambda r: r in x)
+
+    def __sub__(self, x):
+        return desclazyset(self, lambda r: r not in x)
+
 class generatorset(object):
     def __init__(self, gen):
         self._gen = gen


More information about the Mercurial-devel mailing list