1515from __future__ import annotations
1616
1717import itertools
18- from collections import OrderedDict
1918from typing import Hashable , Iterable , Iterator , Mapping , TypeVar
2019
2120__all__ = ["CycleError" , "lazy_stable_topo_sort" ]
@@ -130,7 +129,7 @@ def lazy_stable_topo_sort(
130129
131130 def prepended_by_dependencies (
132131 node : Node ,
133- walk : OrderedDict [Node , None ] | None = None ,
132+ walk : dict [Node , None ] | None = None ,
134133 ) -> Iterator [Node ]:
135134 """Yields a node's dependencies depth-first, followed by the node itself.
136135
@@ -142,10 +141,10 @@ def prepended_by_dependencies(
142141 Args:
143142 node (~nox._resolver.Node):
144143 A node in the dependency graph.
145- walk (OrderedDict [~nox._resolver.Node, None] | None):
146- An ``OrderedDict `` whose keys are the nodes traversed when walking a
144+ walk (dict [~nox._resolver.Node, None] | None):
145+ An ordered ``dict `` whose keys are the nodes traversed when walking a
147146 path leading up to ``node`` on the reversed-edge dependency graph.
148- Defaults to ``OrderedDict() ``.
147+ Defaults to ``{} ``.
149148
150149 Yields:
151150 ~nox._resolver.Node: ``node``'s direct dependencies, each
@@ -159,9 +158,9 @@ def prepended_by_dependencies(
159158 # We would like for ``walk`` to be an ordered set so that we get (a) O(1) ``node
160159 # in walk`` and (b) so that we can use the order to report to the user what the
161160 # dependency cycle is, if one is encountered. The standard library does not have
162- # an ordered set type, so we instead use the keys of an ``OrderedDict [Node,
163- # None]`` as an ordered set.
164- walk = walk or OrderedDict ()
161+ # an ordered set type, so we instead use the keys of an ``dict [Node, None]`` as
162+ # an ordered set.
163+ walk = walk or {}
165164 walk = extend_walk (walk , node )
166165 if not visited [node ]:
167166 visited [node ] = True
@@ -175,19 +174,17 @@ def prepended_by_dependencies(
175174 else :
176175 return
177176
178- def extend_walk (
179- walk : OrderedDict [Node , None ], node : Node
180- ) -> OrderedDict [Node , None ]:
177+ def extend_walk (walk : dict [Node , None ], node : Node ) -> dict [Node , None ]:
181178 """Extend a walk by a node, checking for dependency cycles.
182179
183180 Args:
184- walk (OrderedDict [~nox._resolver.Node, None]):
181+ walk (dict [~nox._resolver.Node, None]):
185182 See ``prepended_by_dependencies``.
186183 nodes (~nox._resolver.Node):
187184 A node to extend the walk with.
188185
189186 Returns:
190- OrderedDict [~nox._resolver.Node, None]: ``walk``, extended by
187+ dict [~nox._resolver.Node, None]: ``walk``, extended by
191188 ``node``.
192189
193190 Raises:
0 commit comments