Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Allow choices restriction

Aberta
#384 8 comentários 22 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
38/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
python
Domínio
cli

Direção de pesquisa

Comece rastreando a análise de argumentos de linha de comando do Python Fire e como ele lida atualmente com parâmetros tipados; em seguida, compare o comportamento solicitado com as choices do argparse do Python e o exemplo de Enum. O trabalho estará concluído quando valores válidos de Enum forem aceitos para um argumento e valores não suportados forem rejeitados; adicione cobertura focada para ambos os casos onde estão os testes existentes de análise de CLI.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

enhancement

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

Linguagem predominante
Python
Estrelas
28.2k
Forks
1.5k
Métricas de merge de PRs
Nenhum PR com merge em 30d

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de google/python-fire

Todas as issues de google/python-fire

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.