pyegeria 5.4.3.4__py3-none-any.whl → 5.4.4__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.
Files changed (208) hide show
  1. commands/cat/debug_log.2025-09-04_08-21-58_788009.log.zip +0 -0
  2. commands/cat/debug_log.2025-09-05_09-37-53_062579.log.zip +0 -0
  3. commands/cat/list_format_set.py +3 -1
  4. md_processing/__init__.py +9 -1
  5. md_processing/data/commands.json +7181 -1400
  6. md_processing/data/generated_format_sets.json +4137 -0
  7. md_processing/data/generated_format_sets.py +51 -0
  8. md_processing/dr_egeria.py +14 -2
  9. md_processing/md_commands/ext_ref_commands.py +543 -0
  10. md_processing/md_commands/old_solution_architect_commands.py +1139 -0
  11. md_processing/md_commands/solution_architect_commands.py +26 -59
  12. md_processing/md_processing_utils/debug_log +1 -3
  13. md_processing/md_processing_utils/dr-egeria-help-2025-09-09T11:10:03.md +3305 -0
  14. md_processing/md_processing_utils/gen_format_sets.py +422 -0
  15. md_processing/md_processing_utils/md_processing_constants.py +19 -1
  16. pyegeria/_output_formats.py +239 -85
  17. pyegeria/collection_manager.py +3 -3
  18. pyegeria/egeria_tech_client.py +3 -0
  19. pyegeria/external_references.py +1794 -0
  20. pyegeria/solution_architect.py +290 -485
  21. {pyegeria-5.4.3.4.dist-info → pyegeria-5.4.4.dist-info}/METADATA +1 -1
  22. {pyegeria-5.4.3.4.dist-info → pyegeria-5.4.4.dist-info}/RECORD +25 -199
  23. commands/.DS_Store +0 -0
  24. commands/cat/.DS_Store +0 -0
  25. commands/cat/.env +0 -8
  26. commands/cat/debug_log.2025-08-29_07-07-27_848189.log.zip +0 -0
  27. commands/cat/debug_log.2025-08-30_21-15-48_528443.log.zip +0 -0
  28. commands/cat/debug_log.log +0 -7276
  29. commands/cat/logs/pyegeria.log +0 -90
  30. commands/cli/debug_log.log +0 -0
  31. commands/doc/.DS_Store +0 -0
  32. commands/ops/logs/pyegeria.log +0 -0
  33. md_processing/.DS_Store +0 -0
  34. md_processing/.idea/.gitignore +0 -8
  35. md_processing/.idea/inspectionProfiles/Project_Default.xml +0 -59
  36. md_processing/.idea/md_processing.iml +0 -15
  37. md_processing/.idea/modules.xml +0 -8
  38. md_processing/.idea/sonarlint/issuestore/index.pb +0 -0
  39. md_processing/.idea/sonarlint/securityhotspotstore/index.pb +0 -0
  40. md_processing/.idea/vcs.xml +0 -6
  41. md_processing/.idea/workspace.xml +0 -107
  42. md_processing/dr_egeria_inbox/Derive-Dr-Gov-Defs.md +0 -8
  43. md_processing/dr_egeria_inbox/Dr.Egeria Templates.md +0 -873
  44. md_processing/dr_egeria_inbox/arch_test.md +0 -57
  45. md_processing/dr_egeria_inbox/archive/dr_egeria_intro.md +0 -254
  46. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_more_terms.md +0 -696
  47. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part1.md +0 -254
  48. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part2.md +0 -298
  49. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part3.md +0 -608
  50. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part4.md +0 -94
  51. md_processing/dr_egeria_inbox/archive/freddie_intro.md +0 -284
  52. md_processing/dr_egeria_inbox/archive/freddie_intro_orig.md +0 -275
  53. md_processing/dr_egeria_inbox/archive/test-term.md +0 -110
  54. md_processing/dr_egeria_inbox/cat_test.md +0 -100
  55. md_processing/dr_egeria_inbox/collections.md +0 -39
  56. md_processing/dr_egeria_inbox/data_designer_debug.log +0 -6
  57. md_processing/dr_egeria_inbox/data_designer_out.md +0 -60
  58. md_processing/dr_egeria_inbox/data_designer_search_test.md +0 -11
  59. md_processing/dr_egeria_inbox/data_field.md +0 -54
  60. md_processing/dr_egeria_inbox/data_spec.md +0 -77
  61. md_processing/dr_egeria_inbox/data_spec_test.md +0 -2014
  62. md_processing/dr_egeria_inbox/data_test.md +0 -179
  63. md_processing/dr_egeria_inbox/data_test2.md +0 -429
  64. md_processing/dr_egeria_inbox/data_test3.md +0 -462
  65. md_processing/dr_egeria_inbox/dr_egeria_data_designer_1.md +0 -124
  66. md_processing/dr_egeria_inbox/dr_egeria_intro_categories.md +0 -168
  67. md_processing/dr_egeria_inbox/dr_egeria_intro_part1.md +0 -280
  68. md_processing/dr_egeria_inbox/dr_egeria_intro_part2.md +0 -318
  69. md_processing/dr_egeria_inbox/dr_egeria_intro_part3.md +0 -1073
  70. md_processing/dr_egeria_inbox/dr_egeria_isc1.md +0 -44
  71. md_processing/dr_egeria_inbox/generated_help_report.md +0 -9
  72. md_processing/dr_egeria_inbox/generated_help_terms.md +0 -842
  73. md_processing/dr_egeria_inbox/glossary_list.md +0 -5
  74. md_processing/dr_egeria_inbox/glossary_search_test.md +0 -40
  75. md_processing/dr_egeria_inbox/glossary_test1.md +0 -378
  76. md_processing/dr_egeria_inbox/gov_def.md +0 -718
  77. md_processing/dr_egeria_inbox/gov_def2.md +0 -447
  78. md_processing/dr_egeria_inbox/img.png +0 -0
  79. md_processing/dr_egeria_inbox/output_tests.md +0 -114
  80. md_processing/dr_egeria_inbox/product.md +0 -219
  81. md_processing/dr_egeria_inbox/rel.md +0 -8
  82. md_processing/dr_egeria_inbox/sb.md +0 -119
  83. md_processing/dr_egeria_inbox/solution-components.md +0 -136
  84. md_processing/dr_egeria_inbox/solution_blueprints.md +0 -118
  85. md_processing/dr_egeria_inbox/synonym_test.md +0 -42
  86. md_processing/dr_egeria_inbox/t2.md +0 -268
  87. md_processing/dr_egeria_outbox/.DS_Store +0 -0
  88. md_processing/dr_egeria_outbox/.obsidian/app.json +0 -1
  89. md_processing/dr_egeria_outbox/.obsidian/appearance.json +0 -1
  90. md_processing/dr_egeria_outbox/.obsidian/community-plugins.json +0 -7
  91. md_processing/dr_egeria_outbox/.obsidian/core-plugins.json +0 -33
  92. md_processing/dr_egeria_outbox/.obsidian/plugins/buttons/main.js +0 -5164
  93. md_processing/dr_egeria_outbox/.obsidian/plugins/buttons/manifest.json +0 -10
  94. md_processing/dr_egeria_outbox/.obsidian/plugins/buttons/styles.css +0 -624
  95. md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/data.json +0 -10
  96. md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/main.js +0 -4459
  97. md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/manifest.json +0 -10
  98. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/data.json +0 -3
  99. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/main.js +0 -153
  100. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/manifest.json +0 -11
  101. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/styles.css +0 -1
  102. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/main.js +0 -500
  103. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/manifest.json +0 -12
  104. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/styles.css +0 -1
  105. md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/data.json +0 -38
  106. md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/main.js +0 -37
  107. md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/manifest.json +0 -11
  108. md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/styles.css +0 -220
  109. md_processing/dr_egeria_outbox/.obsidian/types.json +0 -28
  110. md_processing/dr_egeria_outbox/.obsidian/workspace.json +0 -270
  111. md_processing/dr_egeria_outbox/Button Test.md +0 -11
  112. md_processing/dr_egeria_outbox/Scripts/.DS_Store +0 -0
  113. md_processing/dr_egeria_outbox/Scripts/sendRest.js +0 -24
  114. md_processing/dr_egeria_outbox/Templates/sendToApi.md.md +0 -17
  115. md_processing/dr_egeria_outbox/Untitled.canvas +0 -1
  116. md_processing/dr_egeria_outbox/monday/processed-2025-09-01 09:26-product.md +0 -210
  117. md_processing/dr_egeria_outbox/monday/processed-2025-09-01 14:03-product.md +0 -209
  118. md_processing/dr_egeria_outbox/monday/processed-2025-09-01 14:24-product.md +0 -263
  119. md_processing/dr_egeria_outbox/monday/processed-2025-09-01 16:03-data_spec_test.md +0 -2374
  120. md_processing/dr_egeria_outbox/monday/processed-2025-09-01 16:05-data_spec_test.md +0 -2374
  121. md_processing/dr_egeria_outbox/monday/processed-2025-09-02 08:28-data_spec_test.md +0 -2321
  122. md_processing/dr_egeria_outbox/monday/processed-2025-09-02 08:37-data_spec_test.md +0 -2304
  123. md_processing/dr_egeria_outbox/monday/processed-2025-09-02 08:56-data_spec_test.md +0 -2324
  124. md_processing/dr_egeria_outbox/monday/processed-2025-09-02 09:00-data_spec_test.md +0 -2324
  125. md_processing/dr_egeria_outbox/processed-2025-08-30 16:56-generated_help_terms.md +0 -795
  126. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 15:00-Derive-Dr-Gov-Defs.md +0 -719
  127. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:13-Derive-Dr-Gov-Defs.md +0 -41
  128. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:14-Derive-Dr-Gov-Defs.md +0 -33
  129. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:50-Derive-Dr-Gov-Defs.md +0 -192
  130. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 22:08-gov_def2.md +0 -486
  131. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 22:10-gov_def2.md +0 -486
  132. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 08:53-gov_def2.md +0 -486
  133. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 08:54-gov_def2.md +0 -486
  134. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:03-gov_def2.md +0 -486
  135. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:06-gov_def2.md +0 -486
  136. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:10-gov_def2.md +0 -486
  137. md_processing/family_docs/Data Designer/Create_Data_Class.md +0 -164
  138. md_processing/family_docs/Data Designer/Create_Data_Dictionary.md +0 -30
  139. md_processing/family_docs/Data Designer/Create_Data_Field.md +0 -162
  140. md_processing/family_docs/Data Designer/Create_Data_Specification.md +0 -36
  141. md_processing/family_docs/Data Designer/Create_Data_Structure.md +0 -38
  142. md_processing/family_docs/Data Designer/View_Data_Classes.md +0 -78
  143. md_processing/family_docs/Data Designer/View_Data_Dictionaries.md +0 -78
  144. md_processing/family_docs/Data Designer/View_Data_Fields.md +0 -78
  145. md_processing/family_docs/Data Designer/View_Data_Specifications.md +0 -78
  146. md_processing/family_docs/Data Designer/View_Data_Structures.md +0 -78
  147. md_processing/family_docs/Data Designer.md +0 -842
  148. md_processing/family_docs/Digital Product Manager/Add_Member->Collection.md +0 -42
  149. md_processing/family_docs/Digital Product Manager/Attach_Collection->Resource.md +0 -36
  150. md_processing/family_docs/Digital Product Manager/Create_Agreement.md +0 -96
  151. md_processing/family_docs/Digital Product Manager/Create_Data_Sharing_Agreement.md +0 -72
  152. md_processing/family_docs/Digital Product Manager/Create_DigitalSubscription.md +0 -102
  153. md_processing/family_docs/Digital Product Manager/Create_Digital_Product.md +0 -134
  154. md_processing/family_docs/Digital Product Manager/Link_Agreement_Items.md +0 -60
  155. md_processing/family_docs/Digital Product Manager/Link_Contracts.md +0 -26
  156. md_processing/family_docs/Digital Product Manager/Link_Digital_Product_-_Digital_Product.md +0 -30
  157. md_processing/family_docs/Digital Product Manager/Link_Subscribers.md +0 -48
  158. md_processing/family_docs/Digital Product Manager.md +0 -668
  159. md_processing/family_docs/Glossary/Attach_Category_Parent.md +0 -18
  160. md_processing/family_docs/Glossary/Attach_Term-Term_Relationship.md +0 -26
  161. md_processing/family_docs/Glossary/Create_Category.md +0 -38
  162. md_processing/family_docs/Glossary/Create_Glossary.md +0 -42
  163. md_processing/family_docs/Glossary/Create_Term.md +0 -70
  164. md_processing/family_docs/Glossary.md +0 -206
  165. md_processing/family_docs/Governance Officer/Create_Business_Imperative.md +0 -106
  166. md_processing/family_docs/Governance Officer/Create_Certification_Type.md +0 -112
  167. md_processing/family_docs/Governance Officer/Create_Governance_Approach.md +0 -114
  168. md_processing/family_docs/Governance Officer/Create_Governance_Obligation.md +0 -114
  169. md_processing/family_docs/Governance Officer/Create_Governance_Principle.md +0 -114
  170. md_processing/family_docs/Governance Officer/Create_Governance_Procedure.md +0 -128
  171. md_processing/family_docs/Governance Officer/Create_Governance_Process.md +0 -122
  172. md_processing/family_docs/Governance Officer/Create_Governance_Processing_Purpose.md +0 -106
  173. md_processing/family_docs/Governance Officer/Create_Governance_Responsibility.md +0 -122
  174. md_processing/family_docs/Governance Officer/Create_Governance_Rule.md +0 -122
  175. md_processing/family_docs/Governance Officer/Create_Governance_Strategy.md +0 -106
  176. md_processing/family_docs/Governance Officer/Create_License_Type.md +0 -112
  177. md_processing/family_docs/Governance Officer/Create_Naming_Standard_Rule.md +0 -122
  178. md_processing/family_docs/Governance Officer/Create_Regulation_Article.md +0 -106
  179. md_processing/family_docs/Governance Officer/Create_Regulation_Definition.md +0 -118
  180. md_processing/family_docs/Governance Officer/Create_Security_Access_Control.md +0 -114
  181. md_processing/family_docs/Governance Officer/Create_Security_Group.md +0 -120
  182. md_processing/family_docs/Governance Officer/Create_Service_Level_Objectives.md +0 -122
  183. md_processing/family_docs/Governance Officer/Create_Threat_Definition.md +0 -106
  184. md_processing/family_docs/Governance Officer/Link_Governance_Controls.md +0 -32
  185. md_processing/family_docs/Governance Officer/Link_Governance_Drivers.md +0 -32
  186. md_processing/family_docs/Governance Officer/Link_Governance_Policies.md +0 -32
  187. md_processing/family_docs/Governance Officer/View_Governance_Definitions.md +0 -82
  188. md_processing/family_docs/Governance Officer.md +0 -2412
  189. md_processing/family_docs/Solution Architect/Create_Information_Supply_Chain.md +0 -70
  190. md_processing/family_docs/Solution Architect/Create_Solution_Blueprint.md +0 -44
  191. md_processing/family_docs/Solution Architect/Create_Solution_Component.md +0 -96
  192. md_processing/family_docs/Solution Architect/Create_Solution_Role.md +0 -66
  193. md_processing/family_docs/Solution Architect/Link_Information_Supply_Chain_Peers.md +0 -32
  194. md_processing/family_docs/Solution Architect/Link_Solution_Component_Peers.md +0 -32
  195. md_processing/family_docs/Solution Architect/View_Information_Supply_Chains.md +0 -32
  196. md_processing/family_docs/Solution Architect/View_Solution_Blueprints.md +0 -32
  197. md_processing/family_docs/Solution Architect/View_Solution_Components.md +0 -32
  198. md_processing/family_docs/Solution Architect/View_Solution_Roles.md +0 -32
  199. md_processing/family_docs/Solution Architect.md +0 -490
  200. md_processing/md_commands/old_project_commands.py +0 -164
  201. md_processing/md_processing_utils/debug_log.log +0 -5580
  202. md_processing/md_processing_utils/generated_help_terms.md +0 -842
  203. md_processing/md_processing_utils/logs/pyegeria.log +0 -56
  204. pyegeria/.DS_Store +0 -0
  205. pyegeria/___external_references.py +0 -3255
  206. {pyegeria-5.4.3.4.dist-info → pyegeria-5.4.4.dist-info}/LICENSE +0 -0
  207. {pyegeria-5.4.3.4.dist-info → pyegeria-5.4.4.dist-info}/WHEEL +0 -0
  208. {pyegeria-5.4.3.4.dist-info → pyegeria-5.4.4.dist-info}/entry_points.txt +0 -0
