gh-130914: Make graphlib.TopologicalSorter.prepare() idempotent (#131317)

Closes #130914: Make graphlib.TopologicalSorter.prepare() idempotent

Relax the rules so that `.prepare()` can be called multiple times, provided that no work has been passed out by `.get_ready()` yet.
This commit is contained in:
Daniel Pope 2025-03-18 21:28:00 +00:00 committed by GitHub
parent f819900245
commit c1b42db9e4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 44 additions and 7 deletions

View file

@ -106,6 +106,14 @@
function, the graph cannot be modified, and therefore no more nodes can be
added using :meth:`~TopologicalSorter.add`.
A :exc:`ValueError` will be raised if the sort has been started by
:meth:`~.static_order` or :meth:`~.get_ready`.
.. versionchanged:: next
``prepare()`` can now be called more than once as long as the sort has
not started. Previously this raised :exc:`ValueError`.
.. method:: is_active()
Returns ``True`` if more progress can be made and ``False`` otherwise.