google / google/python-fire

Allow choices restriction

Aperta
#384 8 commenti 22 reazioni 0 assegnatari Vedi su GitHub
enhancement
Lingua principale
Python
Stelle
28.2k
Fork
1.5k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

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:
```py
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](https://typer.tiangolo.com/tutorial/parameter-types/enum/)

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.