python / python/cpython

Provide a simple function interface for topological sort in graphlib

Offen
#125,181 2 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

stdlib type-feature
Vorherrschende Sprache
Python
Sterne
77.2k
Forks
35.9k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

Feature or enhancement

Proposal:

The graphlib interface requires 5 function calls in order to get the result of a topological sort.

I believe that the most common user will most likely only need a single function call, i.e.

def topological_sort(graph: dict) -> Iterable[set]: ...

I propose adding this small utility function to graphlib.

Note: there is static_order(), which reduces it to 2 function calls, but it flattens the result, which is a bad default.

Has this already been discussed elsewhere?

This is a minor feature, which does not need previous discussion elsewhere

Links to previous discussion of this feature:

No response

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Das Issue betrifft graphlib und seine bestehende static_order()-Schnittstelle; beginne damit, diese Implementierung und die umgebenden graphlib-Tests zu finden. Erledigt ist die Aufgabe, wenn die vorgeschlagene single-call topological_sort(graph)-Schnittstelle mit einer Ausgabe in gruppierten Mengen hinzugefügt wurde und ihr Verhalten abgedeckt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
developer-experience
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
52/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.