Allow choices restriction
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 38/100
Rechercherichtung
Beginne damit, die Befehlszeilenargument-Analyse von Python Fire nachzuverfolgen und zu untersuchen, wie derzeit typisierte Parameter behandelt werden. Vergleiche anschließend das gewünschte Verhalten mit den choices von Python's argparse und dem Enum-Beispiel. Als abgeschlossen gilt die Aufgabe, wenn gültige Enum-Werte für ein Argument akzeptiert und nicht unterstützte Werte abgelehnt werden; füge für beide Fälle eine gezielte Abdeckung dort hinzu, wo sich die vorhandenen CLI-Parsing-Tests befinden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Hello, and thank you for this great CLI!
Recently I get to a situation when I would like to restrict the options for a given argument similar to build-in argparse does with its option choices (see docs: https://docs.python.org/3/library/argparse.html#choices). Then I was checking Fire docs but could not find anything similar to it...
Checking alternative CLI packages I found a way that is quite simple but still elegant and would well fit the Fire style. It is leveraging python Enum class:
from enum import Enum
import fire
class Direction(str, Enum):
up = "up"
down = "down"
left = "left"
right = "right"
def main(move: Direction = Direction.left):
print(f"Moving in given direction: {move.value}")
if __name__ == "__main__":
fire.Fire(main)
For clarification, the example above is borrowed and adjusted from Typer/enum
- Vorherrschende Sprache
- Python
- Sterne
- 28.2k
- Forks
- 1.5k
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus google/python-fire
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
google/python-fire#693 ·
-
Release 0.7.2?Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 38/100
google/python-fire#698 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 58/100
google/python-fire#672 · 5 Kommentare ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
google/python-fire#665 · 2 Kommentare ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
google/python-fire#659 · 1 Kommentar ·
Alle Issues in google/python-fire
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
solana-foundation/pay-kit#341 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
nasa/python_cmr#123 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 92/100
EleutherAI/lm-evaluation-harness#4243 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area: dashboard bug perceived difficulty: 3
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Nitjsefnie-Harness-Commons/daedalus#1179 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
cusp-ai-oss/tojax#17 ·