diff --git a/pyaml/validation/configuration_models.py b/pyaml/validation/configuration_models.py index b77f732f..a504579b 100644 --- a/pyaml/validation/configuration_models.py +++ b/pyaml/validation/configuration_models.py @@ -28,6 +28,20 @@ def model_dump_json(self, **kwargs): kwargs.setdefault("serialize_as_any", True) return super().model_dump_json(**kwargs) + @classmethod + def describe(cls) -> str: + """Return a readable description of the model fields.""" + lines = [f"{cls.__name__}("] + + for name, field in cls.model_fields.items(): + line = f" {name}: {getattr(field.annotation, '__name__', field.annotation)}" + if field.description: + line += f" — {field.description}" + lines.append(line) + + lines.append(")") + return "\n".join(lines) + class ConfigurationSchema(PyAMLBaseModel): """