@@ -1,490 +0,0 @@
1
-
2
- # Family: Solution Architect
3
-
4
- ## **Create Information Supply Chain**
5
- > The flow of a particular type of data across a digital landscape.
6
- ### **Display Name**
7
- > **Input Required**: True
8
-
9
- > **Description**: Name of the Information Supply Chain
10
-
11
- > **Alternative Labels**: Name; Display Name; Supply Chain; Supply Chain Name
12
-
13
-
14
- ### **Description**
15
- > **Input Required**: False
16
-
17
- > **Description**: A description of the data structure.
18
-
19
-
20
- ### **Scope**
21
- > **Input Required**: False
22
-
23
- > **Description**: Scope of the supply chain.
24
-
25
-
26
- ### **Purposes**
27
- > **Input Required**: False
28
-
29
- > **Description**: A list of purposes.
30
-
31
- > **Alternative Labels**: Purpose, Purposes
32
-
33
-
34
- ### **Nested Information Supply Chains**
35
- > **Input Required**: False
36
-
37
- > **Description**: A list of supply chains that compose this supply chain.
38
-
39
- > **Alternative Labels**: Nested Supply Chains
40
-
41
-
42
- ### **In Information Supply Chain**
43
- > **Input Required**: False
44
-
45
- > **Description**: Supply chains that this supply chain is in.
46
-
47
- > **Alternative Labels**: In Supply Chain; In Supply Chains; In Information Supply Chains
48
-
49
-
50
- ### **Qualified Name**
51
- > **Input Required**: False
52
-
53
- > **Description**: A unique qualified name for the element. Generated using the qualified name pattern if not user specified.
54
-
55
-
56
- ### **GUID**
57
- > **Input Required**: False
58
-
59
- > **Description**: A system generated unique identifier.
60
-
61
- > **Alternative Labels**: Guid; guid
62
-
63
-
64
- ### **Merge Update**
65
- > **Input Required**: False
66
-
67
- > **Description**: If true, only those attributes specified in the update will be updated; If false, any attributes not provided during the update will be set to None.
68
-
69
- > **Alternative Labels**: Merge
70
-
71
- > **Default Value**: True
72
-
73
-
74
- ___
75
-
76
- ## **Create Solution Blueprint**
77
- > A solution blueprint describes the architecture of a digital service in terms of solution components.
78
- ### **Display Name**
79
- > **Input Required**: True
80
-
81
- > **Description**: Name of the Information Supply Chain
82
-
83
- > **Alternative Labels**: Name; Display Name; Blueprint; Blueprint Name
84
-
85
-
86
- ### **Description**
87
- > **Input Required**: False
88
-
89
- > **Description**: A description of the data structure.
90
-
91
-
92
- ### **Version Identifier**
93
- > **Input Required**: False
94
-
95
- > **Description**: A user supplied version identifier.
96
-
97
-
98
- ### **Solution Components**
99
- > **Input Required**: False
100
-
101
- > **Description**: Solution components that make up the blueprint.
102
-
103
- > **Alternative Labels**: Components; Solution Component; Component
104
-
105
-
106
- ### **Qualified Name**
107
- > **Input Required**: False
108
-
109
- > **Description**: A unique qualified name for the element. Generated using the qualified name pattern if not user specified.
110
-
111
-
112
- ### **GUID**
113
- > **Input Required**: False
114
-
115
- > **Description**: A system generated unique identifier.
116
-
117
- > **Alternative Labels**: Guid; guid
118
-
119
-
120
- ___
121
-
122
- ## **Create Solution Component**
123
- > A reusable solution component.
124
- ### **Display Name**
125
- > **Input Required**: True
126
-
127
- > **Description**: Name of the solution component.
128
-
129
- > **Alternative Labels**: Name; Display Name; Solution Component Name; Component Name
130
-
131
-
132
- ### **Qualified Name**
133
- > **Input Required**: False
134
-
135
- > **Description**: A unique qualified name for the element. Generated using the qualified name pattern if not user specified.
136
-
137
-
138
- ### **Description**
139
- > **Input Required**: False
140
-
141
- > **Description**: A description of the data structure.
142
-
143
-
144
- ### **Solution Component Type**
145
- > **Input Required**: False
146
-
147
- > **Description**: Type of solution component.
148
-
149
- > **Alternative Labels**: Soln Component Type
150
-
151
-
152
- ### **Planned Deployed Implementation Type**
153
- > **Input Required**: False
154
-
155
- > **Description**: The planned implementation type for deployment.
156
-
157
- > **Alternative Labels**: Planned Deployed Impl Type
158
-
159
-
160
- ### **Initial Status**
161
- > **Input Required**: False
162
-
163
- > **Description**: Optional lifecycle status. If not specified, set to ACTIVE. If set to Other then the value in User Defined Status will be used.
164
-
165
- > **Valid Values**: DRAFT; PREPARED; PROPOSED; APPROVED; REJECTED; ACTIVE; DISABLED; DEPRECATED; OTHER
166
-
167
- > **Default Value**: ACTIVE
168
-
169
-
170
- ### **In Solution Components**
171
- > **Input Required**: False
172
-
173
- > **Description**: Solution components that include this one.
174
-
175
- > **Alternative Labels**: In Solution Component; In Component
176
-
177
-
178
- ### **In Solution Blueprints**
179
- > **Input Required**: False
180
-
181
- > **Description**: Solution Blueprints that contain this component.
182
-
183
- > **Alternative Labels**: In Solution Blueprints
184
-
185
-
186
- ### **In Information Supply Chains**
187
- > **Input Required**: False
188
-
189
- > **Description**: The Information Supply Chains that this component is a member of.
190
-
191
- > **Alternative Labels**: In Supply Chains; In Supply Chain; In Information Supply Chain
192
-
193
-
194
- ### **Actors**
195
- > **Input Required**: False
196
-
197
- > **Description**: Actors associated with this component.
198
-
199
-
200
- ### **GUID**
201
- > **Input Required**: False
202
-
203
- > **Description**: A system generated unique identifier.
204
-
205
- > **Alternative Labels**: Guid; guid
206
-
207
-
208
- ### **Merge Update**
209
- > **Input Required**: False
210
-
211
- > **Description**: If true, only those attributes specified in the update will be updated; If false, any attributes not provided during the update will be set to None.
212
-
213
- > **Alternative Labels**: Merge
214
-
215
- > **Default Value**: True
216
-
217
-
218
- ___
219
-
220
- ## **Create Solution Role**
221
- > A collection of data fields that for a data specification for a data source.
222
- ### **Name**
223
- > **Input Required**: True
224
-
225
- > **Description**: Name of the role.
226
-
227
- > **Alternative Labels**: Role; Solution Role; Solution Role Name; Role Name
228
-
229
-
230
- ### **Description**
231
- > **Input Required**: False
232
-
233
- > **Description**: A description of the data structure.
234
-
235
-
236
- ### **Title**
237
- > **Input Required**: False
238
-
239
- > **Description**: Title of the role.
240
-
241
-
242
- ### **Scope**
243
- > **Input Required**: False
244
-
245
- > **Description**: Scope of the role.
246
-
247
-
248
- ### **identifier**
249
- > **Input Required**: False
250
-
251
- > **Description**: role identifier
252
-
253
-
254
- ### **Domain Identifier**
255
- > **Input Required**: False
256
-
257
- > **Description**: Governance domain identifier
258
-
259
- > **Default Value**: 0
260
-
261
-
262
- ### **Role Type**
263
- > **Input Required**: False
264
-
265
- > **Description**: Type of the role. Currently must be GovernanceRole.
266
-
267
- > **Alternative Labels**: Role Type Name
268
-
269
- > **Default Value**: GovernanceRole
270
-
271
-
272
- ### **Qualified Name**
273
- > **Input Required**: False
274
-
275
- > **Description**: A unique qualified name for the element. Generated using the qualified name pattern if not user specified.
276
-
277
-
278
- ### **GUID**
279
- > **Input Required**: False
280
-
281
- > **Description**: A system generated unique identifier.
282
-
283
- > **Alternative Labels**: Guid; guid
284
-
285
-
286
- ___
287
-
288
- ## **Link Information Supply Chain Peers**
289
- > This command can be used to link or unlink information supply chain segments.
290
- ### **Segment1**
291
- > **Input Required**: True
292
-
293
- > **Description**: The first segment to link.
294
-
295
- > **Alternative Labels**: Segment 1; Information Supply Chain Segment 1; Info Supply Chain Segment 1
296
-
297
-
298
- ### **Segment2**
299
- > **Input Required**: True
300
-
301
- > **Description**: The second segment to link.
302
-
303
- > **Alternative Labels**: Segment 2; Information Supply Chain Segment 2; Info Supply Chain Segment 2
304
-
305
-
306
- ### **Link Label**
307
- > **Input Required**: False
308
-
309
- > **Description**: Labels the link between two information supply chain segments.
310
-
311
- > **Alternative Labels**: Label
312
-
313
-
314
- ### **Description**
315
- > **Input Required**: False
316
-
317
- > **Description**: A description of the data structure.
318
-
319
-
320
- ___
321
-
322
- ## **Link Solution Component Peers**
323
- > This command can be used to link or unlink wires between components.
324
- ### **Component1**
325
- > **Input Required**: True
326
-
327
- > **Description**: The first component to link.
328
-
329
- > **Alternative Labels**: Solution Component 1; Comp 1
330
-
331
-
332
- ### **Component2**
333
- > **Input Required**: True
334
-
335
- > **Description**: The second component to link.
336
-
337
- > **Alternative Labels**: Solution Component 2; Comp 2
338
-
339
-
340
- ### **Wire Label**
341
- > **Input Required**: False
342
-
343
- > **Description**: Labels the link between two components.
344
-
345
- > **Alternative Labels**: Label
346
-
347
-
348
- ### **Description**
349
- > **Input Required**: False
350
-
351
- > **Description**: A description of the wire.
352
-
353
-
354
- ___
355
-
356
- ## **View Information Supply Chains**
357
- > Return information supply chains filtered by the search string.
358
- ### **Search String**
359
- > **Input Required**: False
360
-
361
- > **Description**: An optional search string to filter results by.
362
-
363
- > **Alternative Labels**: Filter
364
-
365
- > **Default Value**: *
366
-
367
-
368
- ### **Output Format**
369
- > **Input Required**: False
370
-
371
- > **Description**: Optional specification of output format for the query.
372
-
373
- > **Alternative Labels**: Format
374
-
375
- > **Valid Values**: LIST; FORM; MD; REPORT; MERMAID; LIST; DICT; HTML
376
-
377
- > **Default Value**: List
378
-
379
-
380
- ### **Detailed**
381
- > **Input Required**: False
382
-
383
- > **Description**: If true a more detailed set of attributes will be returned.
384
-
385
- > **Default Value**: True
386
-
387
-
388
- ___
389
-
390
- ## **View Solution Blueprints**
391
- > Return the data structure details, optionally filtered by the search string.
392
- ### **Search String**
393
- > **Input Required**: False
394
-
395
- > **Description**: An optional search string to filter results by.
396
-
397
- > **Alternative Labels**: Filter
398
-
399
- > **Default Value**: *
400
-
401
-
402
- ### **Output Format**
403
- > **Input Required**: False
404
-
405
- > **Description**: Optional specification of output format for the query.
406
-
407
- > **Alternative Labels**: Format
408
-
409
- > **Valid Values**: List; Form; Report; Dict
410
-
411
- > **Default Value**: List
412
-
413
-
414
- ### **Detailed**
415
- > **Input Required**: False
416
-
417
- > **Description**: If true a more detailed set of attributes will be returned.
418
-
419
- > **Default Value**: True
420
-
421
-
422
- ___
423
-
424
- ## **View Solution Components**
425
- > Return the data structure details, optionally filtered by the search string.
426
- ### **Search String**
427
- > **Input Required**: False
428
-
429
- > **Description**: An optional search string to filter results by.
430
-
431
- > **Alternative Labels**: Filter
432
-
433
- > **Default Value**: *
434
-
435
-
436
- ### **Output Format**
437
- > **Input Required**: False
438
-
439
- > **Description**: Optional specification of output format for the query.
440
-
441
- > **Alternative Labels**: Format
442
-
443
- > **Valid Values**: List; Form; Report; Dict
444
-
445
- > **Default Value**: List
446
-
447
-
448
- ### **Detailed**
449
- > **Input Required**: False
450
-
451
- > **Description**: If true a more detailed set of attributes will be returned.
452
-
453
- > **Default Value**: True
454
-
455
-
456
- ___
457
-
458
- ## **View Solution Roles**
459
- > Return the data structure details, optionally filtered by the search string.
460
- ### **Search String**
461
- > **Input Required**: False
462
-
463
- > **Description**: An optional search string to filter results by.
464
-
465
- > **Alternative Labels**: Filter
466
-
467
- > **Default Value**: *
468
-
469
-
470
- ### **Output Format**
471
- > **Input Required**: False
472
-
473
- > **Description**: Optional specification of output format for the query.
474
-
475
- > **Alternative Labels**: Format
476
-
477
- > **Valid Values**: List; Form; Report; Dict
478
-
479
- > **Default Value**: List
480
-
481
-
482
- ### **Detailed**
483
- > **Input Required**: False
484
-
485
- > **Description**: If true a more detailed set of attributes will be returned.
486
-
487
- > **Default Value**: True
488
-
489
-
490
- ___
@@ -1,164 +0,0 @@
1
- """
2
- This file contains project-related object_action functions for processing Egeria Markdown
3
- """
4
-
5
- from rich.markdown import Markdown
6
-
7
- from md_processing.md_processing_utils.common_md_utils import (debug_level, print_msg, is_valid_iso_date)
8
- from md_processing.md_processing_utils.extraction_utils import (extract_command, process_simple_attribute)
9
- from md_processing.md_processing_utils.md_processing_constants import ALWAYS, ERROR, INFO, pre_command
10
- from pyegeria._globals import NO_PROJECTS_FOUND
11
- from pyegeria.project_manager import ProjectManager
12
-
13
- def process_per_proj_upsert_command(egeria_client: ProjectManager, txt: str, directive: str = "display") -> str | None:
14
- """
15
- Processes a personal project create or update object_action by extracting key attributes such as
16
- glossary name, language, description, and usage from the given cell.
17
-
18
- :param txt: A string representing the input cell to be processed for
19
- extracting glossary-related attributes.
20
- :param directive: an optional string indicating the directive to be used - display, validate or execute
21
- :return: A string summarizing the outcome of the processing.
22
- """
23
- from md_processing.md_processing_utils.common_md_utils import set_debug_level
24
-
25
- command = extract_command(txt)
26
- print(Markdown(f"# {command}\n"))
27
-
28
- object = command.split()
29
- object_type = f"{object[1]} {object[2]}"
30
- object_action = object[0]
31
- set_debug_level(directive)
32
-
33
- project_name = process_simple_attribute(txt, ['Project Name'])
34
- description = process_simple_attribute(txt, ['Description'])
35
- project_identifier = process_simple_attribute(txt, ['Project Identifier'])
36
- project_status = process_simple_attribute(txt, ['Status'])
37
- project_phase = process_simple_attribute(txt, ['Project Phase'])
38
- project_health = process_simple_attribute(txt, ['Project Health'])
39
- start_date = process_simple_attribute(txt, ['Start Date'])
40
- planned_end_date = process_simple_attribute(txt, ['Planned End Date'])
41
- print(Markdown(f"{pre_command} `\'{command}\'` for project: `{project_name}` with directive: `{directive}` "))
42
-
43
- project_display = (f"\n* Command: {command}\n\t* Project: {project_name}\n\t"
44
- f"* Status: {project_status}\n\t* Description: {description}\n\t"
45
- f"* Phase: {project_phase}\n\t* Health: {project_health}\n\t"
46
- f"* Start Date: {start_date}\n\t* Planned End Date: {planned_end_date}\n")
47
-
48
- def validate_project(obj_action: str) -> tuple[bool, bool, str, str]:
49
- valid = True
50
- msg = ""
51
- known_guid = None
52
- known_q_name = None
53
-
54
- project_details = egeria_client.get_projects_by_name(project_name)
55
- if project_details == NO_PROJECTS_FOUND:
56
- project_exists = False
57
- else:
58
- project_exists = True
59
-
60
- if project_name is None:
61
- msg = f"* {ERROR}Project name is missing\n"
62
- valid = False
63
- if project_status is None:
64
- msg += f"* {INFO}No Project status found\n"
65
-
66
- if description is None:
67
- msg += f"* {INFO}No Description found\n"
68
-
69
- if project_identifier is None:
70
- msg += f"* {INFO}No Project Identifier found\n"
71
-
72
- if project_phase is None:
73
- msg += f"* {INFO}No Project Phase found\n"
74
-
75
- if project_health is None:
76
- msg += f"* {INFO}No Project Health found\n"
77
-
78
- if start_date is None:
79
- msg += f"* {INFO}No Start Date found\n"
80
- elif not is_valid_iso_date(start_date):
81
- msg += f"* {ERROR}Start Date is not a valid ISO date of form YYYY-MM-DD\n"
82
- valid = False
83
-
84
- if planned_end_date is None:
85
- msg += f"* {INFO} No Planned End Date found\n"
86
- elif not is_valid_iso_date(planned_end_date):
87
- msg += f"* {ERROR}Planned End Date is not a valid ISO date of form YYYY-MM-DD\n"
88
- valid = False
89
-
90
- if obj_action == "Update":
91
- q_name = process_simple_attribute(txt, 'Qualified Name')
92
-
93
- if not project_exists:
94
- msg += f"* {ERROR}Project {project_name} does not exist\n"
95
- valid = False
96
- if len(project_details) > 1 and project_exists:
97
- msg += f"* {ERROR}More than one project with name {project_name} found\n"
98
- valid = False
99
- if len(project_details) == 1:
100
- known_guid = project_details[0]['elementHeader'].get('guid', None)
101
- known_q_name = project_details[0]['glossaryProperties'].get('qualifiedName', None)
102
- if q_name is None:
103
- msg += f"* {INFO}Qualified Name is missing => can use known qualified name of {known_q_name}\n"
104
- valid = True
105
- elif q_name != known_q_name:
106
- msg += (f"* {ERROR}Project {project_name} qualifiedName mismatch between {q_name} and {known_q_name}\n")
107
- valid = False
108
- if valid:
109
- msg += project_display
110
- msg += f"* -->Project {project_name} exists and can be updated\n"
111
- else:
112
- msg += f"* --> validation failed\n"
113
- msg += '---'
114
- print(Markdown(msg))
115
- return valid, project_exists, known_guid, known_q_name
116
-
117
- elif obj_action == "Create":
118
- if project_exists:
119
- msg += f"\n{ERROR}Project {project_name} already exists"
120
- else:
121
- msg += f"\n-->It is valid to create Project \'{project_name}\' with:\n"
122
- print(Markdown(msg))
123
- return valid, project_exists, known_guid, known_q_name
124
-
125
- if directive == "display":
126
- print(Markdown(project_display))
127
- return None
128
- elif directive == "validate":
129
- valid, project_exists, known_guid, known_q_name = validate_project(object_action)
130
- return valid
131
- elif directive == "process":
132
- valid, project_exists, known_guid, known_q_name = validate_project(object_action)
133
- if valid:
134
- if object_action == "Create":
135
- if project_exists:
136
- print(f"\n{ERROR}Project {project_name} already exists\n")
137
- return None
138
- else:
139
- project_guid = egeria_client.create_personal_project(project_name, description, project_identifier,
140
- project_status, project_phase, project_health,
141
- start_date, planned_end_date)
142
- if project_guid:
143
- print_msg(ALWAYS, f"Created Project {project_name} with GUID {project_guid}", debug_level)
144
- return egeria_client.get_project_by_guid(project_guid, output_format='MD')
145
- else:
146
- print_msg(ERROR, f"Failed to create Project {project_name}", debug_level)
147
- return None
148
- elif object_action == "Update":
149
- if not project_exists:
150
- print(f"\n{ERROR}Project {project_name} does not exist\n")
151
- return None
152
- else:
153
- project_guid = egeria_client.update_personal_project(known_guid, project_name, description,
154
- project_identifier, project_status,
155
- project_phase, project_health, start_date,
156
- planned_end_date)
157
- if project_guid:
158
- print_msg(ALWAYS, f"Updated Project {project_name} with GUID {project_guid}", debug_level)
159
- return egeria_client.get_project_by_guid(project_guid, output_format='MD')
160
- else:
161
- print_msg(ERROR, f"Failed to update Project {project_name}", debug_level)
162
- return None
163
- else:
164
- return None