Remove unneeded methods on query classes

This commit is contained in:
Karl Hobley 2018-06-08 15:36:53 +01:00
parent 40c44d6d18
commit 2faa90ec94

View file

@ -16,27 +16,6 @@ class SearchQuery:
def __invert__(self):
return Not(self)
def apply(self, func):
raise NotImplementedError
def clone(self):
return self.apply(lambda o: o)
def get_children(self):
return ()
@property
def children(self):
return list(self.get_children())
@property
def child(self):
children = self.children
if len(children) != 1:
raise IndexError('`%s` object has %d children, not a single child.'
% self.__class__.__name__, len(children))
return children[0]
class SearchQueryOperator(SearchQuery):
pass
@ -46,13 +25,6 @@ class MultiOperandsSearchQueryOperator(SearchQueryOperator):
def __init__(self, subqueries):
self.subqueries = subqueries
def apply(self, func):
return func(self.__class__(
[subquery.apply(func) for subquery in self.subqueries]))
def get_children(self):
yield from self.subqueries
#
# Operators
@ -71,12 +43,6 @@ class Not(SearchQueryOperator):
def __init__(self, subquery: SearchQuery):
self.subquery = subquery
def apply(self, func):
return func(self.__class__(self.subquery.apply(func)))
def get_children(self):
yield self.subquery
#
# Basic query classes
@ -95,14 +61,9 @@ class PlainText(SearchQuery):
raise ValueError("`operator` must be either 'or' or 'and'.")
self.boost = boost
def apply(self, func):
return func(self.__class__(self.query_string, self.operator,
self.boost))
class MatchAll(SearchQuery):
def apply(self, func):
return self.__class__()
pass
class Boost(SearchQuery):
@ -110,8 +71,5 @@ class Boost(SearchQuery):
self.subquery = subquery
self.boost = boost
def apply(self, func):
return func(self.__class__(self.subquery.apply(func), self.boost))
MATCH_ALL = MatchAll()