buildzr 0.0.1__tar.gz → 0.0.2__tar.gz

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.
Files changed (40) hide show
  1. {buildzr-0.0.1 → buildzr-0.0.2}/PKG-INFO +15 -5
  2. {buildzr-0.0.1 → buildzr-0.0.2}/README.md +14 -4
  3. buildzr-0.0.2/buildzr/__about__.py +1 -0
  4. buildzr-0.0.1/buildzr/__about__.py +0 -1
  5. {buildzr-0.0.1 → buildzr-0.0.2}/.gitignore +0 -0
  6. {buildzr-0.0.1 → buildzr-0.0.2}/CONTRIBUTING.md +0 -0
  7. {buildzr-0.0.1 → buildzr-0.0.2}/LICENSE.md +0 -0
  8. {buildzr-0.0.1 → buildzr-0.0.2}/buildzr/__init__.py +0 -0
  9. {buildzr-0.0.1 → buildzr-0.0.2}/buildzr/dsl/__init__.py +0 -0
  10. {buildzr-0.0.1 → buildzr-0.0.2}/buildzr/dsl/dsl.py +0 -0
  11. {buildzr-0.0.1 → buildzr-0.0.2}/buildzr/dsl/explorer.py +0 -0
  12. {buildzr-0.0.1 → buildzr-0.0.2}/buildzr/dsl/expression.py +0 -0
  13. {buildzr-0.0.1 → buildzr-0.0.2}/buildzr/dsl/factory/__init__.py +0 -0
  14. {buildzr-0.0.1 → buildzr-0.0.2}/buildzr/dsl/factory/gen_id.py +0 -0
  15. {buildzr-0.0.1 → buildzr-0.0.2}/buildzr/dsl/interfaces/__init__.py +0 -0
  16. {buildzr-0.0.1 → buildzr-0.0.2}/buildzr/dsl/interfaces/interfaces.py +0 -0
  17. {buildzr-0.0.1 → buildzr-0.0.2}/buildzr/dsl/relations.py +0 -0
  18. {buildzr-0.0.1 → buildzr-0.0.2}/buildzr/encoders/__init__.py +0 -0
  19. {buildzr-0.0.1 → buildzr-0.0.2}/buildzr/encoders/encoder.py +0 -0
  20. {buildzr-0.0.1 → buildzr-0.0.2}/buildzr/models/__init__.py +0 -0
  21. {buildzr-0.0.1 → buildzr-0.0.2}/buildzr/models/generate.sh +0 -0
  22. {buildzr-0.0.1 → buildzr-0.0.2}/buildzr/models/models.py +0 -0
  23. {buildzr-0.0.1 → buildzr-0.0.2}/pyproject.toml +0 -0
  24. {buildzr-0.0.1 → buildzr-0.0.2}/tests/__init__.py +0 -0
  25. {buildzr-0.0.1 → buildzr-0.0.2}/tests/abstract_builder.py +0 -0
  26. {buildzr-0.0.1 → buildzr-0.0.2}/tests/samples/__init__.py +0 -0
  27. {buildzr-0.0.1 → buildzr-0.0.2}/tests/samples/component_view.py +0 -0
  28. {buildzr-0.0.1 → buildzr-0.0.2}/tests/samples/container_view.py +0 -0
  29. {buildzr-0.0.1 → buildzr-0.0.2}/tests/samples/container_view_sugar.py +0 -0
  30. {buildzr-0.0.1 → buildzr-0.0.2}/tests/samples/groups.py +0 -0
  31. {buildzr-0.0.1 → buildzr-0.0.2}/tests/samples/implied_relationships.py +0 -0
  32. {buildzr-0.0.1 → buildzr-0.0.2}/tests/samples/simple.py +0 -0
  33. {buildzr-0.0.1 → buildzr-0.0.2}/tests/samples/simple_dsl.py +0 -0
  34. {buildzr-0.0.1 → buildzr-0.0.2}/tests/samples/system_context_view.py +0 -0
  35. {buildzr-0.0.1 → buildzr-0.0.2}/tests/samples/system_landscape_view.py +0 -0
  36. {buildzr-0.0.1 → buildzr-0.0.2}/tests/test_dsl.py +0 -0
  37. {buildzr-0.0.1 → buildzr-0.0.2}/tests/test_explorer.py +0 -0
  38. {buildzr-0.0.1 → buildzr-0.0.2}/tests/test_expression.py +0 -0
  39. {buildzr-0.0.1 → buildzr-0.0.2}/tests/test_views.py +0 -0
  40. {buildzr-0.0.1 → buildzr-0.0.2}/tests/test_workspaces.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: buildzr
3
- Version: 0.0.1
3
+ Version: 0.0.2
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
@@ -28,19 +28,26 @@ Requires-Dist: pytest-mypy==0.10.3; extra == 'dev'
28
28
  Requires-Dist: yq==3.4.3; extra == 'dev'
29
29
  Description-Content-Type: text/markdown
30
30
 
31
+ test: 1
31
32
  # Structurizr for the `buildzr`s 🧱⚒️
32
33
 
