From 2fd092cd8eb1e1376c9e3cc6b14865944712a7da Mon Sep 17 00:00:00 2001 From: Michael Terry Date: Wed, 14 Jan 2026 13:58:56 -0500 Subject: [PATCH] feat: support enum-level descriptions By saving them as a enum class docstring. --- jambo/parser/enum_type_parser.py | 2 ++ tests/parser/test_enum_type_parser.py | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/jambo/parser/enum_type_parser.py b/jambo/parser/enum_type_parser.py index 3d0fee3..e96aff5 100644 --- a/jambo/parser/enum_type_parser.py +++ b/jambo/parser/enum_type_parser.py @@ -36,6 +36,8 @@ class EnumTypeParser(GenericTypeParser): # Create a new Enum type dynamically enum_type = Enum(name, {str(value).upper(): value for value in enum_values}) # type: ignore + enum_type.__doc__ = properties.get("description") + parsed_properties = self.mappings_properties_builder(properties, **kwargs) if "default" in parsed_properties and parsed_properties["default"] is not None: diff --git a/tests/parser/test_enum_type_parser.py b/tests/parser/test_enum_type_parser.py index 7665007..e180abf 100644 --- a/tests/parser/test_enum_type_parser.py +++ b/tests/parser/test_enum_type_parser.py @@ -49,6 +49,20 @@ class TestEnumTypeParser(TestCase): ) self.assertEqual(parsed_properties, {"default": None}) + def test_enum_type_parser_creates_enum_with_description(self): + parser = EnumTypeParser() + + schema = { + "description": "an enum", + "enum": ["value1"], + } + + parsed_type, parsed_properties = parser.from_properties_impl( + "TestEnum", + schema, + ) + self.assertEqual(parsed_type.__doc__, "an enum") + def test_enum_type_parser_creates_enum_with_default(self): parser = EnumTypeParser()