buildzr 0.0.12__py3-none-any.whl → 0.0.14__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- buildzr/__about__.py +1 -1
- buildzr/dsl/__init__.py +7 -0
- buildzr/dsl/dsl.py +845 -82
- buildzr/dsl/explorer.py +28 -2
- buildzr/dsl/expression.py +115 -25
- buildzr/dsl/interfaces/__init__.py +4 -0
- buildzr/dsl/interfaces/interfaces.py +77 -0
- buildzr/models/generate.sh +9 -0
- buildzr/models/models.py +3 -1
- {buildzr-0.0.12.dist-info → buildzr-0.0.14.dist-info}/METADATA +2 -4
- buildzr-0.0.14.dist-info/RECORD +24 -0
- buildzr-0.0.12.dist-info/RECORD +0 -24
- {buildzr-0.0.12.dist-info → buildzr-0.0.14.dist-info}/WHEEL +0 -0
- {buildzr-0.0.12.dist-info → buildzr-0.0.14.dist-info}/licenses/LICENSE.md +0 -0
buildzr/dsl/explorer.py
CHANGED
@@ -3,6 +3,10 @@ from buildzr.dsl.dsl import (
|
|
3
3
|
SoftwareSystem,
|
4
4
|
Container,
|
5
5
|
Component,
|
6
|
+
DeploymentNode,
|
7
|
+
InfrastructureNode,
|
8
|
+
SoftwareSystemInstance,
|
9
|
+
ContainerInstance,
|
6
10
|
)
|
7
11
|
|
8
12
|
from buildzr.dsl.relations import (
|
@@ -27,10 +31,32 @@ from buildzr.dsl.interfaces import (
|
|
27
31
|
|
28
32
|
class Explorer:
|
29
33
|
|
30
|
-
def __init__(
|
34
|
+
def __init__(
|
35
|
+
self,
|
36
|
+
workspace_or_element: Union[
|
37
|
+
Workspace,
|
38
|
+
Person,
|
39
|
+
SoftwareSystem,
|
40
|
+
Container,
|
41
|
+
Component,
|
42
|
+
DeploymentNode,
|
43
|
+
InfrastructureNode,
|
44
|
+
SoftwareSystemInstance,
|
45
|
+
ContainerInstance,
|
46
|
+
]
|
47
|
+
):
|
31
48
|
self._workspace_or_element = workspace_or_element
|
32
49
|
|
33
|
-
def walk_elements(self) -> Generator[Union[
|
50
|
+
def walk_elements(self) -> Generator[Union[
|
51
|
+
Person,
|
52
|
+
SoftwareSystem,
|
53
|
+
Container,
|
54
|
+
Component,
|
55
|
+
DeploymentNode,
|
56
|
+
InfrastructureNode,
|
57
|
+
SoftwareSystemInstance,
|
58
|
+
ContainerInstance
|
59
|
+
], None, None]:
|
34
60
|
if self._workspace_or_element.children:
|
35
61
|
for child in self._workspace_or_element.children:
|
36
62
|
explorer = Explorer(child).walk_elements()
|
buildzr/dsl/expression.py
CHANGED
@@ -10,6 +10,11 @@ from buildzr.dsl.dsl import (
|
|
10
10
|
SoftwareSystem,
|
11
11
|
Container,
|
12
12
|
Component,
|
13
|
+
DeploymentNode,
|
14
|
+
InfrastructureNode,
|
15
|
+
SoftwareSystemInstance,
|
16
|
+
ContainerInstance,
|
17
|
+
TypedDynamicAttribute,
|
13
18
|
)
|
14
19
|
|
15
20
|
from buildzr.dsl.relations import _Relationship
|
@@ -19,7 +24,22 @@ from typing import Set, Union, Optional, List, Dict, Any, Callable, Tuple, Seque
|
|
19
24
|
from typing_extensions import TypeIs
|
20
25
|
|
21
26
|
def _has_technology_attribute(obj: DslElement) -> TypeIs[Union[Container, Component]]:
|
22
|
-
if isinstance(obj, (Person, SoftwareSystem, Workspace)):
|
27
|
+
if isinstance(obj, (Person, SoftwareSystem, Workspace, SoftwareSystemInstance, ContainerInstance)):
|
28
|
+
return False
|
29
|
+
return True
|
30
|
+
|
31
|
+
def _has_group_attribute(obj: DslElement) -> TypeIs[Union[Person, SoftwareSystem, Container, Component]]:
|
32
|
+
if isinstance(obj, (Workspace, DeploymentNode, InfrastructureNode, SoftwareSystemInstance, ContainerInstance)):
|
33
|
+
return False
|
34
|
+
return True
|
35
|
+
|
36
|
+
def _has_name_attribute(obj: DslElement) -> TypeIs[Union[Person, SoftwareSystem, Container, Component, DeploymentNode, InfrastructureNode]]:
|
37
|
+
if isinstance(obj, (Workspace, SoftwareSystemInstance, ContainerInstance)):
|
38
|
+
return False
|
39
|
+
return True
|
40
|
+
|
41
|
+
def _has_environment_attribute(obj: DslElement) -> TypeIs[Union[ContainerInstance, SoftwareSystemInstance]]:
|
42
|
+
if isinstance(obj, (Workspace, Person, SoftwareSystem, Container, Component)):
|
23
43
|
return False
|
24
44
|
return True
|
25
45
|
|
@@ -37,7 +57,19 @@ class FlattenElement:
|
|
37
57
|
|
38
58
|
@property
|
39
59
|
def names(self) -> Set[Union[str]]:
|
40
|
-
|
60
|
+
|
61
|
+
"""
|
62
|
+
Returns the names of the elements.
|
63
|
+
|
64
|
+
If the element is a `SoftwareSystemInstance` or `ContainerInstance`,
|
65
|
+
which has no name attribute, it will be excluded from the result.
|
66
|
+
"""
|
67
|
+
|
68
|
+
name_set: Set[str] = set()
|
69
|
+
for element in self._elements:
|
70
|
+
if _has_name_attribute(element):
|
71
|
+
name_set.add(str(element.model.name))
|
72
|
+
return name_set
|
41
73
|
|
42
74
|
@property
|
43
75
|
def tags(self) -> Set[Union[str]]:
|
@@ -47,12 +79,37 @@ class FlattenElement:
|
|
47
79
|
all_tags = all_tags.union(tags)
|
48
80
|
return all_tags
|
49
81
|
|
50
|
-
class
|
82
|
+
class WorkspaceExpression:
|
83
|
+
|
84
|
+
"""
|
85
|
+
A class used to filter the allowable methods and properties of the
|
86
|
+
`Structurizr DSL` workspace. This is used to filter the elements and
|
87
|
+
relationships in the workspace.
|
88
|
+
"""
|
89
|
+
|
90
|
+
def __init__(self, workspace: Workspace):
|
91
|
+
self._workspace = workspace
|
92
|
+
self._dynamic_attributes = self._workspace._dynamic_attrs
|
93
|
+
|
94
|
+
def software_system(self) -> TypedDynamicAttribute['SoftwareSystem']:
|
95
|
+
"""
|
96
|
+
Returns the software system of the workspace. This is used to filter the
|
97
|
+
elements and relationships in the workspace.
|
98
|
+
"""
|
99
|
+
return TypedDynamicAttribute['SoftwareSystem'](self._dynamic_attributes)
|
100
|
+
|
101
|
+
def person(self) -> TypedDynamicAttribute['Person']:
|
102
|
+
"""
|
103
|
+
Returns the person of the workspace. This is used to filter the elements
|
104
|
+
and relationships in the workspace.
|
105
|
+
"""
|
106
|
+
return TypedDynamicAttribute['Person'](self._dynamic_attributes)
|
107
|
+
|
108
|
+
class ElementExpression:
|
51
109
|
|
52
110
|
def __init__(self, element: DslElement):
|
53
111
|
self._element = element
|
54
112
|
|
55
|
-
# TODO: Make a test for this in `tests/test_expression.py`
|
56
113
|
@property
|
57
114
|
def id(self) -> str:
|
58
115
|
return cast(str, self._element.model.id)
|
@@ -76,6 +133,10 @@ class Element:
|
|
76
133
|
def parent(self) -> Optional[Union[DslWorkspaceElement, DslElement]]:
|
77
134
|
return self._element.parent
|
78
135
|
|
136
|
+
@property
|
137
|
+
def children(self) -> FlattenElement:
|
138
|
+
return FlattenElement(self._element.children)
|
139
|
+
|
79
140
|
@property
|
80
141
|
def sources(self) -> FlattenElement:
|
81
142
|
return FlattenElement(self._element.sources)
|
@@ -86,23 +147,52 @@ class Element:
|
|
86
147
|
|
87
148
|
@property
|
88
149
|
def properties(self) -> Dict[str, Any]:
|
89
|
-
|
150
|
+
if self._element.model.properties is not None:
|
151
|
+
return self._element.model.properties
|
152
|
+
return dict()
|
90
153
|
|
91
154
|
@property
|
92
155
|
def group(self) -> Optional[str]:
|
156
|
+
|
93
157
|
"""
|
94
|
-
Returns the group of the element. The group is a string that is used to
|
158
|
+
Returns the group of the element (if applicable). The group is a string that is used to
|
95
159
|
group elements in the Structurizr DSL.
|
96
160
|
"""
|
97
|
-
|
161
|
+
|
162
|
+
if _has_group_attribute(self._element):
|
98
163
|
return self._element.model.group
|
99
164
|
return None
|
100
165
|
|
166
|
+
@property
|
167
|
+
def environment(self) -> Optional[str]:
|
168
|
+
|
169
|
+
"""
|
170
|
+
Returns the environment of the element (if applicable). The environment
|
171
|
+
is a string that is used to group deployment nodes and instances in the
|
172
|
+
Structurizr DSL.
|
173
|
+
"""
|
174
|
+
|
175
|
+
if _has_environment_attribute(self._element):
|
176
|
+
return self._element.model.environment
|
177
|
+
return None
|
178
|
+
|
179
|
+
def is_instance_of(self, other: DslElement) -> bool:
|
180
|
+
|
181
|
+
"""
|
182
|
+
Returns `True` if the element is an instance of the other element.
|
183
|
+
"""
|
184
|
+
|
185
|
+
if isinstance(self._element, SoftwareSystemInstance):
|
186
|
+
return self._element.model.softwareSystemId == other.model.id
|
187
|
+
elif isinstance(self._element, ContainerInstance):
|
188
|
+
return self._element.model.containerId == other.model.id
|
189
|
+
return False
|
190
|
+
|
101
191
|
def __eq__(self, element: object) -> bool:
|
102
192
|
return isinstance(element, type(self._element)) and\
|
103
193
|
element.model.id == self._element.model.id
|
104
194
|
|
105
|
-
class
|
195
|
+
class RelationshipExpression:
|
106
196
|
|
107
197
|
def __init__(self, relationship: DslRelationship):
|
108
198
|
self._relationship = relationship
|
@@ -121,12 +211,12 @@ class Relationship:
|
|
121
211
|
return self._relationship.model.technology
|
122
212
|
|
123
213
|
@property
|
124
|
-
def source(self) ->
|
125
|
-
return
|
214
|
+
def source(self) -> ElementExpression:
|
215
|
+
return ElementExpression(self._relationship.source)
|
126
216
|
|
127
217
|
@property
|
128
|
-
def destination(self) ->
|
129
|
-
return
|
218
|
+
def destination(self) -> ElementExpression:
|
219
|
+
return ElementExpression(self._relationship.destination)
|
130
220
|
|
131
221
|
@property
|
132
222
|
def properties(self) -> Dict[str, Any]:
|
@@ -146,10 +236,10 @@ class Expression:
|
|
146
236
|
|
147
237
|
def __init__(
|
148
238
|
self,
|
149
|
-
include_elements: Iterable[Union[DslElement, Callable[[
|
150
|
-
exclude_elements: Iterable[Union[DslElement, Callable[[
|
151
|
-
include_relationships: Iterable[Union[DslElement, Callable[[
|
152
|
-
exclude_relationships: Iterable[Union[DslElement, Callable[[
|
239
|
+
include_elements: Iterable[Union[DslElement, Callable[[WorkspaceExpression, ElementExpression], bool]]]=[lambda w, e: True],
|
240
|
+
exclude_elements: Iterable[Union[DslElement, Callable[[WorkspaceExpression, ElementExpression], bool]]]=[],
|
241
|
+
include_relationships: Iterable[Union[DslElement, Callable[[WorkspaceExpression, RelationshipExpression], bool]]]=[lambda w, e: True],
|
242
|
+
exclude_relationships: Iterable[Union[DslElement, Callable[[WorkspaceExpression, RelationshipExpression], bool]]]=[],
|
153
243
|
) -> 'None':
|
154
244
|
self._include_elements = include_elements
|
155
245
|
self._exclude_elements = exclude_elements
|
@@ -171,12 +261,12 @@ class Expression:
|
|
171
261
|
if isinstance(f, DslElement):
|
172
262
|
includes.append(f == element)
|
173
263
|
else:
|
174
|
-
includes.append(f(workspace,
|
264
|
+
includes.append(f(WorkspaceExpression(workspace), ElementExpression(element)))
|
175
265
|
for f in self._exclude_elements:
|
176
266
|
if isinstance(f, DslElement):
|
177
267
|
excludes.append(f == element)
|
178
268
|
else:
|
179
|
-
excludes.append(f(workspace,
|
269
|
+
excludes.append(f(WorkspaceExpression(workspace), ElementExpression(element)))
|
180
270
|
if any(includes) and not any(excludes):
|
181
271
|
filtered_elements.append(element)
|
182
272
|
|
@@ -198,9 +288,9 @@ class Expression:
|
|
198
288
|
filtered_relationships: List[DslRelationship] = []
|
199
289
|
|
200
290
|
def _is_relationship_of_excluded_elements(
|
201
|
-
workspace:
|
202
|
-
relationship:
|
203
|
-
exclude_element_predicates: Iterable[Union[DslElement, Callable[[
|
291
|
+
workspace: WorkspaceExpression,
|
292
|
+
relationship: RelationshipExpression,
|
293
|
+
exclude_element_predicates: Iterable[Union[DslElement, Callable[[WorkspaceExpression, ElementExpression], bool]]],
|
204
294
|
) -> bool:
|
205
295
|
for f in exclude_element_predicates:
|
206
296
|
if isinstance(f, DslElement):
|
@@ -222,20 +312,20 @@ class Expression:
|
|
222
312
|
if isinstance(f, DslElement):
|
223
313
|
includes.append(f == relationship)
|
224
314
|
else:
|
225
|
-
includes.append(f(workspace,
|
315
|
+
includes.append(f(WorkspaceExpression(workspace), RelationshipExpression(relationship)))
|
226
316
|
|
227
317
|
for f in self._exclude_relationships:
|
228
318
|
if isinstance(f, DslElement):
|
229
319
|
excludes.append(f == relationship)
|
230
320
|
else:
|
231
|
-
excludes.append(f(workspace,
|
321
|
+
excludes.append(f(WorkspaceExpression(workspace), RelationshipExpression(relationship)))
|
232
322
|
|
233
323
|
# Also exclude relationships whose source or destination elements
|
234
324
|
# are excluded.
|
235
325
|
excludes.append(
|
236
326
|
_is_relationship_of_excluded_elements(
|
237
|
-
workspace,
|
238
|
-
|
327
|
+
WorkspaceExpression(workspace),
|
328
|
+
RelationshipExpression(relationship),
|
239
329
|
self._exclude_elements,
|
240
330
|
)
|
241
331
|
)
|
@@ -25,6 +25,10 @@ Model = Union[
|
|
25
25
|
buildzr.models.SoftwareSystem,
|
26
26
|
buildzr.models.Container,
|
27
27
|
buildzr.models.Component,
|
28
|
+
buildzr.models.DeploymentNode,
|
29
|
+
buildzr.models.InfrastructureNode,
|
30
|
+
buildzr.models.SoftwareSystemInstance,
|
31
|
+
buildzr.models.ContainerInstance,
|
28
32
|
]
|
29
33
|
|
30
34
|
TSrc = TypeVar('TSrc', bound='DslElement', contravariant=True)
|
@@ -205,4 +209,77 @@ class DslViewElement(ABC):
|
|
205
209
|
@property
|
206
210
|
@abstractmethod
|
207
211
|
def model(self) -> ViewModel:
|
212
|
+
pass
|
213
|
+
|
214
|
+
class DslElementInstance(DslElement):
|
215
|
+
|
216
|
+
Model = Union[
|
217
|
+
buildzr.models.SoftwareSystemInstance,
|
218
|
+
buildzr.models.ContainerInstance,
|
219
|
+
]
|
220
|
+
|
221
|
+
@property
|
222
|
+
@abstractmethod
|
223
|
+
def model(self) -> Model:
|
224
|
+
pass
|
225
|
+
|
226
|
+
@property
|
227
|
+
def parent(self) -> Optional['DslDeploymentNodeElement']:
|
228
|
+
pass
|
229
|
+
|
230
|
+
@property
|
231
|
+
def tags(self) -> Set[str]:
|
232
|
+
pass
|
233
|
+
|
234
|
+
@property
|
235
|
+
def element(self) -> DslElement:
|
236
|
+
pass
|
237
|
+
|
238
|
+
class DslInfrastructureNodeElement(DslElement):
|
239
|
+
|
240
|
+
@property
|
241
|
+
@abstractmethod
|
242
|
+
def model(self) -> buildzr.models.InfrastructureNode:
|
243
|
+
pass
|
244
|
+
|
245
|
+
@property
|
246
|
+
def tags(self) -> Set[str]:
|
247
|
+
pass
|
248
|
+
|
249
|
+
@property
|
250
|
+
@abstractmethod
|
251
|
+
def parent(self) -> Optional['DslDeploymentNodeElement']:
|
252
|
+
pass
|
253
|
+
|
254
|
+
class DslDeploymentNodeElement(DslElement):
|
255
|
+
|
256
|
+
@property
|
257
|
+
@abstractmethod
|
258
|
+
def model(self) -> buildzr.models.DeploymentNode:
|
259
|
+
pass
|
260
|
+
|
261
|
+
@property
|
262
|
+
def tags(self) -> Set[str]:
|
263
|
+
pass
|
264
|
+
|
265
|
+
@property
|
266
|
+
@abstractmethod
|
267
|
+
def parent(self) -> Optional['DslWorkspaceElement']:
|
268
|
+
pass
|
269
|
+
|
270
|
+
@property
|
271
|
+
@abstractmethod
|
272
|
+
def children(self) -> Optional[Sequence[Union[DslElementInstance, 'DslInfrastructureNodeElement', 'DslDeploymentNodeElement']]]:
|
273
|
+
pass
|
274
|
+
|
275
|
+
class DslDeploymentEnvironment(ABC):
|
276
|
+
|
277
|
+
@property
|
278
|
+
@abstractmethod
|
279
|
+
def parent(self) -> Optional[DslWorkspaceElement]:
|
280
|
+
pass
|
281
|
+
|
282
|
+
@property
|
283
|
+
@abstractmethod
|
284
|
+
def children(self) -> Sequence[DslDeploymentNodeElement]:
|
208
285
|
pass
|
buildzr/models/generate.sh
CHANGED
@@ -5,6 +5,15 @@ curl $schema_url > structurizr.yaml
|
|
5
5
|
# Change from 'long' (unsupported) to 'integer'
|
6
6
|
yq -i -y '.components.schemas.Workspace.properties.id.type = "integer"' structurizr.yaml
|
7
7
|
|
8
|
+
# Add `deploymentGroups: List[str]` to the following dataclasses:
|
9
|
+
# - `SoftwareSystemInstance`
|
10
|
+
# - `ContainerInstance`
|
11
|
+
# Because the `deploymentGroups` property is not in the schema, but it's
|
12
|
+
# something that is present in the JSON output if we convert the DSL into JSON
|
13
|
+
# (when using the `deploymentGroup` keyword).
|
14
|
+
yq -i -y '.components.schemas.ContainerInstance.properties.deploymentGroups = {"type": "array", "items": {"type": "string"}}' structurizr.yaml
|
15
|
+
yq -i -y '.components.schemas.SoftwareSystemInstance.properties.deploymentGroups = {"type": "array", "items": {"type": "string"}}' structurizr.yaml
|
16
|
+
|
8
17
|
# Type 'integer' doesn't support 'number' type, but supports the following:
|
9
18
|
# int32, int64, default, date-time, unix-time
|
10
19
|
# yq -i 'select(.components.schemas.*.properties.*.format=="integer" and .components.schemas.*.properties.*.type=="number") .components.schemas.*.properties.*.format="default"' structurizr.yaml
|
buildzr/models/models.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# generated by datamodel-codegen:
|
2
2
|
# filename: structurizr.yaml
|
3
|
-
# timestamp:
|
3
|
+
# timestamp: 2025-05-20T13:19:11+00:00
|
4
4
|
|
5
5
|
from __future__ import annotations
|
6
6
|
|
@@ -1098,6 +1098,7 @@ class SoftwareSystemInstance:
|
|
1098
1098
|
"""
|
1099
1099
|
The set of HTTP-based health checks for this software system instance.
|
1100
1100
|
"""
|
1101
|
+
deploymentGroups: Optional[List[str]] = None
|
1101
1102
|
|
1102
1103
|
|
1103
1104
|
@dataclass
|
@@ -1142,6 +1143,7 @@ class ContainerInstance:
|
|
1142
1143
|
"""
|
1143
1144
|
The set of HTTP-based health checks for this container instance.
|
1144
1145
|
"""
|
1146
|
+
deploymentGroups: Optional[List[str]] = None
|
1145
1147
|
|
1146
1148
|
|
1147
1149
|
@dataclass
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: buildzr
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.14
|
4
4
|
Summary: Structurizr for the `buildzr`s 🧱⚒️
|
5
5
|
Project-URL: homepage, https://github.com/amirulmenjeni/buildzr
|
6
6
|
Project-URL: issues, https://github.com/amirulmenjeni/buildzr/issues
|
@@ -11,12 +11,10 @@ Classifier: Development Status :: 3 - Alpha
|
|
11
11
|
Classifier: License :: OSI Approved :: MIT License
|
12
12
|
Classifier: Operating System :: OS Independent
|
13
13
|
Classifier: Programming Language :: Python :: 3
|
14
|
-
Classifier: Programming Language :: Python :: 3.8
|
15
|
-
Classifier: Programming Language :: Python :: 3.9
|
16
14
|
Classifier: Programming Language :: Python :: 3.10
|
17
15
|
Classifier: Programming Language :: Python :: 3.11
|
18
16
|
Classifier: Programming Language :: Python :: 3.12
|
19
|
-
Requires-Python: >=3.
|
17
|
+
Requires-Python: >=3.10
|
20
18
|
Requires-Dist: pyhumps==3.8.0
|
21
19
|
Requires-Dist: pytest>=8.3.3
|
22
20
|
Provides-Extra: dev
|
@@ -0,0 +1,24 @@
|
|
1
|
+
buildzr/__about__.py,sha256=Re70LR9m7cAhH54rssYyZTF_NDTijR8Lo_1hWF3ofTI,19
|
2
|
+
buildzr/__init__.py,sha256=hY-cOdjBQcz0v2m8cBF1oEJFIbcR3sWI-xww--0RKSo,99
|
3
|
+
buildzr/dsl/__init__.py,sha256=qJ41IXcabKUjvwMzgfUCFdmDnSBBK7VFADpoVdOYLKQ,538
|
4
|
+
buildzr/dsl/color.py,sha256=at5lo3WgLEDCjrnbu37ra1p1TjzdB51sxeW7pBMC_7U,4019
|
5
|
+
buildzr/dsl/dsl.py,sha256=qqKlz8KNzAxdwsdPM5YhVE2JhwYMRJ9o7KbMMarQGlw,83579
|
6
|
+
buildzr/dsl/explorer.py,sha256=m1nI0Rd0bXGj1uXDgTC4DJhc2FMma522IepPNvQF07E,1853
|
7
|
+
buildzr/dsl/expression.py,sha256=TLSe-uGlHhNqMPQU_5IRLIP-ZGsQ_ts3DquBMcYlwBg,11777
|
8
|
+
buildzr/dsl/relations.py,sha256=GBs5epr9uuExU_H6VcP4XY76iJPQ__rz_d8tZlhhWQ4,11891
|
9
|
+
buildzr/dsl/factory/__init__.py,sha256=niaYqvNPUWJejoPyRyABUtzVsoxaV8eSjzS9dta4bMI,30
|
10
|
+
buildzr/dsl/factory/gen_id.py,sha256=LnaeOCMngSvYkcGnuARjQYoUVWdcOoNHO2EHe6PMGco,538
|
11
|
+
buildzr/dsl/interfaces/__init__.py,sha256=3InvtLOyYNm9nCPFAkYVbunBQ4AVSdHZ46Ah0CkoLNM,294
|
12
|
+
buildzr/dsl/interfaces/interfaces.py,sha256=hLISS0cAfhHqhTWRI5UPKKzqmsPuHmFgdx3JjzBA01U,6750
|
13
|
+
buildzr/encoders/__init__.py,sha256=suID63Ay-023T0uKD25EAoGYmAMTa9AKxIjioccpiPM,32
|
14
|
+
buildzr/encoders/encoder.py,sha256=n8WLVMrisykBTLTr1z6PAxgqhqW2dFRZhSupOuMdx_A,3235
|
15
|
+
buildzr/models/__init__.py,sha256=SRfF7oDVlOOAi6nGKiJIUK6B_arqYLO9iSMp-2IZZps,21
|
16
|
+
buildzr/models/generate.sh,sha256=EJ63d4cYmRnMFzc3hIR6bro44PXYEOt3EE9BxY4F8cU,1670
|
17
|
+
buildzr/models/models.py,sha256=NJOFYiRQ2i_1gP2ajPNpEfVLAz-1iCqqt1gPOHDPIks,42587
|
18
|
+
buildzr/sinks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
|
+
buildzr/sinks/interfaces.py,sha256=LOZekP4WNjomD5J5f3FnZTwGj0aXMr6RbrvyFV5zn0E,383
|
20
|
+
buildzr/sinks/json_sink.py,sha256=onKOZTpwOQfeMEj1ONkuIEHBAQhx4yQSqqI_lgZBaP8,777
|
21
|
+
buildzr-0.0.14.dist-info/METADATA,sha256=CkcJWUlnCfXDHZQwMZWhbnxTgCkOIWDdoJI4n2dl4ZM,6480
|
22
|
+
buildzr-0.0.14.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
23
|
+
buildzr-0.0.14.dist-info/licenses/LICENSE.md,sha256=e8e6W6tL4MbBY-c-gXMgDbaMf_BnaQDQv4Yoy42b-CI,1070
|
24
|
+
buildzr-0.0.14.dist-info/RECORD,,
|
buildzr-0.0.12.dist-info/RECORD
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
buildzr/__about__.py,sha256=BCu0JmKIBuKGzB3jxd2V1AqofeA6ZLJuDN4qaEsLYbg,18
|
2
|
-
buildzr/__init__.py,sha256=hY-cOdjBQcz0v2m8cBF1oEJFIbcR3sWI-xww--0RKSo,99
|
3
|
-
buildzr/dsl/__init__.py,sha256=k0G9blhA3NSzCBs1dSfBNzCh0iDS_ylkzS_5a3pqrSY,375
|
4
|
-
buildzr/dsl/color.py,sha256=at5lo3WgLEDCjrnbu37ra1p1TjzdB51sxeW7pBMC_7U,4019
|
5
|
-
buildzr/dsl/dsl.py,sha256=7OEz2JXm_1s7RN5G3wauwuBNly6odi19wPfpwC1FQI4,52601
|
6
|
-
buildzr/dsl/explorer.py,sha256=GuQihoEvmTwiriXT3X8oasJ_U65ERyKJeJ2WW-S9D84,1389
|
7
|
-
buildzr/dsl/expression.py,sha256=j847pBVQTvLbpxU1SB8ZYPbXO24SN-evprjAfkS6AGo,8258
|
8
|
-
buildzr/dsl/relations.py,sha256=GBs5epr9uuExU_H6VcP4XY76iJPQ__rz_d8tZlhhWQ4,11891
|
9
|
-
buildzr/dsl/factory/__init__.py,sha256=niaYqvNPUWJejoPyRyABUtzVsoxaV8eSjzS9dta4bMI,30
|
10
|
-
buildzr/dsl/factory/gen_id.py,sha256=LnaeOCMngSvYkcGnuARjQYoUVWdcOoNHO2EHe6PMGco,538
|
11
|
-
buildzr/dsl/interfaces/__init__.py,sha256=GRzfjdDxAUaZ-2n-eP4YaGLy3b0_giHhMshGqoj9rbo,176
|
12
|
-
buildzr/dsl/interfaces/interfaces.py,sha256=OYOS-eGlkadGWXvcLSP1Qs9AnJfhtoJGh9UqJRC8gDk,5079
|
13
|
-
buildzr/encoders/__init__.py,sha256=suID63Ay-023T0uKD25EAoGYmAMTa9AKxIjioccpiPM,32
|
14
|
-
buildzr/encoders/encoder.py,sha256=n8WLVMrisykBTLTr1z6PAxgqhqW2dFRZhSupOuMdx_A,3235
|
15
|
-
buildzr/models/__init__.py,sha256=SRfF7oDVlOOAi6nGKiJIUK6B_arqYLO9iSMp-2IZZps,21
|
16
|
-
buildzr/models/generate.sh,sha256=924UoEXr5WBZ926TZfRgEQGHwBqtLGU5k0G2UfExLEg,1061
|
17
|
-
buildzr/models/models.py,sha256=0LhLG1wmbt4dvROV5MEBZLLoxPbMpkUsOqNz525cynE,42489
|
18
|
-
buildzr/sinks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
|
-
buildzr/sinks/interfaces.py,sha256=LOZekP4WNjomD5J5f3FnZTwGj0aXMr6RbrvyFV5zn0E,383
|
20
|
-
buildzr/sinks/json_sink.py,sha256=onKOZTpwOQfeMEj1ONkuIEHBAQhx4yQSqqI_lgZBaP8,777
|
21
|
-
buildzr-0.0.12.dist-info/METADATA,sha256=W2raGn9MDY9YAWC5wbwm8mwfwUbF8RQ2VXDaLsqLjPk,6579
|
22
|
-
buildzr-0.0.12.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
23
|
-
buildzr-0.0.12.dist-info/licenses/LICENSE.md,sha256=e8e6W6tL4MbBY-c-gXMgDbaMf_BnaQDQv4Yoy42b-CI,1070
|
24
|
-
buildzr-0.0.12.dist-info/RECORD,,
|
File without changes
|
File without changes
|