objectif
Lire des valeurs par défaut depuis l’environnement pour un CLI robuste.
code minimal
import argparse, os
def parse(argv=None):
parser = argparse.ArgumentParser()
parser.add_argument("--host", default=os.getenv("APP_HOST", "127.0.0.1"))
parser.add_argument("--port", type=int, default=int(os.getenv("APP_PORT", "8080")))
return parser.parse_args(argv)
if __name__ == "__main__":
os.environ["APP_HOST"] = "0.0.0.0"
os.environ["APP_PORT"] = "9090"
args = parse([])
print(f"{args.host}:{args.port}") # attendu: 0.0.0.0:9090
utilisation
APP_HOST=0.0.0.0 APP_PORT=9090 python app.py # --> 0.0.0.0:9090
python app.py --host 1.2.3.4 --port 8000 # --> 1.2.3.4:8000
variante(s) utile(s)
import argparse, os
def env_or_default(name: str, default: str):
return os.getenv(name, default)
p = argparse.ArgumentParser()
p.add_argument("--mode", choices=["dev", "prod"], default=env_or_default("APP_MODE", "dev"))
print(p.parse_args([]).mode in ("dev","prod"))
notes
- Documentez les variables supportées dans l’aide du CLI.
- Convertissez proprement types numériques/booleens.