From e7caf265c114214d598ad15c0e63391ed2b3eec6 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 21 Feb 2015 10:47:31 +0530 Subject: [PATCH] Add a has_matches() method for convenience --- src/css_selectors/select.py | 8 ++++++++ 1 file changed, 8 insertions(+) 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: