From 5c9a44ed2b566470b5a51b8267606d55c93f3705 Mon Sep 17 00:00:00 2001 From: bruno-f-cruz <7049351+bruno-f-cruz@users.noreply.github.com> Date: Wed, 12 Jun 2024 09:49:50 -0700 Subject: [PATCH 1/2] Handle case where type is not found --- src/DataSchemas/aind_behavior_services/utils.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/DataSchemas/aind_behavior_services/utils.py b/src/DataSchemas/aind_behavior_services/utils.py index 33b8d93e..6da8f50c 100644 --- a/src/DataSchemas/aind_behavior_services/utils.py +++ b/src/DataSchemas/aind_behavior_services/utils.py @@ -24,7 +24,7 @@ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.nullable_as_oneof = kwargs.get("nullable_as_oneof", True) self.unions_as_oneof = kwargs.get("unions_as_oneof", True) - self.render_xenum_names = kwargs.get("render_xenum_names", True) + self.render_x_enum_names = kwargs.get("render_x_enum_names", True) def nullable_schema(self, schema: core_schema.NullableSchema) -> JsonSchemaValue: null_schema = {"type": "null"} @@ -86,7 +86,8 @@ def enum_schema(self, schema: core_schema.EnumSchema) -> JsonSchemaValue: elif types == {list}: result["type"] = "array" - if (self.render_xenum_names) and (result["type"] != "string"): + _type = result.get("type", None) + if (self.render_x_enum_names) and (_type != "string") and (_type is not None): result["x-enumNames"] = [screaming_snake_case_to_pascal_case(v.name) for v in schema["members"]] return result From 4b69d344c7257100c34f02e1256a0ecf8394706a Mon Sep 17 00:00:00 2001 From: bruno-f-cruz <7049351+bruno-f-cruz@users.noreply.github.com> Date: Wed, 12 Jun 2024 09:57:55 -0700 Subject: [PATCH 2/2] Attempt to handle generic types --- src/DataSchemas/aind_behavior_services/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DataSchemas/aind_behavior_services/utils.py b/src/DataSchemas/aind_behavior_services/utils.py index 6da8f50c..9a6f86d5 100644 --- a/src/DataSchemas/aind_behavior_services/utils.py +++ b/src/DataSchemas/aind_behavior_services/utils.py @@ -87,7 +87,7 @@ def enum_schema(self, schema: core_schema.EnumSchema) -> JsonSchemaValue: result["type"] = "array" _type = result.get("type", None) - if (self.render_x_enum_names) and (_type != "string") and (_type is not None): + if (self.render_x_enum_names) and (_type != "string"): result["x-enumNames"] = [screaming_snake_case_to_pascal_case(v.name) for v in schema["members"]] return result