From f960d3eb65e06cd50e9a8632c3881026b0fa66c0 Mon Sep 17 00:00:00 2001 From: Justin Choquette Date: Fri, 11 Jul 2025 13:05:56 -0400 Subject: [PATCH] Fix: is_uuid returns False for non-string inputs and catches exceptions thrown by UUID constructor --- jsonschema/_format.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/jsonschema/_format.py b/jsonschema/_format.py index 9b4e67b6..318826ed 100644 --- a/jsonschema/_format.py +++ b/jsonschema/_format.py @@ -516,6 +516,9 @@ def is_duration(instance: object) -> bool: ) def is_uuid(instance: object) -> bool: if not isinstance(instance, str): - return True - UUID(instance) + return False + try: + UUID(instance) + except: + return False return all(instance[position] == "-" for position in (8, 13, 18, 23))