Files
config/.config/scripts/.venv/lib/python3.12/site-packages/mashumaro/jsonschema/annotations.py
2025-08-21 17:40:48 +01:00

135 lines
2.1 KiB
Python

from dataclasses import dataclass
from mashumaro.jsonschema.models import JSONSchema, Number
class Annotation:
pass
class Constraint(Annotation):
pass
class NumberConstraint(Constraint):
pass
@dataclass(unsafe_hash=True)
class Minimum(NumberConstraint):
value: Number
@dataclass(unsafe_hash=True)
class Maximum(NumberConstraint):
value: Number
@dataclass(unsafe_hash=True)
class ExclusiveMinimum(NumberConstraint):
value: Number
@dataclass(unsafe_hash=True)
class ExclusiveMaximum(NumberConstraint):
value: Number
@dataclass(unsafe_hash=True)
class MultipleOf(NumberConstraint):
value: Number
class StringConstraint(Constraint):
pass
@dataclass(unsafe_hash=True)
class MinLength(StringConstraint):
value: int
@dataclass(unsafe_hash=True)
class MaxLength(StringConstraint):
value: int
@dataclass(unsafe_hash=True)
class Pattern(StringConstraint):
value: str
class ArrayConstraint(Constraint):
pass
@dataclass(unsafe_hash=True)
class MinItems(ArrayConstraint):
value: int
@dataclass(unsafe_hash=True)
class MaxItems(ArrayConstraint):
value: int
@dataclass(unsafe_hash=True)
class UniqueItems(ArrayConstraint):
value: bool
@dataclass(unsafe_hash=True)
class Contains(ArrayConstraint):
value: JSONSchema
@dataclass(unsafe_hash=True)
class MinContains(ArrayConstraint):
value: int
@dataclass(unsafe_hash=True)
class MaxContains(ArrayConstraint):
value: int
class ObjectConstraint(Constraint):
pass
@dataclass(unsafe_hash=True)
class MaxProperties(ObjectConstraint):
value: int
@dataclass(unsafe_hash=True)
class MinProperties(ObjectConstraint):
value: int
@dataclass
class DependentRequired(ObjectConstraint):
value: dict[str, set[str]]
__all__ = [
"Annotation",
"MultipleOf",
"Maximum",
"ExclusiveMaximum",
"Minimum",
"ExclusiveMinimum",
"MaxLength",
"MinLength",
"Pattern",
"MaxItems",
"MinItems",
"UniqueItems",
"Contains",
"MaxContains",
"MinContains",
"MaxProperties",
"MinProperties",
"DependentRequired",
]