From c5c40e31c445dfcc74d3bf9f7aa99da719d93371 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=20V=C3=AEjdea?= Date: Sun, 9 Sep 2018 22:33:13 +0300 Subject: [PATCH] Log regex compilation failure in find_regex Closes #193. --- src/drf_yasg/inspectors/field.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/drf_yasg/inspectors/field.py b/src/drf_yasg/inspectors/field.py index 18a185b..a1cc65d 100644 --- a/src/drf_yasg/inspectors/field.py +++ b/src/drf_yasg/inspectors/field.py @@ -262,7 +262,12 @@ def find_regex(regex_field): regex_validator = validator # regex_validator.regex should be a compiled re object... - pattern = getattr(getattr(regex_validator, 'regex', None), 'pattern', None) + try: + pattern = getattr(getattr(regex_validator, 'regex', None), 'pattern', None) + except Exception: # pragma: no cover + logger.warning('failed to compile regex validator of ' + str(regex_field), exc_info=True) + return None + if pattern: # attempt some basic cleanup to remove regex constructs not supported by JavaScript # -- swagger uses javascript-style regexes - see https://github.com/swagger-api/swagger-editor/issues/1601