@@ -467,10 +467,9 @@ def __getitem__(self, s):
467467 if s .start and s .stop and s .start > s .stop :
468468 raise ValueError (
469469 "Start key must be lexicographically smaller than stop." )
470- if len (self .sets ) <= 1 :
471- raise ValueError (
472- "Must have more than one set to operate on." )
473470
471+ if not self .sets :
472+ return
474473 opbuilder = OpBuilder .from_slice (self .sets [0 ]._ptr , s )
475474 streams = []
476475 for fst in self .sets [1 :]:
@@ -483,9 +482,8 @@ def __getitem__(self, s):
483482 def __iter__ (self ):
484483 """ Get an iterator over all keys in all sets in lexicographical order.
485484 """
486- if len (self .sets ) <= 1 :
487- raise ValueError (
488- "Must have more than one set to operate on." )
485+ if not self .sets :
486+ return
489487 opbuilder = OpBuilder (self .sets [0 ]._ptr ,
490488 input_type = OpBuilderInputType .SET )
491489 for fst in self .sets [1 :]:
@@ -494,12 +492,11 @@ def __iter__(self):
494492
495493 def _make_opbuilder (self , * others ):
496494 others = list (others )
497- if len (self .sets ) <= 1 :
498- raise ValueError (
499- "Must have more than one set to operate on." )
500495 if not others :
501496 raise ValueError (
502497 "Must have at least one set to compare against." )
498+ if not self .sets :
499+ return
503500 our_opbuilder = OpBuilder (self .sets [0 ]._ptr ,
504501 input_type = OpBuilderInputType .SET )
505502 for fst in self .sets [1 :]:
@@ -544,9 +541,8 @@ def search(self, term, max_dist):
544541 :returns: Iterator over matching values in the set
545542 :rtype: :py:class:`KeyStreamIterator`
546543 """
547- if len (self .sets ) <= 1 :
548- raise ValueError (
549- "Must have more than one set to operate on." )
544+ if not self .sets :
545+ return
550546 opbuilder = OpBuilder .from_search (self .sets [0 ], term , max_dist )
551547 for fst in self .sets [1 :]:
552548 opbuilder .push (_build_levsearch (fst , term , max_dist ))
@@ -576,9 +572,8 @@ def search_re(self, pattern):
576572 :returns: An iterator over all matching keys in the set
577573 :rtype: :py:class:`KeyStreamIterator`
578574 """
579- if len (self .sets ) <= 1 :
580- raise ValueError (
581- "Must have more than one set to operate on." )
575+ if not self .sets :
576+ return
582577 opbuilder = OpBuilder .from_search_re (self .sets [0 ], pattern )
583578 for fst in self .sets [1 :]:
584579 opbuilder .push (_build_research (fst , pattern ))
0 commit comments