| 1021 | self.trace.root.indent -= 1 |
| 1022 | |
| 1023 | def genitems(self, node: nodes.Item | nodes.Collector) -> Iterator[nodes.Item]: |
| 1024 | self.trace("genitems", node) |
| 1025 | if isinstance(node, nodes.Item): |
| 1026 | node.ihook.pytest_itemcollected(item=node) |
| 1027 | yield node |
| 1028 | else: |
| 1029 | assert isinstance(node, nodes.Collector) |
| 1030 | # For backward compat, dedup only applies to files. |
| 1031 | handle_dupes = not isinstance(node, nodes.File) |
| 1032 | rep, duplicate = self._collect_one_node(node, handle_dupes) |
| 1033 | if rep.passed: |
| 1034 | for subnode in rep.result: |
| 1035 | yield from self.genitems(subnode) |
| 1036 | if not duplicate: |
| 1037 | node.ihook.pytest_collectreport(report=rep) |
| 1038 | |
| 1039 | |
| 1040 | def search_pypath( |