CRegExp hides usefull exception when compiling pattern
- Lenguaje dominante
- Python
- Estrellas
- 653
- Forks
- 217
- Merge medio
- 2 d 21 h
- PR fusionados (30 d)
- 2
Descripción
Trait `CRegExp` discards the exception when compiling a regular exception, and that contains useful debugging information:
https://github.com/ipython/traitlets/blob/3164ffb43167e9d1688046fbe0aefa424af5b58d/traitlets/traitlets.py#L2883-L2889
This is the error message produced on bad regular-expressions:
the CRegExp of MyClass.regex expeted a regular expression, not the str '^('.
An obvious change to preserve the original exception would be:
```python
def validate(self, obj, value):
try:
return re.compile(value)
except Exception as ex:
self.error(obj, value, ex)
```
But unfortunately the error message becomes incomprehensible:
The 'regex' trait of a MyClass instance contains which expected , not the str 'missing ), unterminated subpattern at position 0'.
In #466 things are better (but still cannot make the TestCases to pass):
the str '^(' caused an error in the CRegExp of MyClass.regex because unknown group name 'm' at position 3.
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.