|
2 | 2 | import os
|
3 | 3 |
|
4 | 4 | from itertools import chain
|
5 |
| - |
| 5 | +from operator import itemgetter |
6 | 6 | import six
|
7 | 7 | import py
|
8 | 8 | import attr
|
@@ -187,18 +187,34 @@ def find_markers(self, name):
|
187 | 187 | """find all marks with the given name on the node and its parents
|
188 | 188 |
|
189 | 189 | :param str name: name of the marker
|
190 |
| - :returns: iterator over marks matching the name |
| 190 | + :returns: iterator over marks matching the name""" |
| 191 | + return map(itemgetter(1), self.find_markers_with_node(name)) |
| 192 | + |
| 193 | + def find_markers_with_node(self, name): |
| 194 | + """find all marks with the given name on the node and its parents |
| 195 | +
|
| 196 | + :param str name: name of the marker |
| 197 | + :returns: iterator over (node, mark) matching the name |
191 | 198 | """
|
192 | 199 | for node in reversed(self.listchain()):
|
193 | 200 | for mark in node._markers.find(name):
|
194 |
| - yield mark |
| 201 | + yield node, mark |
195 | 202 |
|
196 | 203 | def iter_markers(self):
|
197 | 204 | """
|
198 | 205 | iterate over all markers of the node
|
199 | 206 | """
|
200 | 207 | return chain.from_iterable(x._markers for x in reversed(self.listchain()))
|
201 | 208 |
|
| 209 | + def iter_markers_with_node(self): |
| 210 | + """ |
| 211 | + iterate over all markers of the node |
| 212 | + returns sequence of tuples (node, mark) |
| 213 | + """ |
| 214 | + for node in reversed(self.listchain()): |
| 215 | + for mark in node._markers: |
| 216 | + yield node, mark |
| 217 | + |
202 | 218 | def get_marker(self, name):
|
203 | 219 | """ get a marker object from this node or None if
|
204 | 220 | the node doesn't have a marker with that name.
|
|
0 commit comments