diff --git a/src/css_selectors/select.py b/src/css_selectors/select.py index 40ceba8edb..e51a7cb875 100644 --- a/src/css_selectors/select.py +++ b/src/css_selectors/select.py @@ -141,6 +141,7 @@ class Select(object): else: self.ignore_inappropriate_pseudo_classes = frozenset() + # External API {{{ def invalidate_caches(self): 'Invalidate all caches. You must call this before using this object if you have made changes to the HTML tree' self._element_map = None @@ -165,6 +166,13 @@ class Select(object): yield item seen.add(item) + def has_matches(self, selector): + 'Return True iff selector matches at least one item in the tree' + for elem in self(selector): + return True + return False + # }}} + def iterparsedselector(self, parsed_selector): type_name = type(parsed_selector).__name__ try: