equal
deleted
inserted
replaced
178 def func_name(self): |
178 def func_name(self): |
179 # backward compatibility |
179 # backward compatibility |
180 return self.__class__.__name__ |
180 return self.__class__.__name__ |
181 |
181 |
182 def search_selector(self, selector): |
182 def search_selector(self, selector): |
183 """search for the given selector or selector instance in the selectors |
183 """search for the given selector, selector instance or tuple of |
184 tree. Return it of None if not found |
184 selectors in the selectors tree. Return None if not found. |
185 """ |
185 """ |
186 if self is selector: |
186 if self is selector: |
187 return self |
187 return self |
188 if isinstance(selector, type) and isinstance(self, selector): |
188 if (isinstance(selector, type) or isinstance(selector, tuple)) and \ |
|
189 isinstance(self, selector): |
189 return self |
190 return self |
190 return None |
191 return None |
191 |
192 |
192 def __str__(self): |
193 def __str__(self): |
193 return self.__class__.__name__ |
194 return self.__class__.__name__ |
248 else: |
249 else: |
249 merged_selectors.append(selector) |
250 merged_selectors.append(selector) |
250 return merged_selectors |
251 return merged_selectors |
251 |
252 |
252 def search_selector(self, selector): |
253 def search_selector(self, selector): |
253 """search for the given selector or selector instance in the selectors |
254 """search for the given selector or selector instance (or tuple of |
254 tree. Return it of None if not found |
255 selectors) in the selectors tree. Return None if not found |
255 """ |
256 """ |
256 for childselector in self.selectors: |
257 for childselector in self.selectors: |
257 if childselector is selector: |
258 if childselector is selector: |
258 return childselector |
259 return childselector |
259 found = childselector.search_selector(selector) |
260 found = childselector.search_selector(selector) |
260 if found is not None: |
261 if found is not None: |
261 return found |
262 return found |
262 return None |
263 # if not found in children, maybe we are looking for self? |
|
264 return super(MultiSelector, self).search_selector(selector) |
263 |
265 |
264 |
266 |
265 class AndSelector(MultiSelector): |
267 class AndSelector(MultiSelector): |
266 """and-chained selectors (formerly known as chainall)""" |
268 """and-chained selectors (formerly known as chainall)""" |
267 @lltrace |
269 @lltrace |