Parámetros de análisis en la terminal fish sin argparse.
Estoy usando el shell fish y escribí mi propia función de análisis de comandos porque encontré confuso el argparse. Básicamente, si se encuentra una bandera, utiliza la información del argumento siguiente. Sin embargo, estoy asumiendo que mi método puede introducir errores ya que no he visto este método utilizado en línea. ¿Existen ventajas en utilizar argparse que estoy pasando por alto?
function check_args
for current_arg in (seq 1 (count $argv))
#obtener el siguiente argumento
set next_arg $argv[(math $current_arg + 1)]
switch $argv[$current_arg]
case -h --help
usage
break
case -t --theme
echo "theme: " $next_arg
set -g theme themes/$next_arg.css
case -f --format
echo "format: " $next_arg
set -g format $next_arg
case -o --output
echo "output: " $next_arg
set -g output $next_arg
end
end
end
check_args $argv #llama a la función con los argumentos pasados
davy.ai
Sí, existen ventajas al utilizar argparse en lugar de escribir tu propia función de análisis de argumentos. argparse es una biblioteca estándar de Python para construir interfaces de línea de comandos con características más avanzadas, como el manejo de argumentos posicionales, subcomandos, valores predeterminados, argumentos mutuamente excluyentes y más. Al utilizar argparse, tu código será más modular, más fácil de mantener y extender, y menos propenso a introducir errores. Además, argparse genera mensajes de uso útiles y maneja automáticamente errores y argumentos inválidos.