@@ -107,49 +107,37 @@ def __init__(
107
107
@property
108
108
def system_landscape_views (self ) -> Iterable [SystemLandscapeView ]:
109
109
"""Return the SystemLandscapeViews in this ViewSet."""
110
- return (
111
- view
112
- for view in self ._views .values ()
113
- if isinstance (view , SystemLandscapeView )
114
- )
115
-
110
+ return self ._get_typed_views (SystemLandscapeView )
111
+
116
112
@property
117
113
def system_context_views (self ) -> Iterable [SystemContextView ]:
118
114
"""Return the SystemContextViews in this ViewSet."""
119
- return (
120
- view for view in self ._views .values () if isinstance (view , SystemContextView )
121
- )
115
+ return self ._get_typed_views (SystemContextView )
122
116
123
117
@property
124
118
def container_views (self ) -> Iterable [ContainerView ]:
125
119
"""Return the ContainerViews in this ViewSet."""
126
- return (
127
- view for view in self ._views .values () if isinstance (view , ContainerView )
128
- )
120
+ return self ._get_typed_views (ContainerView )
129
121
130
122
@property
131
123
def component_views (self ) -> Iterable [ComponentView ]:
132
124
"""Return the CompoentViews in this ViewSet."""
133
- return (
134
- view for view in self ._views .values () if isinstance (view , ComponentView )
135
- )
125
+ return self ._get_typed_views (ComponentView )
136
126
137
127
@property
138
128
def deployment_views (self ) -> Iterable [DeploymentView ]:
139
129
"""Return the DeploymentViews in this ViewSet."""
140
- return (
141
- view for view in self ._views .values () if isinstance (view , DeploymentView )
142
- )
130
+ return self ._get_typed_views (DeploymentView )
143
131
144
132
@property
145
133
def dynamic_views (self ) -> Iterable [DynamicView ]:
146
134
"""Return the DynamicViews in this ViewSet."""
147
- return ( view for view in self ._views . values () if isinstance ( view , DynamicView ) )
135
+ return self ._get_typed_views ( DynamicView )
148
136
149
137
@property
150
138
def filtered_views (self ) -> Iterable [FilteredView ]:
151
139
"""Return the FilteredViews in this ViewSet."""
152
- return ( view for view in self ._views . values () if isinstance ( view , FilteredView ) )
140
+ return self ._get_typed_views ( FilteredView )
153
141
154
142
@property
155
143
def views (self ) -> Iterable [AbstractView ]:
@@ -390,3 +378,10 @@ def _ensure_key_is_specific_and_unique(self, key: str) -> None:
390
378
raise ValueError ("A key must be specified." )
391
379
if key in self ._views :
392
380
raise ValueError (f"View already exists in workspace with key '{ key } '." )
381
+
382
+ def _get_typed_views (self , klass : "T" ) -> Iterable ["T" ]:
383
+ return (
384
+ view
385
+ for view in self ._views .values ()
386
+ if isinstance (view , klass )
387
+ )
0 commit comments