Skip to content

Commit 60f09ee

Browse files
ilaifMidnighter
andcommitted
feat: add hydrate to styles
Co-authored-by: Midnighter <[email protected]>
1 parent 03fe6f0 commit 60f09ee

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

src/structurizr/view/styles.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
"""Provide a collection of styles."""
1717

1818

19-
from typing import Iterable, List, Optional, Union
19+
from typing import Iterable, List, Union
20+
21+
from pydantic import Field
2022

2123
from ..abstract_base import AbstractBase
2224
from ..base_model import BaseModel
@@ -35,8 +37,8 @@ class StylesIO(BaseModel):
3537
3638
"""
3739

38-
elements: Optional[List[ElementStyleIO]]
39-
relationships: Optional[List[RelationshipStyleIO]]
40+
elements: List[ElementStyleIO] = Field(default=())
41+
relationships: List[RelationshipStyleIO] = Field(default=())
4042

4143

4244
class Styles(AbstractBase):
@@ -85,3 +87,11 @@ def add_relationship_style(self, **kwargs) -> None:
8587
def clear_relationships_styles(self) -> None:
8688
""""""
8789
self.relationships.clear()
90+
91+
@classmethod
92+
def hydrate(cls, styles_io: StylesIO) -> "Styles":
93+
""""""
94+
return cls(
95+
elements=map(ElementStyle.hydrate, styles_io.elements),
96+
relationships=map(RelationshipStyle.hydrate, styles_io.relationships),
97+
)

0 commit comments

Comments
 (0)