Source code for czml3.base

import sys

from pydantic import BaseModel, ConfigDict, model_validator

if sys.version_info[1] >= 11:
    from typing import Self
else:
    from typing_extensions import Self  # pragma: no cover

NON_DELETE_PROPERTIES = ["id", "delete"]


[docs] class BaseCZMLObject(BaseModel): model_config = ConfigDict(extra="forbid")
[docs] @model_validator(mode="after") def check_delete(self) -> Self: if hasattr(self, "delete") and self.delete: for k in self.model_fields: if k not in NON_DELETE_PROPERTIES and getattr(self, k) is not None: setattr(self, k, None) return self
def __str__(self) -> str: return self.to_json()
[docs] def dumps(self) -> str: return self.model_dump_json(exclude_none=True)
[docs] def to_json(self, *, indent: int = 4) -> str: return self.model_dump_json(exclude_none=True, indent=indent)