dotenv get exits with code 1 for empty string values
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 88/100
Línea de trabajo
Empieza en src/dotenv/cli.py, en el comando dotenv get, e inspecciona cómo distingue entre una clave inexistente y un valor vacío. Reproduce el problema con el ejemplo de Python subprocess del informe; se considera terminado cuando un valor vacío existente imprime una cadena vacía y termina con el código 0, mientras que una clave inexistente sigue terminando con el código 1.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
dotenv get KEY treats an empty string value as missing because the CLI uses a truthiness check (if stored_value:) instead of testing for key presence / None.
Empty values are valid in .env files (KEY= or KEY=""). The library API already returns them correctly via get_key / dotenv_values; only the CLI get command is wrong.
Steps to reproduce
import subprocess, sys, tempfile
from pathlib import Path
from dotenv import set_key
with tempfile.TemporaryDirectory() as directory:
path = Path(directory) / ".env"
set_key(path, "EMPTY", "")
result = subprocess.run(
[sys.executable, "-m", "dotenv", "-f", str(path), "get", "EMPTY"],
capture_output=True,
text=True,
)
print(result.returncode, repr(result.stdout))
Expected behavior
0 ''
(exit code 0, empty value printed)
Actual behavior
1 ''
(exit code 1 — same as a missing key)
dotenv get ZERO with ZERO=0 works (exit 0), so only falsy-but-present empty strings are affected.
Environment
- python-dotenv: 1.2.3 (current
main) - Python: 3.14
- OS: Windows
Suggested fix
In src/dotenv/cli.py get, distinguish missing/None from an empty string, e.g. exit only when the key is absent or the stored value is None.
- Lenguaje dominante
- Python
- Estrellas
- 8.9k
- Forks
- 581
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de theskumar/python-dotenv
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
theskumar/python-dotenv#697 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 28/100
theskumar/python-dotenv#693 · 1 comentario ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
theskumar/python-dotenv#683 · 4 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
theskumar/python-dotenv#644 · 2 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
theskumar/python-dotenv#631 · 3 comentarios · 1 reacción ·
Todos los issues de theskumar/python-dotenv
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
qgis/QGIS-Documentation#11275 ·
-
bug priority:normal ready-for-dev
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
OpenHands/extensions#626 · 1 comentario ·
-
Change observation tooltip text Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
CSCfi/sd-search-api#39 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
-
please add to porn list Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
StevenBlack/hosts#3255 ·