Root Ossie document.
| 163 | |
| 164 | |
| 165 | class OSIDocument(BaseModel): |
| 166 | """Root Ossie document.""" |
| 167 | |
| 168 | model_config = ConfigDict(frozen=True) |
| 169 | |
| 170 | version: str = "0.2.0.dev0" |
| 171 | dialects: Optional[list[OSIDialect]] = None |
| 172 | vendors: Optional[list[OSIVendor]] = None |
| 173 | semantic_model: list[OSISemanticModel] |
| 174 | |
| 175 | def to_osi_yaml(self, **kwargs: Any) -> str: |
| 176 | """Serialize to Ossie-compliant YAML (uses field aliases and excludes None values).""" |
| 177 | data = self.model_dump(by_alias=True, exclude_none=True, mode="json", **kwargs) |
| 178 | return yaml.dump(data, default_flow_style=False, sort_keys=False, allow_unicode=True) |
| 179 | |
| 180 | def to_osi_json(self, **kwargs: Any) -> str: |
| 181 | """Serialize to Ossie-compliant JSON (uses field aliases and excludes None values).""" |
| 182 | return self.model_dump_json(by_alias=True, exclude_none=True, **kwargs) |