CRegExp hides usefull exception when compiling pattern
- Vorherrschende Sprache
- Python
- Sterne
- 653
- Forks
- 217
- Ø Merge
- 2 T. 21 Std.
- Gemergte PRs (30 T.)
- 2
Beschreibung
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.
Beitragsleitfaden
Bewertung
Dieses Issue wurde noch nicht bewertet.