33
34
  `buildzr` is a [Structurizr](https://structurizr.com/) authoring tool for Python programmers.
34
35
 
35
36
  If you're not familiar with Structurizr, it is both an open standard (see [Structurizr JSON schema](https://github.com/structurizr/json)) and a [set of tools](https://docs.structurizr.com/usage) for building software architecture diagrams as code. Structurizr derive its architecture modeling paradigm based on the [C4 model](https://c4model.com/), the modeling language for visualizing software architecture.
36
37
 
37
- `buildzr` offers flexible and fluent APIs to write software architecture models based on the C4 model, leveraging the standard Structurizr JSON schema for interoperability with various rendering and authoring tools.
38
+ `buildzr` offers flexible and fluent APIs to write software architecture models,
39
+ leveraging the standard Structurizr JSON schema for interoperability with
40
+ various rendering and authoring tools.
38
41
 
39
42
  # Quick Start 🚀
40
43
 
41
44
  ## Installation
42
45
 
43
- _TODO_
46
+ You can use `pip` to install the `buildzr` package:
47
+
48
+ ```bash
49
+ pip install buildzr
50
+ ```
44
51
 
45
52
  ## Creating a workspace
46
53
 
@@ -117,7 +124,10 @@ with open(os.path.join(os.path.curdir, f"{__file__.split('.')[0]}.json"), 'w', e
117
124
  json.dump(w.model, f, ensure_ascii=False, indent=4, cls=JsonEncoder)
118
125
  ```
119
126
 
120
- That's it 😊!
127
+ Here's a short breakdown on what's happening:
128
+ - In `Workspace(...).contains(...)` method, we define the _static_ C4 models (i.e., `Person`, `SoftwareSystem`, and the `Container`s in the software system).
129
+ - In the `Workspace(...).contains(...).where(...)`, we define the relationships between the C4 models in the workspace. We access the models via the `w` parameter in the `lambda` function, and create the relationships using the `>>` operators.
130
+ - Finally, once we have all the models and their relationships defined, we use (and re-use!) the static models to create multiple views to tell different stories and show various narrative to help document your software architecture.
121
131
 
122
132
  The JSON output can be found [here](examples/system_context_and_container_view.json). You can also try out https://structurizr.com/json to see how this workspace will be rendered.
123
133
 
@@ -131,7 +141,7 @@ The JSON output can be found [here](examples/system_context_and_container_view.j
131
141
 
132
142
  ✅ Writing architecture diagrams in Python allows you to integrate programmability and automation into your software architecture diagramming and documentation workflow.
133
143
 
134
- ✅ Uses the familiar Python programming language to write predicates for including/excluding elements and relationships in views.
144
+ ✅ Uses the familiar Python programming language to write software architecture diagrams!
135
145
 
136
146
  # Contributing
137
147
 
@@ -1,16 +1,23 @@
1
+ test: 1
1
2
  # Structurizr for the `buildzr`s 🧱⚒️
2
3
 
3
4
  `buildzr` is a [Structurizr](https://structurizr.com/) authoring tool for Python programmers.
4
5
 
5
6
  If you're not familiar with Structurizr, it is both an open standard (see [Structurizr JSON schema](https://github.com/structurizr/json)) and a [set of tools](https://docs.structurizr.com/usage) for building software architecture diagrams as code. Structurizr derive its architecture modeling paradigm based on the [C4 model](https://c4model.com/), the modeling language for visualizing software architecture.
6
7
 
7
- `buildzr` offers flexible and fluent APIs to write software architecture models based on the C4 model, leveraging the standard Structurizr JSON schema for interoperability with various rendering and authoring tools.
8
+ `buildzr` offers flexible and fluent APIs to write software architecture models,
9
+ leveraging the standard Structurizr JSON schema for interoperability with
10
+ various rendering and authoring tools.
8
11
 
9
12
  # Quick Start 🚀
10
13
 
11
14
  ## Installation
12
15
 
13
- _TODO_
16
+ You can use `pip` to install the `buildzr` package:
17
+
18
+ ```bash
19
+ pip install buildzr
20
+ ```
14
21
 
15
22
  ## Creating a workspace
16
23
 
@@ -87,7 +94,10 @@ with open(os.path.join(os.path.curdir, f"{__file__.split('.')[0]}.json"), 'w', e
87
94
  json.dump(w.model, f, ensure_ascii=False, indent=4, cls=JsonEncoder)
88
95
  ```
89
96
 
90
- That's it 😊!
97
+ Here's a short breakdown on what's happening:
98
+ - In `Workspace(...).contains(...)` method, we define the _static_ C4 models (i.e., `Person`, `SoftwareSystem`, and the `Container`s in the software system).
99
+ - In the `Workspace(...).contains(...).where(...)`, we define the relationships between the C4 models in the workspace. We access the models via the `w` parameter in the `lambda` function, and create the relationships using the `>>` operators.
100
+ - Finally, once we have all the models and their relationships defined, we use (and re-use!) the static models to create multiple views to tell different stories and show various narrative to help document your software architecture.
91
101
 
92
102
  The JSON output can be found [here](examples/system_context_and_container_view.json). You can also try out https://structurizr.com/json to see how this workspace will be rendered.
93
103
 
@@ -101,7 +111,7 @@ The JSON output can be found [here](examples/system_context_and_container_view.j
101
111
 
102
112
  ✅ Writing architecture diagrams in Python allows you to integrate programmability and automation into your software architecture diagramming and documentation workflow.
103
113
 
104
- ✅ Uses the familiar Python programming language to write predicates for including/excluding elements and relationships in views.
114
+ ✅ Uses the familiar Python programming language to write software architecture diagrams!
105
115
 
106
116
  # Contributing
107
117
 
@@ -0,0 +1 @@
1
+ VERSION = "0.0.2"
@@ -1 +0,0 @@
1
- VERSION = "0.0.1"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes