GenerateJsonSchema#

class tollan.config.types.GenerateJsonSchema(by_alias: bool = True, ref_template: str = '#/$defs/{model}', union_format: Literal['any_of', 'primitive_type_array'] = 'any_of')[source]#

Bases: GenerateJsonSchema

Custom JSON schema generator with type-specific serializers.

This extends Pydantic’s default JSON schema generation to handle custom astronomy types (Time, Quantity, SkyCoord) properly.

_default_serializers#

Registry of type-specific serializers

Type:

ClassVar[dict[type[Any], Callable]]

Examples

>>> from tollan.config import FrozenBaseModel
>>> class MyModel(FrozenBaseModel):
...     value: int = 42
>>> schema = MyModel.model_json_schema()
>>> 'value' in schema['properties']
True

Methods Summary

encode_default(dft)

Override default behavior to invoke custom type handlers.

register_default_serializers(dft_type, handler)

Add handler for type.

Methods Documentation

encode_default(dft: Any) Any[source]#

Override default behavior to invoke custom type handlers.

Parameters:

dft (Any) – Default value to encode

Returns:

Encoded default value

Return type:

Any

classmethod register_default_serializers(dft_type: type[Any], handler: Callable) None[source]#

Add handler for type.

Parameters:
  • dft_type (type[Any]) – Type to register serializer for

  • handler (Callable) – Serialization function