pyegeria 5.4.3.3__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 (230) hide show
  1. commands/cat/debug_log.2025-09-02_07-44-39_567276.log.zip +0 -0
  2. commands/cat/debug_log.2025-09-03_07-45-21_986388.log.zip +0 -0
  3. commands/cat/debug_log.2025-09-04_08-21-58_788009.log.zip +0 -0
  4. commands/cat/debug_log.2025-09-05_09-37-53_062579.log.zip +0 -0
  5. commands/cat/list_format_set.py +5 -3
  6. commands/tech/list_information_supply_chains.py +1 -1
  7. commands/tech/list_solution_blueprints.py +1 -1
  8. commands/tech/list_solution_components.py +1 -1
  9. commands/tech/list_solution_roles.py +1 -1
  10. md_processing/__init__.py +9 -5
  11. md_processing/data/commands.json +7182 -1401
  12. md_processing/data/generated_format_sets.json +4137 -0
  13. md_processing/data/generated_format_sets.py +51 -0
  14. md_processing/dr_egeria.py +20 -11
  15. md_processing/md_commands/data_designer_commands.py +90 -425
  16. md_processing/md_commands/ext_ref_commands.py +543 -0
  17. md_processing/md_commands/old_solution_architect_commands.py +1139 -0
  18. md_processing/md_commands/solution_architect_commands.py +26 -59
  19. md_processing/md_processing_utils/common_md_utils.py +50 -1
  20. md_processing/md_processing_utils/debug_log +1 -3
  21. md_processing/md_processing_utils/dr-egeria-help-2025-09-09T11:10:03.md +3305 -0
  22. md_processing/md_processing_utils/extraction_utils.py +14 -7
  23. md_processing/md_processing_utils/gen_format_sets.py +422 -0
  24. md_processing/md_processing_utils/md_processing_constants.py +20 -2
  25. pyegeria/__init__.py +1 -1
  26. pyegeria/_client_new.py +9 -7
  27. pyegeria/_output_formats.py +278 -3
  28. pyegeria/collection_manager.py +20 -59
  29. pyegeria/config.py +10 -1
  30. pyegeria/data_designer.py +166 -117
  31. pyegeria/egeria_client.py +1 -1
  32. pyegeria/egeria_tech_client.py +4 -1
  33. pyegeria/external_references.py +1794 -0
  34. pyegeria/glossary_manager.py +71 -85
  35. pyegeria/governance_officer.py +26 -29
  36. pyegeria/output_formatter.py +127 -1
  37. pyegeria/project_manager.py +33 -36
  38. pyegeria/{solution_architect_omvs.py → solution_architect.py} +733 -873
  39. {pyegeria-5.4.3.3.dist-info → pyegeria-5.4.4.dist-info}/METADATA +1 -1
  40. {pyegeria-5.4.3.3.dist-info → pyegeria-5.4.4.dist-info}/RECORD +43 -219
  41. commands/.DS_Store +0 -0
  42. commands/cat/.DS_Store +0 -0
  43. commands/cat/.env +0 -8
  44. commands/cat/debug_log.2025-08-29_07-07-27_848189.log.zip +0 -0
  45. commands/cat/debug_log.2025-08-30_21-15-48_528443.log.zip +0 -0
  46. commands/cat/debug_log.log +0 -6102
  47. commands/cat/logs/pyegeria.log +0 -90
  48. commands/cli/debug_log.log +0 -0
  49. commands/doc/.DS_Store +0 -0
  50. commands/ops/logs/pyegeria.log +0 -0
  51. md_processing/.DS_Store +0 -0
  52. md_processing/.idea/.gitignore +0 -8
  53. md_processing/.idea/inspectionProfiles/Project_Default.xml +0 -59
  54. md_processing/.idea/md_processing.iml +0 -15
  55. md_processing/.idea/modules.xml +0 -8
  56. md_processing/.idea/sonarlint/issuestore/index.pb +0 -0
  57. md_processing/.idea/sonarlint/securityhotspotstore/index.pb +0 -0
  58. md_processing/.idea/vcs.xml +0 -6
  59. md_processing/.idea/workspace.xml +0 -107
  60. md_processing/dr_egeria_inbox/Derive-Dr-Gov-Defs.md +0 -8
  61. md_processing/dr_egeria_inbox/Dr.Egeria Templates.md +0 -873
  62. md_processing/dr_egeria_inbox/arch_test.md +0 -57
  63. md_processing/dr_egeria_inbox/archive/dr_egeria_intro.md +0 -254
  64. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_more_terms.md +0 -696
  65. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part1.md +0 -254
  66. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part2.md +0 -298
  67. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part3.md +0 -608
  68. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part4.md +0 -94
  69. md_processing/dr_egeria_inbox/archive/freddie_intro.md +0 -284
  70. md_processing/dr_egeria_inbox/archive/freddie_intro_orig.md +0 -275
  71. md_processing/dr_egeria_inbox/archive/test-term.md +0 -110
  72. md_processing/dr_egeria_inbox/cat_test.md +0 -100
  73. md_processing/dr_egeria_inbox/collections.md +0 -39
  74. md_processing/dr_egeria_inbox/data_designer_debug.log +0 -6
  75. md_processing/dr_egeria_inbox/data_designer_out.md +0 -60
  76. md_processing/dr_egeria_inbox/data_designer_search_test.md +0 -11
  77. md_processing/dr_egeria_inbox/data_field.md +0 -54
  78. md_processing/dr_egeria_inbox/data_spec.md +0 -77
  79. md_processing/dr_egeria_inbox/data_spec_test.md +0 -2340
  80. md_processing/dr_egeria_inbox/data_test.md +0 -179
  81. md_processing/dr_egeria_inbox/data_test2.md +0 -429
  82. md_processing/dr_egeria_inbox/data_test3.md +0 -462
  83. md_processing/dr_egeria_inbox/dr_egeria_data_designer_1.md +0 -124
  84. md_processing/dr_egeria_inbox/dr_egeria_intro_categories.md +0 -168
  85. md_processing/dr_egeria_inbox/dr_egeria_intro_part1.md +0 -280
  86. md_processing/dr_egeria_inbox/dr_egeria_intro_part2.md +0 -318
  87. md_processing/dr_egeria_inbox/dr_egeria_intro_part3.md +0 -1073
  88. md_processing/dr_egeria_inbox/dr_egeria_isc1.md +0 -44
  89. md_processing/dr_egeria_inbox/generated_help_report.md +0 -9
  90. md_processing/dr_egeria_inbox/generated_help_terms.md +0 -842
  91. md_processing/dr_egeria_inbox/glossary_list.md +0 -5
  92. md_processing/dr_egeria_inbox/glossary_search_test.md +0 -40
  93. md_processing/dr_egeria_inbox/glossary_test1.md +0 -378
  94. md_processing/dr_egeria_inbox/gov_def.md +0 -718
  95. md_processing/dr_egeria_inbox/gov_def2.md +0 -447
  96. md_processing/dr_egeria_inbox/img.png +0 -0
  97. md_processing/dr_egeria_inbox/output_tests.md +0 -114
  98. md_processing/dr_egeria_inbox/product.md +0 -211
  99. md_processing/dr_egeria_inbox/rel.md +0 -8
  100. md_processing/dr_egeria_inbox/sb.md +0 -119
  101. md_processing/dr_egeria_inbox/solution-components.md +0 -136
  102. md_processing/dr_egeria_inbox/solution_blueprints.md +0 -118
  103. md_processing/dr_egeria_inbox/synonym_test.md +0 -42
  104. md_processing/dr_egeria_inbox/t2.md +0 -268
  105. md_processing/dr_egeria_outbox/.DS_Store +0 -0
  106. md_processing/dr_egeria_outbox/.obsidian/app.json +0 -1
  107. md_processing/dr_egeria_outbox/.obsidian/appearance.json +0 -1
  108. md_processing/dr_egeria_outbox/.obsidian/community-plugins.json +0 -7
  109. md_processing/dr_egeria_outbox/.obsidian/core-plugins.json +0 -33
  110. md_processing/dr_egeria_outbox/.obsidian/plugins/buttons/main.js +0 -5164
  111. md_processing/dr_egeria_outbox/.obsidian/plugins/buttons/manifest.json +0 -10
  112. md_processing/dr_egeria_outbox/.obsidian/plugins/buttons/styles.css +0 -624
  113. md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/data.json +0 -10
  114. md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/main.js +0 -4459
  115. md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/manifest.json +0 -10
  116. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/data.json +0 -3
  117. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/main.js +0 -153
  118. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/manifest.json +0 -11
  119. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/styles.css +0 -1
  120. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/main.js +0 -500
  121. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/manifest.json +0 -12
  122. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/styles.css +0 -1
  123. md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/data.json +0 -38
  124. md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/main.js +0 -37
  125. md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/manifest.json +0 -11
  126. md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/styles.css +0 -220
  127. md_processing/dr_egeria_outbox/.obsidian/types.json +0 -28
  128. md_processing/dr_egeria_outbox/.obsidian/workspace.json +0 -270
  129. md_processing/dr_egeria_outbox/Button Test.md +0 -11
  130. md_processing/dr_egeria_outbox/Scripts/.DS_Store +0 -0
  131. md_processing/dr_egeria_outbox/Scripts/sendRest.js +0 -24
  132. md_processing/dr_egeria_outbox/Templates/sendToApi.md.md +0 -17
  133. md_processing/dr_egeria_outbox/Untitled.canvas +0 -1
  134. md_processing/dr_egeria_outbox/monday/processed-2025-09-01 09:26-product.md +0 -210
  135. md_processing/dr_egeria_outbox/monday/processed-2025-09-01 14:03-product.md +0 -209
  136. md_processing/dr_egeria_outbox/monday/processed-2025-09-01 14:24-product.md +0 -263
  137. md_processing/dr_egeria_outbox/monday/processed-2025-09-01 16:03-data_spec_test.md +0 -2374
  138. md_processing/dr_egeria_outbox/monday/processed-2025-09-01 16:05-data_spec_test.md +0 -2374
  139. md_processing/dr_egeria_outbox/monday/processed-2025-09-02 08:28-data_spec_test.md +0 -2321
  140. md_processing/dr_egeria_outbox/monday/processed-2025-09-02 08:37-data_spec_test.md +0 -2304
  141. md_processing/dr_egeria_outbox/monday/processed-2025-09-02 08:56-data_spec_test.md +0 -2324
  142. md_processing/dr_egeria_outbox/monday/processed-2025-09-02 09:00-data_spec_test.md +0 -2324
  143. md_processing/dr_egeria_outbox/processed-2025-08-30 16:56-generated_help_terms.md +0 -795
  144. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 15:00-Derive-Dr-Gov-Defs.md +0 -719
  145. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:13-Derive-Dr-Gov-Defs.md +0 -41
  146. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:14-Derive-Dr-Gov-Defs.md +0 -33
  147. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:50-Derive-Dr-Gov-Defs.md +0 -192
  148. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 22:08-gov_def2.md +0 -486
  149. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 22:10-gov_def2.md +0 -486
  150. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 08:53-gov_def2.md +0 -486
  151. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 08:54-gov_def2.md +0 -486
  152. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:03-gov_def2.md +0 -486
  153. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:06-gov_def2.md +0 -486
  154. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:10-gov_def2.md +0 -486
  155. md_processing/dr_egeria_outbox/tuesday/processed-2025-09-02 13:07-gov_def.md +0 -492
  156. md_processing/dr_egeria_outbox/tuesday/processed-2025-09-02 13:25-gov_def.md +0 -520
  157. md_processing/dr_egeria_outbox/tuesday/processed-2025-09-02 16:43-gov_def.md +0 -636
  158. md_processing/dr_egeria_outbox/tuesday/processed-2025-09-02 16:46-gov_def.md +0 -636
  159. md_processing/family_docs/Data Designer/Create_Data_Class.md +0 -164
  160. md_processing/family_docs/Data Designer/Create_Data_Dictionary.md +0 -30
  161. md_processing/family_docs/Data Designer/Create_Data_Field.md +0 -162
  162. md_processing/family_docs/Data Designer/Create_Data_Specification.md +0 -36
  163. md_processing/family_docs/Data Designer/Create_Data_Structure.md +0 -38
  164. md_processing/family_docs/Data Designer/View_Data_Classes.md +0 -78
  165. md_processing/family_docs/Data Designer/View_Data_Dictionaries.md +0 -78
  166. md_processing/family_docs/Data Designer/View_Data_Fields.md +0 -78
  167. md_processing/family_docs/Data Designer/View_Data_Specifications.md +0 -78
  168. md_processing/family_docs/Data Designer/View_Data_Structures.md +0 -78
  169. md_processing/family_docs/Data Designer.md +0 -842
  170. md_processing/family_docs/Digital Product Manager/Add_Member->Collection.md +0 -42
  171. md_processing/family_docs/Digital Product Manager/Attach_Collection->Resource.md +0 -36
  172. md_processing/family_docs/Digital Product Manager/Create_Agreement.md +0 -96
  173. md_processing/family_docs/Digital Product Manager/Create_Data_Sharing_Agreement.md +0 -72
  174. md_processing/family_docs/Digital Product Manager/Create_DigitalSubscription.md +0 -102
  175. md_processing/family_docs/Digital Product Manager/Create_Digital_Product.md +0 -134
  176. md_processing/family_docs/Digital Product Manager/Link_Agreement_Items.md +0 -60
  177. md_processing/family_docs/Digital Product Manager/Link_Contracts.md +0 -26
  178. md_processing/family_docs/Digital Product Manager/Link_Digital_Product_-_Digital_Product.md +0 -30
  179. md_processing/family_docs/Digital Product Manager/Link_Subscribers.md +0 -48
  180. md_processing/family_docs/Digital Product Manager.md +0 -668
  181. md_processing/family_docs/Glossary/Attach_Category_Parent.md +0 -18
  182. md_processing/family_docs/Glossary/Attach_Term-Term_Relationship.md +0 -26
  183. md_processing/family_docs/Glossary/Create_Category.md +0 -38
  184. md_processing/family_docs/Glossary/Create_Glossary.md +0 -42
  185. md_processing/family_docs/Glossary/Create_Term.md +0 -70
  186. md_processing/family_docs/Glossary.md +0 -206
  187. md_processing/family_docs/Governance Officer/Create_Business_Imperative.md +0 -106
  188. md_processing/family_docs/Governance Officer/Create_Certification_Type.md +0 -112
  189. md_processing/family_docs/Governance Officer/Create_Governance_Approach.md +0 -114
  190. md_processing/family_docs/Governance Officer/Create_Governance_Obligation.md +0 -114
  191. md_processing/family_docs/Governance Officer/Create_Governance_Principle.md +0 -114
  192. md_processing/family_docs/Governance Officer/Create_Governance_Procedure.md +0 -128
  193. md_processing/family_docs/Governance Officer/Create_Governance_Process.md +0 -122
  194. md_processing/family_docs/Governance Officer/Create_Governance_Processing_Purpose.md +0 -106
  195. md_processing/family_docs/Governance Officer/Create_Governance_Responsibility.md +0 -122
  196. md_processing/family_docs/Governance Officer/Create_Governance_Rule.md +0 -122
  197. md_processing/family_docs/Governance Officer/Create_Governance_Strategy.md +0 -106
  198. md_processing/family_docs/Governance Officer/Create_License_Type.md +0 -112
  199. md_processing/family_docs/Governance Officer/Create_Naming_Standard_Rule.md +0 -122
  200. md_processing/family_docs/Governance Officer/Create_Regulation_Article.md +0 -106
  201. md_processing/family_docs/Governance Officer/Create_Regulation_Definition.md +0 -118
  202. md_processing/family_docs/Governance Officer/Create_Security_Access_Control.md +0 -114
  203. md_processing/family_docs/Governance Officer/Create_Security_Group.md +0 -120
  204. md_processing/family_docs/Governance Officer/Create_Service_Level_Objectives.md +0 -122
  205. md_processing/family_docs/Governance Officer/Create_Threat_Definition.md +0 -106
  206. md_processing/family_docs/Governance Officer/Link_Governance_Controls.md +0 -32
  207. md_processing/family_docs/Governance Officer/Link_Governance_Drivers.md +0 -32
  208. md_processing/family_docs/Governance Officer/Link_Governance_Policies.md +0 -32
  209. md_processing/family_docs/Governance Officer/View_Governance_Definitions.md +0 -82
  210. md_processing/family_docs/Governance Officer.md +0 -2412
  211. md_processing/family_docs/Solution Architect/Create_Information_Supply_Chain.md +0 -70
  212. md_processing/family_docs/Solution Architect/Create_Solution_Blueprint.md +0 -44
  213. md_processing/family_docs/Solution Architect/Create_Solution_Component.md +0 -96
  214. md_processing/family_docs/Solution Architect/Create_Solution_Role.md +0 -66
  215. md_processing/family_docs/Solution Architect/Link_Information_Supply_Chain_Peers.md +0 -32
  216. md_processing/family_docs/Solution Architect/Link_Solution_Component_Peers.md +0 -32
  217. md_processing/family_docs/Solution Architect/View_Information_Supply_Chains.md +0 -32
  218. md_processing/family_docs/Solution Architect/View_Solution_Blueprints.md +0 -32
  219. md_processing/family_docs/Solution Architect/View_Solution_Components.md +0 -32
  220. md_processing/family_docs/Solution Architect/View_Solution_Roles.md +0 -32
  221. md_processing/family_docs/Solution Architect.md +0 -490
  222. md_processing/md_commands/old_project_commands.py +0 -164
  223. md_processing/md_processing_utils/debug_log.log +0 -5580
  224. md_processing/md_processing_utils/generated_help_terms.md +0 -842
  225. md_processing/md_processing_utils/logs/pyegeria.log +0 -56
  226. pyegeria/.DS_Store +0 -0
  227. pyegeria/___external_references.py +0 -3267
  228. {pyegeria-5.4.3.3.dist-info → pyegeria-5.4.4.dist-info}/LICENSE +0 -0
  229. {pyegeria-5.4.3.3.dist-info → pyegeria-5.4.4.dist-info}/WHEEL +0 -0
  230. {pyegeria-5.4.3.3.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