summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--jsonschema/_format.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/jsonschema/_format.py b/jsonschema/_format.py
index d274c5f..2231f5e 100644
--- a/jsonschema/_format.py
+++ b/jsonschema/_format.py
@@ -17,6 +17,8 @@ _RaisesType = typing.Union[
typing.Type[Exception], typing.Tuple[typing.Type[Exception], ...],
]
+_RE_DATE = re.compile(r"^\d{4}-\d{2}-\d{2}$", re.ASCII)
+
class FormatChecker:
"""
@@ -396,7 +398,10 @@ def is_regex(instance: object) -> bool:
def is_date(instance: object) -> bool:
if not isinstance(instance, str):
return True
- return bool(instance.isascii() and datetime.date.fromisoformat(instance))
+ return bool(
+ _RE_DATE.fullmatch(instance)
+ and datetime.date.fromisoformat(instance)
+ )
@_checks_drafts(draft3="time", raises=ValueError)