| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa |
| python:instalable [2025/07/16 10:39] – [main.py] alberto | python:instalable [2025/07/16 12:05] (actual) – [main.py] alberto |
|---|
| \\ | \\ |
| En definitiva, realiza el flujo del programa.\\ | En definitiva, realiza el flujo del programa.\\ |
| | |
| | Cuando añadimos parámetros con add_argument, tenemos las siguientes opciones: |
| | ^ Parámetro ^ Descripción ^ Ejemplo ^ |
| | | `name or flags` | Nombre del argumento (posicional o con guiones). | `'--verbose'`, `'-v'`, `'archivo'` | |
| | | `action` | Qué hacer con el argumento al encontrarlo (ver tabla de abajo). | `'store'`, `'store_true'`, `'append'`, etc. | |
| | | `nargs` | Número de valores esperados (`?`, `*`, `+`, número entero, etc). | `nargs='?'`, `nargs=2` | |
| | | `const` | Valor constante usado cuando se emplea con ciertas acciones como `store_const`. | `const=42` | |
| | | `default` | Valor por defecto si no se proporciona el argumento. | `default='salida.txt'` | |
| | | `type` | Tipo de dato al que convertir el argumento. | `type=int`, `type=float`, `type=Path` | |
| | | `choices` | Lista de valores permitidos. | `choices=['bajo', 'medio', 'alto']` | |
| | | `required` | Si el argumento es obligatorio (solo para argumentos opcionales). | `required=True` | |
| | | `help` | Texto de ayuda mostrado al ejecutar `--help`. | `help='Archivo de entrada.'` | |
| | | `metavar` | Nombre que aparece en la ayuda en lugar del nombre real del argumento. | `metavar='FICHERO'` | |
| | | `dest` | Nombre del atributo en `args` donde se guarda el valor. | `dest='nivel'` | |
| | |
| | Para el parámetro "action" disponemos e estas posibilidades: |
| | ^ Acción ^ Descripción ^ Ejemplo de uso ^ |
| | | `'store'` | Guarda el valor dado (por defecto). | `--salida salida.txt` | |
| | | `'store_const'` | Guarda un valor constante (requiere `const=`). | `--modo`, `action='store_const', const='debug'` | |
| | | `'store_true'` | Guarda `True` si se especifica, `False` si no. | `--verbose`, `action='store_true'` | |
| | | `'store_false'` | Guarda `False` si se especifica, `True` si no. | `--no-cache`, `action='store_false'` | |
| | | `'append'` | Añade cada valor a una lista. | `--tag urgente --tag personal` → `['urgente',...]` | |
| | | `'append_const'` | Añade un valor constante a una lista (requiere `const=`). | (menos común) | |
| | | `'count'` | Cuenta cuántas veces aparece el argumento. | `-v -v -v` → `3` | |
| | | `'help'` | Muestra el mensaje de ayuda y termina. (automática con `--help`) | `--help` | |
| | | `'version'` | Muestra el número de versión y termina. (requiere `version=`) | `--version` | |
| | |
| |
| A continuación un ejemplo, en el que se define el comando "gendocs" y 3 subcomandos "simples", "compuestos" y "cruce", cada uno con sus parámetros de entrada: | A continuación un ejemplo, en el que se define el comando "gendocs" y 3 subcomandos "simples", "compuestos" y "cruce", cada uno con sus parámetros de entrada: |
| mi_comando → nombre que escribirás en la terminal. \\ | mi_comando → nombre que escribirás en la terminal. \\ |
| paquete.modulo → ruta al módulo dentro del paquete. \\ | paquete.modulo → ruta al módulo dentro del paquete. \\ |
| funcion_que_se_ejecuta → debe ser una función sin argumentos (o que gestione sys.argv) que actuarán como el “main()” del comando. | funcion_que_se_ejecuta → debe ser una función sin argumentos (o que gestione sys.argv) que actuarán como el “main()” del comando. \\ |
| | \\ |
| | |
| | Si se desea cambiar el comando para ejecutar un programa, es suficiente con indicarlo en "console_scripts" y cambiar el campo "mi_comando". A continuación **es necesario reinstalar** con "pip install -e .", por ejemplo. |
| ==== readme.md ==== | ==== readme.md ==== |
| Es un archivo de texto (usualmente en formato Markdown, de ahí la extensión .md) que explica de qué trata el proyecto. \\ | Es un archivo de texto (usualmente en formato Markdown, de ahí la extensión .md) que explica de qué trata el proyecto. \\ |