Leading whitespace is lost during parsing
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Reproduce el problema usando RequirementsFile.from_file y dumps con una línea de requirements o un comentario que comience con espacios y, a continuación, rastrea dónde se descarta ese espacio en blanco inicial. Compara la salida con los ejemplos originales, incluidas las líneas de continuación indentadas. Se considera completado cuando dumps conserva el espacio en blanco inicial y sigue manejando correctamente los requirements analizados; añade cobertura de regresión para estos casos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Thanks for building pip-requirements-parser! I'm really happy with it.
I noticed that if I parse a requirements file and then print it out with dumps, any leading whitespace before a requirement or comment gets removed. Example below:
(env) tetsuo@Alexs-MacBook-Pro pip-audit % cat requirements.txt
flask==0.5
(env) tetsuo@Alexs-MacBook-Pro pip-audit % python
Python 3.9.13 (main, May 24 2022, 21:13:51)
[Clang 13.1.6 (clang-1316.0.21.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from pip_requirements_parser import RequirementsFile
>>> rf = RequirementsFile.from_file("requirements.txt")
>>> rf.dumps()
'flask==0.5'
It seems that whitespace within the line is preserved, it's just when it exists at the beginning of the line that it gets stripped.
(env) tetsuo@Alexs-MacBook-Pro pip-audit % cat base.txt
django-celery-results==2.3.1 \
--hash=sha256:b8c9416619dbcc38f13398e31bcb1f14a228cd1e8f65fb22d3b7fc68aaa5331a \
--hash=sha256:bf24ecc29c42e49cc7eb30b9b3739471331e2a0ca517cc88ca53a0cf3a2031d1
(env) tetsuo@Alexs-MacBook-Pro pip-audit % python
Python 3.9.13 (main, May 24 2022, 21:13:51)
[Clang 13.1.6 (clang-1316.0.21.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from pip_requirements_parser import RequirementsFile
>>> rf = RequirementsFile.from_file("base.txt")
>>> rf.dumps()
'django-celery-results==2.3.1 \\\n --hash=sha256:b8c9416619dbcc38f13398e31bcb1f14a228cd1e8f65fb22d3b7fc68aaa5331a \\\n --hash=sha256:bf24ecc29c42e49cc7eb30b9b3739471331e2a0ca517cc88ca53a0cf3a2031d1'
This matters to pip-audit because our use case involves parsing a requirements file and then rewriting it with some of the requirements modified. So any requirements files that have leading whitespace will have the whitespace removed when we rewrite a requirements file.
The first example that comes to mind are automatic comments that are indented like those inserted by pip-compile.
Are you interested in having pip-requirements-parser support this use case? If so, I'm happy to take a stab at a PR.
- Lenguaje dominante
- Python
- Estrellas
- 20
- Forks
- 16
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 aboutcode-org/pip-requirements-parser
-
Quadratic comment split on a requirements file line (pip_requirements_parser.py:1058)Posiblemente ocupada @Anurag-S1ngh la tomó hace 5 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
aboutcode-org/pip-requirements-parser#30 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 60/100
-
Tests failures with packaging 26.0Posiblemente ocupada @s-t-e-v-e-n-k la tomó hace 269 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
aboutcode-org/pip-requirements-parser#26 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 48/100
Todos los issues de aboutcode-org/pip-requirements-parser
Issues similares
-
Skill submission: negative-test-first (testing discipline; PR creation is collaborator-only)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
ComposioHQ/awesome-claude-skills#2398 ·
Los mantenedores suelen responder en 2 días
-
bug converter
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
grafana/sigma-rule-deployment#435 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
datamodel-code-generator/datamodel-code-generator#5589 ·
Los mantenedores suelen responder en 1 día
-
Shell: serve the home app's Cookie Policy on a hard reloadPosiblemente ocupada @2001anshkaushik la tomó hoy. Abiertofeature module:ai
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
rocketride-org/rocketride-server#2899 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
GEFSv12
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100