Convert regular exceptions into ExpressionError

Abierto
#97 0 comentarios 0 reacciones 0 asignados Ver en GitHub

@Rajeshwari2857 ya está trabajando en esto.

Desde el 22/10/2026.

  • #142 de @Rajeshwari2857 — abierto

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
38/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Estancado
Stack tecnológico
python
Área
api, backend

Línea de trabajo

Comienza en license_expression/init.py, en Licensing.validate y en la llamada a parse que se muestra en el traceback. Reproduce la expresión '(Apache-2.0) AND ()' y verifica después que la validación informe de la expresión mal formada mediante result.errors en lugar de exponer el IndexError del parser.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

I currently try to run validation of SPDX expression from arbitrary inputs. If something is wrong with the expression, I would have expected it to always populate the errors attribute instead of raising exceptions. Apparently, this is not the case in every situation.

Let's consider the following snippet:

from license_expression import get_spdx_licensing

licensing = get_spdx_licensing()
expression = '(Apache-2.0) AND ()'
result = licensing.validate(expression)
print(result.errors)

This fails with an IndexError during validation:

[...]
  File "/home/user/lib/python3.9/site-packages/license_expression/__init__.py", line 778, in validate
    parsed_expression = self.parse(expression, strict=strict)
  File "/home/user/lib/python3.9/site-packages/license_expression/__init__.py", line 545, in parse
    expression = super(Licensing, self).parse(tokens)
  File "/home/user/lib/python3.9/site-packages/boolean/boolean.py", line 316, in parse
    ast[0].append(ast[2])
IndexError: list index out of range
Lenguaje dominante
Python
Estrellas
74
Forks
38
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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de aboutcode-org/license-expression

Todos los issues de aboutcode-org/license-expression

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.