cloudevents_pydantic/events/fields/metadata/_fields.py
# ==============================================================================
# Copyright (c) 2024 Federico Busetti =
# <729029+febus982@users.noreply.github.com> =
# =
# Permission is hereby granted, free of charge, to any person obtaining a =
# copy of this software and associated documentation files (the "Software"), =
# to deal in the Software without restriction, including without limitation =
# the rights to use, copy, modify, merge, publish, distribute, sublicense, =
# and/or sell copies of the Software, and to permit persons to whom the =
# Software is furnished to do so, subject to the following conditions: =
# =
# The above copyright notice and this permission notice shall be included in =
# all copies or substantial portions of the Software. =
# =
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR =
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, =
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL =
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER =
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING =
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER =
# DEALINGS IN THE SOFTWARE. =
# ==============================================================================
from cloudevents.pydantic.fields_docs import FIELD_DESCRIPTIONS
from pydantic.fields import Field, FieldInfo
def _ce_field_metadata(field_name: str) -> FieldInfo:
return Field(
title=FIELD_DESCRIPTIONS[field_name].get("title"),
description=FIELD_DESCRIPTIONS[field_name].get("description"),
examples=[FIELD_DESCRIPTIONS[field_name].get("example")],
)
FieldData: FieldInfo = _ce_field_metadata("data")
FieldSource: FieldInfo = _ce_field_metadata("source")
FieldId: FieldInfo = _ce_field_metadata("id")
FieldType: FieldInfo = _ce_field_metadata("type")
FieldSpecVersion: FieldInfo = _ce_field_metadata("specversion")
FieldTime: FieldInfo = _ce_field_metadata("time")
FieldSubject: FieldInfo = _ce_field_metadata("subject")
FieldDataContentType: FieldInfo = _ce_field_metadata("datacontenttype")
FieldDataSchema: FieldInfo = _ce_field_metadata("dataschema")