from typing import Any, List, Optional, Type, ClassVar
[docs]
class Field:
def __init__(
self,
name: str,
type: Type,
description: str,
required: bool = True,
default: Optional[Any] = None
) -> None:
self.name = name
self.type = type
self.description = description
self.required = required
self.default = default
[docs]
class Schema:
name: ClassVar[str] = ''
fields: ClassVar[List[Field]] = []
[docs]
@classmethod
def get_required_fields(cls) -> List[str]:
return [field.name for field in cls.fields if field.required]
[docs]
@classmethod
def get_field_by_name(
cls,
name: str
) -> Optional[Field]:
for field in cls.fields:
if field.name == name:
return field
return None