pyegeria 5.3.3.14.dev4__py3-none-any.whl → 5.3.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 (283) hide show
  1. pyegeria/commands/cli/egeria.py +77 -0
  2. pyegeria/commands/cli/egeria_tech.py +79 -0
  3. pyegeria/commands/tech/list_information_supply_chains.py +1 -1
  4. pyegeria/commands/tech/list_solution_blueprints.py +30 -19
  5. pyegeria/commands/tech/list_solution_components.py +172 -0
  6. pyegeria/commands/tech/{list_solution_blueprints2.py → list_solution_roles.py} +49 -48
  7. pyegeria/commands/tech/work/mermaid_graphs/{Automated Manufacturing Control.html → blueprints/Automated Manufacturing Control.html } +3 -3
  8. pyegeria/commands/tech/work/mermaid_graphs/{Clinical Trial Management Solution Blueprint.html → blueprints/Clinical Trial Management Solution Blueprint.html } +2 -2
  9. pyegeria/commands/tech/work/mermaid_graphs/{Employee Management Solution Blueprint.html → blueprints/Employee Management Solution Blueprint.html } +3 -3
  10. pyegeria/commands/tech/work/mermaid_graphs/{Hazardous Material Management Solution Blueprint.html → blueprints/Hazardous Material Management Solution Blueprint.html } +3 -3
  11. pyegeria/commands/tech/work/mermaid_graphs/{Inventory Management.html → blueprints/Inventory Management.html } +2 -2
  12. pyegeria/commands/tech/work/mermaid_graphs/{Personalized Medicine Order Fulfillment Solution Blueprint.html → blueprints/Personalized Medicine Order Fulfillment Solution Blueprint.html } +3 -3
  13. pyegeria/commands/tech/work/mermaid_graphs/{Sustainability Reporting Solution Blueprint.html → blueprints/Sustainability Reporting Solution Blueprint.html } +3 -3
  14. pyegeria/commands/tech/work/mermaid_graphs/{{{displayName}}.html → blueprints/{{displayName}}.html} +2 -2
  15. pyegeria/commands/tech/work/mermaid_graphs/components/Accounting ledgers.html +121 -0
  16. pyegeria/commands/tech/work/mermaid_graphs/components/Analyse Patient Data.html +133 -0
  17. pyegeria/commands/tech/work/mermaid_graphs/components/Assemble Treatment Assessment Report.html +129 -0
  18. pyegeria/commands/tech/work/mermaid_graphs/components/Certify Hospital.html +125 -0
  19. pyegeria/commands/tech/work/mermaid_graphs/components/Employee Expense Tool.html +121 -0
  20. pyegeria/commands/tech/work/mermaid_graphs/components/Goods Inventory.html +121 -0
  21. pyegeria/commands/tech/work/mermaid_graphs/components/Hazardous Materials (HazMat) Inventory.html +121 -0
  22. pyegeria/commands/tech/work/mermaid_graphs/components/Hospital Landing Area Folder.html +125 -0
  23. pyegeria/commands/tech/work/mermaid_graphs/components/Hospital Processes.html +129 -0
  24. pyegeria/commands/tech/work/mermaid_graphs/components/Landing Folder Cataloguer.html +125 -0
  25. pyegeria/commands/tech/work/mermaid_graphs/components/Nominate Hospital.html +125 -0
  26. pyegeria/commands/tech/work/mermaid_graphs/components/Onboard Hospital.html +125 -0
  27. pyegeria/commands/tech/work/mermaid_graphs/components/Populate Sandbox.html +125 -0
  28. pyegeria/commands/tech/work/mermaid_graphs/components/Set up Data Lake Folder.html +127 -0
  29. pyegeria/commands/tech/work/mermaid_graphs/components/Set up clinical trial.html +125 -0
  30. pyegeria/commands/tech/work/mermaid_graphs/components/Sustainability Calculators.html +125 -0
  31. pyegeria/commands/tech/work/mermaid_graphs/components/Sustainability Dashboards.html +125 -0
  32. pyegeria/commands/tech/work/mermaid_graphs/components/Sustainability Operational Data Store (ODS).html +141 -0
  33. pyegeria/commands/tech/work/mermaid_graphs/components/Treatment Assessment Report Validation and Delivery.html +129 -0
  34. pyegeria/commands/tech/work/mermaid_graphs/components/Treatment Efficacy Evidence.html +125 -0
  35. pyegeria/commands/tech/work/mermaid_graphs/components/Treatment Validation Sandbox.html +125 -0
  36. pyegeria/commands/tech/work/mermaid_graphs/components/Weekly Measurements Data Lake Folder.html +125 -0
  37. pyegeria/commands/tech/work/mermaid_graphs/components/Weekly Measurements Onboarding Pipeline.html +133 -0
  38. pyegeria/commands/tech/work/mermaid_graphs/roles/AMS-DC-LEADER.html +118 -0
  39. pyegeria/commands/tech/work/mermaid_graphs/roles/AMS-DEPOT-LEADER.html +118 -0
  40. pyegeria/commands/tech/work/mermaid_graphs/roles/AMS-LAB-LEADER.html +118 -0
  41. pyegeria/commands/tech/work/mermaid_graphs/roles/AMS-OFFICE-LEADER.html +118 -0
  42. pyegeria/commands/tech/work/mermaid_graphs/roles/AMS-SITE-LEADER.html +118 -0
  43. pyegeria/commands/tech/work/mermaid_graphs/roles/AUS-DC-LEADER.html +118 -0
  44. pyegeria/commands/tech/work/mermaid_graphs/roles/AUS-FACTORY-LEADER.html +118 -0
  45. pyegeria/commands/tech/work/mermaid_graphs/roles/AUS-OFFICE-LEADER.html +118 -0
  46. pyegeria/commands/tech/work/mermaid_graphs/roles/AUS-SITE-LEADER.html +118 -0
  47. pyegeria/commands/tech/work/mermaid_graphs/roles/C-TRL-SUSTAINABILITY-CHAMP.html +118 -0
  48. pyegeria/commands/tech/work/mermaid_graphs/roles/CAMP-CT:ProjectManager.html +118 -0
  49. pyegeria/commands/tech/work/mermaid_graphs/roles/CAMP-MM:ProjectManager.html +118 -0
  50. pyegeria/commands/tech/work/mermaid_graphs/roles/CertifiedDataEngineer.html +130 -0
  51. pyegeria/commands/tech/work/mermaid_graphs/roles/ClinicalTrialManager.html +138 -0
  52. pyegeria/commands/tech/work/mermaid_graphs/roles/ClinicalTrialParticipatingHospital.html +122 -0
  53. pyegeria/commands/tech/work/mermaid_graphs/roles/ClinicalTrialParticipatingHospitalCoordinator.html +122 -0
  54. pyegeria/commands/tech/work/mermaid_graphs/roles/ClinicalTrialSponsor.html +122 -0
  55. pyegeria/commands/tech/work/mermaid_graphs/roles/Community Leader.html +118 -0
  56. pyegeria/commands/tech/work/mermaid_graphs/roles/CommunityMember.html +118 -0
  57. pyegeria/commands/tech/work/mermaid_graphs/roles/DIST-SUSTAINABILITY-CHAMP.html +118 -0
  58. pyegeria/commands/tech/work/mermaid_graphs/roles/ED-DC-LEADER.html +118 -0
  59. pyegeria/commands/tech/work/mermaid_graphs/roles/ED-DEPOT-LEADER.html +118 -0
  60. pyegeria/commands/tech/work/mermaid_graphs/roles/ED-FACTORY-LEADER.html +118 -0
  61. pyegeria/commands/tech/work/mermaid_graphs/roles/ED-OFFICE-LEADER.html +118 -0
  62. pyegeria/commands/tech/work/mermaid_graphs/roles/ED-SITE-LEADER.html +118 -0
  63. pyegeria/commands/tech/work/mermaid_graphs/roles/FIN-SUSTAINABILITY-CHAMP.html +118 -0
  64. pyegeria/commands/tech/work/mermaid_graphs/roles/GOVERNANCE_LEADER.html +118 -0
  65. pyegeria/commands/tech/work/mermaid_graphs/roles/GOV_OFFICER:0.html +118 -0
  66. pyegeria/commands/tech/work/mermaid_graphs/roles/GOV_OFFICER:1.html +118 -0
  67. pyegeria/commands/tech/work/mermaid_graphs/roles/GOV_OFFICER:2.html +118 -0
  68. pyegeria/commands/tech/work/mermaid_graphs/roles/GOV_OFFICER:3.html +118 -0
  69. pyegeria/commands/tech/work/mermaid_graphs/roles/GOV_OFFICER:4.html +118 -0
  70. pyegeria/commands/tech/work/mermaid_graphs/roles/GOV_OFFICER:5.html +118 -0
  71. pyegeria/commands/tech/work/mermaid_graphs/roles/GOV_OFFICER:6.html +118 -0
  72. pyegeria/commands/tech/work/mermaid_graphs/roles/GOV_OFFICER:7.html +118 -0
  73. pyegeria/commands/tech/work/mermaid_graphs/roles/HR-SUSTAINABILITY-CHAMP.html +118 -0
  74. pyegeria/commands/tech/work/mermaid_graphs/roles/IT-SUSTAINABILITY-CHAMP.html +118 -0
  75. pyegeria/commands/tech/work/mermaid_graphs/roles/KC-DEPOT-LEADER.html +118 -0
  76. pyegeria/commands/tech/work/mermaid_graphs/roles/KC-OFFICE-LEADER.html +118 -0
  77. pyegeria/commands/tech/work/mermaid_graphs/roles/KC-SITE-LEADER.html +118 -0
  78. pyegeria/commands/tech/work/mermaid_graphs/roles/LDN-DC-LEADER.html +118 -0
  79. pyegeria/commands/tech/work/mermaid_graphs/roles/LDN-LAB-LEADER.html +118 -0
  80. pyegeria/commands/tech/work/mermaid_graphs/roles/LDN-OFFICE-LEADER.html +118 -0
  81. pyegeria/commands/tech/work/mermaid_graphs/roles/LDN-SITE-LEADER.html +118 -0
  82. pyegeria/commands/tech/work/mermaid_graphs/roles/MFG-SUSTAINABILITY-CHAMP.html +118 -0
  83. pyegeria/commands/tech/work/mermaid_graphs/roles/NY-DC-LEADER.html +118 -0
  84. pyegeria/commands/tech/work/mermaid_graphs/roles/NY-LAB-LEADER.html +118 -0
  85. pyegeria/commands/tech/work/mermaid_graphs/roles/NY-OFFICE-LEADER.html +118 -0
  86. pyegeria/commands/tech/work/mermaid_graphs/roles/NY-SITE-LEADER.html +118 -0
  87. pyegeria/commands/tech/work/mermaid_graphs/roles/NewTreatmentDataScientist.html +122 -0
  88. pyegeria/commands/tech/work/mermaid_graphs/roles/NewTreatmentResearcher.html +122 -0
  89. pyegeria/commands/tech/work/mermaid_graphs/roles/PROJ-CT-TBDF-001:ProjectManager.html +118 -0
  90. pyegeria/commands/tech/work/mermaid_graphs/roles/PROJ-CT-TBDF-002:ProjectManager.html +118 -0
  91. pyegeria/commands/tech/work/mermaid_graphs/roles/PROJ-CT-TBDF-003:ProjectManager.html +118 -0
  92. pyegeria/commands/tech/work/mermaid_graphs/roles/PROJ-CT-TBDF:ProjectManager.html +118 -0
  93. pyegeria/commands/tech/work/mermaid_graphs/roles/RES-SUSTAINABILITY-CHAMP.html +118 -0
  94. pyegeria/commands/tech/work/mermaid_graphs/roles/SALES-SUSTAINABILITY-CHAMP.html +118 -0
  95. pyegeria/commands/tech/work/mermaid_graphs/roles/SUSTAINABILITY-LEAD.html +118 -0
  96. pyegeria/commands/tech/work/mermaid_graphs/roles/SUSTAINABILITY-TECH-LEAD.html +118 -0
  97. pyegeria/commands/tech/work/mermaid_graphs/roles/SustainabilityChampion.html +118 -0
  98. pyegeria/commands/tech/work/mermaid_graphs/roles/SustainabilityExecutive.html +118 -0
  99. pyegeria/commands/tech/work/mermaid_graphs/roles/SustainabilityLeader.html +118 -0
  100. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0001.html +118 -0
  101. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0002.html +118 -0
  102. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0003.html +118 -0
  103. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0004.html +118 -0
  104. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0005.html +118 -0
  105. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0006.html +118 -0
  106. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0007.html +118 -0
  107. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0008.html +118 -0
  108. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0009.html +118 -0
  109. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0010.html +118 -0
  110. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0011.html +118 -0
  111. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0012.html +118 -0
  112. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0013.html +118 -0
  113. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0014.html +118 -0
  114. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0015.html +118 -0
  115. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0016.html +118 -0
  116. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0017.html +118 -0
  117. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0018.html +118 -0
  118. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0019.html +118 -0
  119. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0020.html +118 -0
  120. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0021.html +118 -0
  121. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0022.html +118 -0
  122. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0023.html +118 -0
  123. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0024.html +118 -0
  124. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:2343.html +118 -0
  125. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:2373.html +118 -0
  126. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:3067.html +118 -0
  127. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:3082.html +118 -0
  128. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:4051.html +118 -0
  129. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:4302.html +118 -0
  130. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:4332.html +118 -0
  131. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:5656.html +118 -0
  132. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:6788.html +118 -0
  133. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:6877.html +118 -0
  134. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:7432.html +118 -0
  135. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:9657.html +118 -0
  136. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:9992.html +118 -0
  137. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:9993.html +118 -0
  138. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:9994.html +118 -0
  139. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:9995.html +118 -0
  140. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:9996.html +118 -0
  141. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:9997.html +118 -0
  142. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:9998.html +118 -0
  143. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:9999.html +118 -0
  144. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0001.html +118 -0
  145. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0002.html +118 -0
  146. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0003.html +118 -0
  147. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0004.html +118 -0
  148. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0005.html +118 -0
  149. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0006.html +118 -0
  150. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0007.html +118 -0
  151. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0008.html +118 -0
  152. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0009.html +118 -0
  153. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0010.html +118 -0
  154. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0011.html +118 -0
  155. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0012.html +118 -0
  156. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0013.html +118 -0
  157. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0014.html +118 -0
  158. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0015.html +118 -0
  159. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0016.html +118 -0
  160. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0017.html +118 -0
  161. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0018.html +118 -0
  162. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0019.html +118 -0
  163. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0020.html +118 -0
  164. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0021.html +118 -0
  165. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0022.html +118 -0
  166. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0023.html +118 -0
  167. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0024.html +118 -0
  168. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:2343.html +118 -0
  169. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:2373.html +118 -0
  170. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:3067.html +118 -0
  171. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:3082.html +118 -0
  172. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:4051.html +118 -0
  173. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:4302.html +118 -0
  174. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:4332.html +118 -0
  175. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:5656.html +118 -0
  176. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:6788.html +118 -0
  177. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:6877.html +118 -0
  178. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:7432.html +118 -0
  179. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:9657.html +118 -0
  180. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:9992.html +118 -0
  181. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:9993.html +118 -0
  182. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:9994.html +118 -0
  183. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:9995.html +118 -0
  184. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:9996.html +118 -0
  185. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:9997.html +118 -0
  186. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:9998.html +118 -0
  187. pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:9999.html +118 -0
  188. pyegeria/commands/tech/work/mermaid_graphs/roles/WINCH-DC-LEADER.html +118 -0
  189. pyegeria/commands/tech/work/mermaid_graphs/roles/WINCH-DEPOT-LEADER.html +118 -0
  190. pyegeria/commands/tech/work/mermaid_graphs/roles/WINCH-FACTORY-LEADER.html +118 -0
  191. pyegeria/commands/tech/work/mermaid_graphs/roles/WINCH-OFFICE-LEADER.html +118 -0
  192. pyegeria/commands/tech/work/mermaid_graphs/roles/WINCH-SITE-LEADER.html +118 -0
  193. pyegeria/commands/tech/work/mermaid_graphs/{Clinical Trial Subject Onboarding.html → supply-chains/Clinical Trial Subject Onboarding.html } +18 -18
  194. pyegeria/commands/tech/work/mermaid_graphs/{Clinical Trial Treatment Validation.html → supply-chains/Clinical Trial Treatment Validation.html } +21 -21
  195. pyegeria/commands/tech/work/mermaid_graphs/{Employee Expense Payment.html → supply-chains/Employee Expense Payment.html } +7 -7
  196. pyegeria/commands/tech/work/mermaid_graphs/{New Drug Product Information Distribution.html → supply-chains/New Drug Product Information Distribution.html } +7 -7
  197. pyegeria/commands/tech/work/mermaid_graphs/{New Employee Onboarding.html → supply-chains/New Employee Onboarding.html } +6 -6
  198. pyegeria/commands/tech/work/mermaid_graphs/{Personalized Treatment Ordering.html → supply-chains/Personalized Treatment Ordering.html } +6 -6
  199. pyegeria/commands/tech/work/mermaid_graphs/{Physical Inventory Tracking.html → supply-chains/Physical Inventory Tracking.html } +10 -10
  200. pyegeria/commands/tech/work/mermaid_graphs/{Sustainability Reporting.html → supply-chains/Sustainability Reporting.html } +6 -6
  201. pyegeria/commands/tech/work/mermaid_graphs/supply-chains/{{displayName}}.html +122 -0
  202. pyegeria/mermaid_utilities.py +3 -2
  203. {pyegeria-5.3.3.14.dev4.dist-info → pyegeria-5.3.4.dist-info}/METADATA +1 -1
  204. {pyegeria-5.3.3.14.dev4.dist-info → pyegeria-5.3.4.dist-info}/RECORD +207 -103
  205. {pyegeria-5.3.3.14.dev4.dist-info → pyegeria-5.3.4.dist-info}/entry_points.txt +3 -0
  206. pyegeria/.DS_Store +0 -0
  207. pyegeria/commands/.DS_Store +0 -0
  208. pyegeria/commands/__pycache__/__init__.cpython-312.pyc +0 -0
  209. pyegeria/commands/__pycache__/server_status_widget.cpython-312-pytest-7.4.4.pyc +0 -0
  210. pyegeria/commands/cat/__pycache__/__init__.cpython-312.pyc +0 -0
  211. pyegeria/commands/cat/__pycache__/get_asset_graph.cpython-312.pyc +0 -0
  212. pyegeria/commands/cat/__pycache__/get_collection.cpython-312.pyc +0 -0
  213. pyegeria/commands/cat/__pycache__/get_project_dependencies.cpython-312.pyc +0 -0
  214. pyegeria/commands/cat/__pycache__/get_project_structure.cpython-312.pyc +0 -0
  215. pyegeria/commands/cat/__pycache__/get_tech_type_elements.cpython-312.pyc +0 -0
  216. pyegeria/commands/cat/__pycache__/glossary_actions.cpython-312.pyc +0 -0
  217. pyegeria/commands/cat/__pycache__/list_assets.cpython-312.pyc +0 -0
  218. pyegeria/commands/cat/__pycache__/list_cert_types.cpython-312.pyc +0 -0
  219. pyegeria/commands/cat/__pycache__/list_collections.cpython-312.pyc +0 -0
  220. pyegeria/commands/cat/__pycache__/list_deployed_catalogs.cpython-312.pyc +0 -0
  221. pyegeria/commands/cat/__pycache__/list_deployed_database_schemas.cpython-312.pyc +0 -0
  222. pyegeria/commands/cat/__pycache__/list_deployed_databases.cpython-312.pyc +0 -0
  223. pyegeria/commands/cat/__pycache__/list_glossaries.cpython-312.pyc +0 -0
  224. pyegeria/commands/cat/__pycache__/list_projects.cpython-312.pyc +0 -0
  225. pyegeria/commands/cat/__pycache__/list_servers_deployed_imp.cpython-312.pyc +0 -0
  226. pyegeria/commands/cat/__pycache__/list_tech_type_elements.cpython-312.pyc +0 -0
  227. pyegeria/commands/cat/__pycache__/list_tech_types.cpython-312.pyc +0 -0
  228. pyegeria/commands/cat/__pycache__/list_terms.cpython-312.pyc +0 -0
  229. pyegeria/commands/cat/__pycache__/list_todos.cpython-312.pyc +0 -0
  230. pyegeria/commands/cat/__pycache__/list_user_ids.cpython-312.pyc +0 -0
  231. pyegeria/commands/cli/__pycache__/__init__.cpython-312.pyc +0 -0
  232. pyegeria/commands/cli/__pycache__/egeria_login_tui.cpython-312.pyc +0 -0
  233. pyegeria/commands/cli/__pycache__/egeria_ops.cpython-312.pyc +0 -0
  234. pyegeria/commands/cli/__pycache__/ops_config.cpython-312.pyc +0 -0
  235. pyegeria/commands/doc/.DS_Store +0 -0
  236. pyegeria/commands/doc/Visual Command Reference/.DS_Store +0 -0
  237. pyegeria/commands/doc/Visual Command Reference/cat/.DS_Store +0 -0
  238. pyegeria/commands/doc/Visual Command Reference/cat/show/.DS_Store +0 -0
  239. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/.DS_Store +0 -0
  240. pyegeria/commands/doc/glossary/.DS_Store +0 -0
  241. pyegeria/commands/doc/glossary/images/.DS_Store +0 -0
  242. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/.DS_Store +0 -0
  243. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/.DS_Store +0 -0
  244. pyegeria/commands/my/__pycache__/__init__.cpython-312.pyc +0 -0
  245. pyegeria/commands/my/__pycache__/list_my_profile.cpython-312.pyc +0 -0
  246. pyegeria/commands/my/__pycache__/list_my_roles.cpython-312.pyc +0 -0
  247. pyegeria/commands/my/__pycache__/monitor_my_todos.cpython-312.pyc +0 -0
  248. pyegeria/commands/my/__pycache__/monitor_open_todos.cpython-312.pyc +0 -0
  249. pyegeria/commands/my/__pycache__/todo_actions.cpython-312.pyc +0 -0
  250. pyegeria/commands/ops/__pycache__/__init__.cpython-312.pyc +0 -0
  251. pyegeria/commands/ops/__pycache__/gov_server_actions.cpython-312.pyc +0 -0
  252. pyegeria/commands/ops/__pycache__/list_archives.cpython-312.pyc +0 -0
  253. pyegeria/commands/ops/__pycache__/list_catalog_targets.cpython-312.pyc +0 -0
  254. pyegeria/commands/ops/__pycache__/load_archive.cpython-312.pyc +0 -0
  255. pyegeria/commands/ops/__pycache__/monitor_engine_activity.cpython-312.pyc +0 -0
  256. pyegeria/commands/ops/__pycache__/monitor_engine_activity_c.cpython-312.pyc +0 -0
  257. pyegeria/commands/ops/__pycache__/monitor_gov_eng_status.cpython-312.pyc +0 -0
  258. pyegeria/commands/ops/__pycache__/monitor_integ_daemon_status.cpython-312.pyc +0 -0
  259. pyegeria/commands/ops/__pycache__/monitor_platform_status.cpython-312.pyc +0 -0
  260. pyegeria/commands/ops/__pycache__/monitor_server_startup.cpython-312.pyc +0 -0
  261. pyegeria/commands/ops/__pycache__/monitor_server_status.cpython-312.pyc +0 -0
  262. pyegeria/commands/ops/__pycache__/refresh_integration_daemon.cpython-312.pyc +0 -0
  263. pyegeria/commands/ops/__pycache__/restart_integration_daemon.cpython-312.pyc +0 -0
  264. pyegeria/commands/ops/__pycache__/table_integ_daemon_status.cpython-312.pyc +0 -0
  265. pyegeria/commands/tech/.DS_Store +0 -0
  266. pyegeria/commands/tech/__pycache__/__init__.cpython-312.pyc +0 -0
  267. pyegeria/commands/tech/__pycache__/get_element_info.cpython-312.pyc +0 -0
  268. pyegeria/commands/tech/__pycache__/get_guid_info.cpython-312.pyc +0 -0
  269. pyegeria/commands/tech/__pycache__/get_tech_details.cpython-312.pyc +0 -0
  270. pyegeria/commands/tech/__pycache__/get_tech_type_template.cpython-312.pyc +0 -0
  271. pyegeria/commands/tech/__pycache__/list_anchored_elements.cpython-312.pyc +0 -0
  272. pyegeria/commands/tech/__pycache__/list_asset_types.cpython-312.pyc +0 -0
  273. pyegeria/commands/tech/__pycache__/list_elements_by_property_value.cpython-312.pyc +0 -0
  274. pyegeria/commands/tech/__pycache__/list_elements_for_classification.cpython-312.pyc +0 -0
  275. pyegeria/commands/tech/__pycache__/list_gov_action_processes.cpython-312.pyc +0 -0
  276. pyegeria/commands/tech/__pycache__/list_registered_services.cpython-312.pyc +0 -0
  277. pyegeria/commands/tech/__pycache__/list_related_specification.cpython-312.pyc +0 -0
  278. pyegeria/commands/tech/__pycache__/list_relationship_types.cpython-312.pyc +0 -0
  279. pyegeria/commands/tech/__pycache__/list_relationships.cpython-312.pyc +0 -0
  280. pyegeria/commands/tech/__pycache__/list_tech_templates.cpython-312.pyc +0 -0
  281. pyegeria/commands/tech/__pycache__/list_valid_metadata_values.cpython-312.pyc +0 -0
  282. {pyegeria-5.3.3.14.dev4.dist-info → pyegeria-5.3.4.dist-info}/LICENSE +0 -0
  283. {pyegeria-5.3.3.14.dev4.dist-info → pyegeria-5.3.4.dist-info}/WHEEL +0 -0
@@ -56,6 +56,7 @@ from pyegeria.commands.cat.glossary_actions import (
56
56
  )
57
57
  from pyegeria.commands.cat.list_glossaries import display_glossaries
58
58
 
59
+
59
60
  from pyegeria.commands.my.todo_actions import (
60
61
  mark_todo_complete,
61
62
  change_todo_status,
@@ -117,6 +118,12 @@ from pyegeria.commands.tech.list_tech_templates import display_templates_spec
117
118
  from pyegeria.commands.tech.list_valid_metadata_values import display_metadata_values
118
119
  from pyegeria.commands.tech.list_gov_action_processes import display_gov_processes
119
120
 
121
+ from pyegeria.commands.tech.list_information_supply_chains import supply_chain_viewer
122
+ from pyegeria.commands.tech.list_solution_roles import solution_role_list
123
+ from pyegeria.commands.tech.list_solution_blueprints import blueprint_list
124
+ from pyegeria.commands.tech.list_solution_components import solution_component_list
125
+
126
+
120
127
 
121
128
  @tui()
122
129
  # @tui('menu', 'menu', 'A textual command line interface')
@@ -371,6 +378,10 @@ def show_tech_type(ctx):
371
378
  def show_elements(ctx):
372
379
  """Show information about Egeria elements"""
373
380
 
381
+ @show.group("supply-chains")
382
+ @click.pass_context
383
+ def show_supply_chains(ctx):
384
+ """Show information about Information Supply Chainss"""
374
385
 
375
386
  @show_elements.command("guid-info")
376
387
  @click.argument("guid", nargs=1)
@@ -892,6 +903,72 @@ def get_element_info(ctx, om_type):
892
903
  )
893
904
 
894
905
 
906
+ @show_supply_chains.command("supply-chains")
907
+ @click.option("--search-string", default="*", help="Search string")
908
+ @click.pass_context
909
+ def list_supply_chains(ctx, search_string):
910
+ """Display supply chains"""
911
+ c = ctx.obj
912
+ supply_chain_viewer(
913
+ search_string,
914
+ c.view_server,
915
+ c.view_server_url,
916
+ c.userid,
917
+ c.password,
918
+ c.jupyter,
919
+ c.width,
920
+ )
921
+
922
+
923
+ @show_supply_chains.command("blueprints")
924
+ @click.option("--search-string", default="*", help="Search string")
925
+ @click.pass_context
926
+ def list_blueprints(ctx, search_string):
927
+ """Display solution blueprints"""
928
+ c = ctx.obj
929
+ blueprint_list(
930
+ search_string,
931
+ c.view_server,
932
+ c.view_server_url,
933
+ c.userid,
934
+ c.password,
935
+ c.jupyter,
936
+ c.width,
937
+ )
938
+
939
+ @show_supply_chains.command("solution-roles")
940
+ @click.option("--search-string", default="*", help="Search string")
941
+ @click.pass_context
942
+ def list_solution_roles(ctx, search_string):
943
+ """Display solution roles"""
944
+ c = ctx.obj
945
+ solution_component_list(
946
+ search_string,
947
+ c.view_server,
948
+ c.view_server_url,
949
+ c.userid,
950
+ c.password,
951
+ c.jupyter,
952
+ c.width,
953
+ )
954
+
955
+ @show_supply_chains.command("solution-components")
956
+ @click.option("--search-string", default="*", help="Search string")
957
+ @click.pass_context
958
+ def list_solution_components(ctx, search_string):
959
+ """Display solution componentss"""
960
+ c = ctx.obj
961
+ solution_component_list(
962
+ search_string,
963
+ c.view_server,
964
+ c.view_server_url,
965
+ c.userid,
966
+ c.password,
967
+ c.jupyter,
968
+ c.width,
969
+ )
970
+
971
+
895
972
  #
896
973
  # Catalog User: Show
897
974
  #
@@ -43,6 +43,12 @@ from pyegeria.commands.tech.list_elements_for_classification import (
43
43
  from pyegeria.commands.tech.list_gov_action_processes import display_gov_processes
44
44
  from pyegeria.commands.tech.get_tech_type_template import template_viewer
45
45
 
46
+ from pyegeria.commands.tech.list_information_supply_chains import supply_chain_viewer
47
+ from pyegeria.commands.tech.list_solution_roles import solution_role_list
48
+ from pyegeria.commands.tech.list_solution_blueprints import blueprint_list
49
+ from pyegeria.commands.tech.list_solution_components import solution_component_list
50
+
51
+
46
52
  @tui()
47
53
  @click.version_option("0.0.1", prog_name="egeria_ops")
48
54
  @click.group()
@@ -199,6 +205,11 @@ def show_tech(ctx):
199
205
  def show_elements(ctx):
200
206
  """Show information about Egeria elements"""
201
207
 
208
+ @show.group("supply-chains")
209
+ @click.pass_context
210
+ def show_supply_chains(ctx):
211
+ """Show information about Information Supply Chainss"""
212
+
202
213
 
203
214
  @show_elements.command("guid-info")
204
215
  @click.argument("guid", nargs=1)
@@ -721,6 +732,74 @@ def list_all_om_type_elements(ctx, om_type, extended):
721
732
  c.width
722
733
  )
723
734
 
735
+
736
+ @show_supply_chains.command("supply-chains")
737
+ @click.option("--search-string", default="*", help="Search string")
738
+ @click.pass_context
739
+ def list_supply_chains(ctx, search_string):
740
+ """Display supply chains"""
741
+ c = ctx.obj
742
+ supply_chain_viewer(
743
+ search_string,
744
+ c.view_server,
745
+ c.view_server_url,
746
+ c.userid,
747
+ c.password,
748
+ c.jupyter,
749
+ c.width,
750
+ )
751
+
752
+
753
+ @show_supply_chains.command("blueprints")
754
+ @click.option("--search-string", default="*", help="Search string")
755
+ @click.pass_context
756
+ def list_blueprints(ctx, search_string):
757
+ """Display solution blueprints"""
758
+ c = ctx.obj
759
+ blueprint_list(
760
+ search_string,
761
+ c.view_server,
762
+ c.view_server_url,
763
+ c.userid,
764
+ c.password,
765
+ c.jupyter,
766
+ c.width,
767
+ )
768
+
769
+ @show_supply_chains.command("solution-roles")
770
+ @click.option("--search-string", default="*", help="Search string")
771
+ @click.pass_context
772
+ def list_solution_roles(ctx, search_string):
773
+ """Display solution roles"""
774
+ c = ctx.obj
775
+ solution_component_list(
776
+ search_string,
777
+ c.view_server,
778
+ c.view_server_url,
779
+ c.userid,
780
+ c.password,
781
+ c.jupyter,
782
+ c.width,
783
+ )
784
+
785
+ @show_supply_chains.command("solution-components")
786
+ @click.option("--search-string", default="*", help="Search string")
787
+ @click.pass_context
788
+ def list_solution_components(ctx, search_string):
789
+ """Display solution componentss"""
790
+ c = ctx.obj
791
+ solution_component_list(
792
+ search_string,
793
+ c.view_server,
794
+ c.view_server_url,
795
+ c.userid,
796
+ c.password,
797
+ c.jupyter,
798
+ c.width,
799
+ )
800
+
801
+
802
+
724
803
  #
725
804
  # Tell
726
805
  #
@@ -100,7 +100,7 @@ def supply_chain_viewer(
100
100
  sc_unique_name = f"{sc_qname}\n\n\t\t/\n\n{sc_guid}"
101
101
  sc_mermaid = sc.get("mermaidGraph",'---')
102
102
  if sc_mermaid != '---':
103
- link = save_mermaid_html(sc_name, sc_mermaid, EGERIA_MERMAID_FOLDER )
103
+ link = save_mermaid_html(sc_name, sc_mermaid, f"{EGERIA_MERMAID_FOLDER}/supply-chains" )
104
104
  sc_mermaid_link = f"file://:{link}"
105
105
  # print("Visit my [link=https://www.willmcgugan.com]blog[/link]!")
106
106
  # sc_scope = Text(f"{sc_scope}\n\t\t/\n{sc_mermaid_link}")
@@ -3,7 +3,7 @@
3
3
  SPDX-License-Identifier: Apache-2.0
4
4
  Copyright Contributors to the ODPi Egeria project.
5
5
 
6
- A simple viewer for Information Supply Chains
6
+ A simple viewer for Information Solution Blueprints
7
7
 
8
8
  """
9
9
 
@@ -19,12 +19,14 @@ from rich.prompt import Prompt
19
19
  from rich.table import Table
20
20
  from rich.text import Text
21
21
  from rich.tree import Tree
22
+
23
+ from pyegeria.mermaid_utilities import EGERIA_MERMAID_FOLDER
22
24
  from pyegeria.solution_architect_omvs import SolutionArchitect
23
25
  from pyegeria import (
24
26
  ProjectManager,
25
27
  UserNotAuthorizedException,
26
28
  PropertyServerException,
27
- InvalidParameterException,
29
+ InvalidParameterException, save_mermaid_html,
28
30
  )
29
31
 
30
32
  from pyegeria._exceptions import (
@@ -46,7 +48,7 @@ EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
46
48
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
47
49
  EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
48
50
  EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "150"))
49
-
51
+ EGERIA_MERMAID_FOLDER = os.environ.get("EGERIA_MERMAID_FOLDER", "work/mermaid_graphs")
50
52
 
51
53
  def blueprint_list(
52
54
  search_string: str,
@@ -74,10 +76,10 @@ def blueprint_list(
74
76
  caption=f"View Server '{server_name}' @ Platform - {platform_url}",
75
77
  expand=True,
76
78
  )
77
- table.add_column("Blueprint Name")
78
- table.add_column("Qualified Name \n/\n GUID\n/\nVersion", width=38, no_wrap=False)
79
- table.add_column("Description")
80
- table.add_column("Solution Components")
79
+ table.add_column("Blueprint Name / Diagram Link", justify="center")
80
+ table.add_column("Qualified Name / GUID / Version", justify="center", width=38, no_wrap=False)
81
+ table.add_column("Description", justify="center")
82
+ table.add_column("Solution Components", justify="center")
81
83
 
82
84
  blueprints = client.find_solution_blueprints(search_string)
83
85
  if isinstance(blueprints, list) is False:
@@ -88,11 +90,18 @@ def blueprint_list(
88
90
  bp_qname = bp["properties"].get("qualifiedName", '---')
89
91
  bp_guid = bp["elementHeader"]["guid"]
90
92
  bp_desc = bp["properties"].get("description",'---')
91
- bp_unique_name = f"{bp_qname}\n\n\t\t/\n\n{bp_guid}"
92
- bp_mermaid = bp.get("mermaid",'---')
93
+ bp_unique_name = f"{bp_qname}\n\n--\n\n{bp_guid}"
94
+ bp_mermaid = bp.get("mermaidGraph",'---')
95
+ if bp_mermaid != '---':
96
+ link = save_mermaid_html(bp_name, bp_mermaid, f"{EGERIA_MERMAID_FOLDER}/blueprints")
97
+ link = f"file://:{link}"
98
+ bp_mermaid = Text(link, style="blue link " + link)
99
+
100
+ bp_mermaid_label = Text(f"{bp_name}\n\n--\n\n{bp_mermaid}")
93
101
 
94
102
  bp_components = bp.get("solutionComponents",[])
95
- comp_table = Table(title="No Solution Components")
103
+ comp_md=""
104
+ first_comp = True
96
105
  for component in bp_components:
97
106
  comp = component.get("solutionComponent","")
98
107
  if isinstance(comp,dict) is False:
@@ -102,6 +111,7 @@ def blueprint_list(
102
111
  comp_description = comp_props.get("description",'---')
103
112
  comp_planned = comp_props['extendedProperties'].get("plannedDeployedImplementationType",'---')
104
113
  comp_type = comp_props.get('solutionComponentType','---')
114
+
105
115
  comp_actors = comp_props.get('actors', [])
106
116
  comp_actors_list = ""
107
117
  for actor in comp_actors:
@@ -111,15 +121,16 @@ def blueprint_list(
111
121
  for prop in comp_actor_props.keys():
112
122
  comp_actor_props_md += f"* {prop}: {comp_actor_props[prop]}\n"
113
123
  comp_actors_list += comp_actor_props_md
114
-
115
- comp_table = Table(title=f"Solution Component {comp_name}")
116
- comp_table.add_column("Comp Type")
117
- comp_table.add_column("Description")
118
- comp_table.add_column("Planned Deployment")
119
- comp_table.add_column("Actors")
120
- comp_table.add_row(comp_type, comp_description, comp_planned, comp_actors_list)
121
-
122
- table.add_row(bp_name, bp_unique_name, bp_desc, comp_table)
124
+ if first_comp:
125
+ first_comp = False
126
+ else:
127
+ comp_md += "\n\n---\n\n"
128
+ comp_md = f"Solution Component {comp_name}\n\n"
129
+ comp_md += f"* Description: {comp_description}\n"
130
+ comp_md += f"* Planned Deployment: {comp_planned}\n"
131
+ comp_md += f"* Actors: {comp_actors_list}\n"
132
+ comp_out = Markdown(comp_md)
133
+ table.add_row(bp_mermaid_label, bp_unique_name, bp_desc, comp_out)
123
134
 
124
135
  return table
125
136
 
@@ -0,0 +1,172 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ SPDX-License-Identifier: Apache-2.0
4
+ Copyright Contributors to the ODPi Egeria project.
5
+
6
+ A simple viewer for Information Solution Components
7
+
8
+ """
9
+
10
+ import argparse
11
+ import os
12
+ import time
13
+
14
+ from rich import print, box
15
+ from rich.console import Console
16
+ from rich.markdown import Markdown
17
+ from rich.panel import Panel
18
+ from rich.prompt import Prompt
19
+ from rich.table import Table
20
+ from rich.text import Text
21
+ from rich.tree import Tree
22
+
23
+ from pyegeria.mermaid_utilities import EGERIA_MERMAID_FOLDER
24
+ from pyegeria.solution_architect_omvs import SolutionArchitect
25
+ from pyegeria import (
26
+ ProjectManager,
27
+ UserNotAuthorizedException,
28
+ PropertyServerException,
29
+ InvalidParameterException, save_mermaid_html,
30
+ )
31
+
32
+ from pyegeria._exceptions import (
33
+ print_exception_response,
34
+ )
35
+
36
+ disable_ssl_warnings = True
37
+ EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
38
+ EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
39
+ EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
40
+ EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "qs-view-server")
41
+ EGERIA_VIEW_SERVER_URL = os.environ.get(
42
+ "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
43
+ )
44
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
45
+ EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
46
+ EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
47
+ EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
48
+ EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
49
+ EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
50
+ EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "150"))
51
+ EGERIA_MERMAID_FOLDER = os.environ.get("EGERIA_MERMAID_FOLDER", "work/mermaid_graphs")
52
+
53
+ def solution_component_list(
54
+ search_string: str,
55
+ server_name: str,
56
+ platform_url: str,
57
+ user: str,
58
+ user_password: str,
59
+ jupyter: bool = EGERIA_JUPYTER,
60
+ width: int = EGERIA_WIDTH,
61
+ timeout: int = 30,
62
+ ):
63
+ """A Solution Component viewer"""
64
+ client = SolutionArchitect(server_name, platform_url, user, user_password)
65
+ token = client.create_egeria_bearer_token()
66
+
67
+ def generate_table() -> Table | str:
68
+ table = Table(
69
+ title=f"Solution Components matching {search_string} @ {time.asctime()}",
70
+ style="bright_white on black",
71
+ header_style="bright_white on dark_blue",
72
+ title_style="bold white on black",
73
+ caption_style="white on black",
74
+ show_lines=True,
75
+ box=box.ROUNDED,
76
+ caption=f"View Server '{server_name}' @ Platform - {platform_url}",
77
+ expand=True,
78
+ )
79
+ table.add_column("Component Name / Diagram Link", justify="center", no_wrap=False)
80
+ table.add_column("Component Type / Planned Deployment Type", justify="center")
81
+ table.add_column("Qualified Name / GUID", justify="center", width=38, no_wrap=False)
82
+ table.add_column("Description / HeadCount", justify="center")
83
+ table.add_column("Sub-Components", justify="center")
84
+
85
+ components = client.find_solution_components(search_string)
86
+ if isinstance(components, list) is False:
87
+ return "No components found"
88
+
89
+ for component in components:
90
+ component_name = component["properties"].get("displayName", '---')
91
+ component_type = component["properties"].get("solutionComponentType", '---')
92
+ planned_deployment_type = component["properties"].get('extendedProperties',{}).get("plannedDeployedImplementationType", '---')
93
+ component_info = (f"Type: {component_type}\n\n--\n\nPlanned Deployment Type: {planned_deployment_type}")
94
+
95
+ component_qname = component["properties"].get("qualifiedName", '---')
96
+ component_guid = component["elementHeader"]["guid"]
97
+ component_unique_name = f"{component_qname}\n\n--\n\n{component_guid}"
98
+
99
+ component_desc = component["properties"].get("description",'---')
100
+
101
+
102
+ component_mermaid = component.get("mermaidGraph",'---')
103
+ if component_mermaid != '---':
104
+ link = save_mermaid_html(component_name, component_mermaid, f"{EGERIA_MERMAID_FOLDER}/components" )
105
+ link = f"file://:{link}"
106
+ component_mermaid = Text(link, style="blue link " + link)
107
+
108
+ component_mermaid_label = Text(f"{component_name}\n\n--\n\n{component_mermaid}")
109
+
110
+ component_components = component.get("solutionComponents",[])
111
+ comp_props_md=""
112
+ first_comp = True
113
+ for component in component_components:
114
+ comp = component.get("relatedElement","")
115
+ if isinstance(comp,dict) is False:
116
+ continue
117
+ comp_props = comp.get("properties",{})
118
+ comp_props_md = ""
119
+ for prop in comp_props.keys():
120
+ comp_props_md += f"* **{prop}**: {comp_props[prop]}\n"
121
+
122
+ if first_comp:
123
+ first_comp = False
124
+ else:
125
+ comp_props_md += "\n\n---\n\n"
126
+
127
+ comp_props_out = Markdown(comp_props_md)
128
+ table.add_row(component_mermaid_label, component_info, component_unique_name, component_desc, comp_props_out)
129
+
130
+ return table
131
+
132
+
133
+
134
+
135
+ try:
136
+ console = Console(width=width, force_terminal=not jupyter)
137
+ with console.pager():
138
+ console.print(generate_table())
139
+
140
+ except (
141
+ InvalidParameterException,
142
+ PropertyServerException,
143
+ UserNotAuthorizedException,
144
+ ) as e:
145
+ print_exception_response(e)
146
+
147
+
148
+ def main():
149
+ parser = argparse.ArgumentParser()
150
+
151
+ parser.add_argument("--server", help="Name of the server to display status for")
152
+ parser.add_argument("--url", help="URL Platform to connect to")
153
+ parser.add_argument("--userid", help="User Id")
154
+ parser.add_argument("--password", help="User Password")
155
+ args = parser.parse_args()
156
+
157
+ server = args.server if args.server is not None else EGERIA_VIEW_SERVER
158
+ url = args.url if args.url is not None else EGERIA_PLATFORM_URL
159
+ userid = args.userid if args.userid is not None else EGERIA_USER
160
+ user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
161
+
162
+ try:
163
+ search_string = Prompt.ask(
164
+ "Enter a search string:", default="*"
165
+ )
166
+ solution_component_list(search_string, server, url, userid, user_pass)
167
+ except KeyboardInterrupt:
168
+ pass
169
+
170
+
171
+ if __name__ == "__main__":
172
+ main()
@@ -3,7 +3,7 @@
3
3
  SPDX-License-Identifier: Apache-2.0
4
4
  Copyright Contributors to the ODPi Egeria project.
5
5
 
6
- A simple viewer for Information Supply Chains
6
+ A simple viewer for Information Solution Roles
7
7
 
8
8
  """
9
9
 
@@ -50,7 +50,7 @@ EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
50
50
  EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "150"))
51
51
  EGERIA_MERMAID_FOLDER = os.environ.get("EGERIA_MERMAID_FOLDER", "work/mermaid_graphs")
52
52
 
53
- def blueprint_list(
53
+ def solution_role_list(
54
54
  search_string: str,
55
55
  server_name: str,
56
56
  platform_url: str,
@@ -66,7 +66,7 @@ def blueprint_list(
66
66
 
67
67
  def generate_table() -> Table | str:
68
68
  table = Table(
69
- title=f"Blueprints matching {search_string} @ {time.asctime()}",
69
+ title=f"Solution Roles matching {search_string} @ {time.asctime()}",
70
70
  style="bright_white on black",
71
71
  header_style="bright_white on dark_blue",
72
72
  title_style="bold white on black",
@@ -76,59 +76,60 @@ def blueprint_list(
76
76
  caption=f"View Server '{server_name}' @ Platform - {platform_url}",
77
77
  expand=True,
78
78
  )
79
- table.add_column("Blueprint Name / Diagram Link", justify="center")
80
- table.add_column("Qualified Name / GUID / Version", justify="center", width=38, no_wrap=False)
81
- table.add_column("Description", justify="center")
79
+ table.add_column("Role Id / Diagram Link", justify="center", no_wrap=False)
80
+ table.add_column("Title / Type / Scope / HeadCount", justify="center")
81
+ table.add_column("Qualified Name / GUID", justify="center", width=38, no_wrap=False)
82
+ table.add_column("Description / HeadCount", justify="center")
82
83
  table.add_column("Solution Components", justify="center")
83
84
 
84
- blueprints = client.find_solution_blueprints(search_string)
85
- if isinstance(blueprints, list) is False:
86
- return "No Blueprints found"
87
-
88
- for bp in blueprints:
89
- bp_name = bp["properties"].get("displayName", '---')
90
- bp_qname = bp["properties"].get("qualifiedName", '---')
91
- bp_guid = bp["elementHeader"]["guid"]
92
- bp_desc = bp["properties"].get("description",'---')
93
- bp_unique_name = f"{bp_qname}\n\n\t\t/\n\n{bp_guid}"
94
- bp_mermaid = bp.get("mermaidGraph",'---')
95
- if bp_mermaid != '---':
96
- link = save_mermaid_html(bp_name, bp_mermaid, EGERIA_MERMAID_FOLDER)
97
- bp_mermaid = f"![{bp_name}]({link})"
98
- bp_mermaid_label = f"{bp_name}\n\n\t\t/\n\n{bp_mermaid}"
99
-
100
- bp_components = bp.get("solutionComponents",[])
101
- comp_md=""
85
+ roles = client.find_solution_roles(search_string)
86
+ if isinstance(roles, list) is False:
87
+ return "No Roles found"
88
+
89
+ for role in roles:
90
+ role_name = role["properties"].get("roleId", '---')
91
+
92
+ role_title = role["properties"].get("title", '---')
93
+ role_scope = role["properties"].get("scope", '---')
94
+ role_type = role["properties"].get("typeName", '---')
95
+ role_headcount = role["properties"].get("extendedProperties", {}).get("headCount", '---')
96
+ role_info = (f"Title: {role_title}\n\n--\n\nType: {role_type}\n\n--\n\n"
97
+ f"Scope: {role_scope}\n\n--\n\nHeadCount: {role_headcount}")
98
+
99
+ role_qname = role["properties"].get("qualifiedName", '---')
100
+ role_guid = role["elementHeader"]["guid"]
101
+ role_unique_name = f"{role_qname}\n\n--\n\n{role_guid}"
102
+
103
+ role_desc = role["properties"].get("description",'---')
104
+
105
+
106
+ role_mermaid = role.get("mermaidGraph",'---')
107
+ if role_mermaid != '---':
108
+ link = save_mermaid_html(role_name, role_mermaid, f"{EGERIA_MERMAID_FOLDER}/roles" )
109
+ link = f"file://:{link}"
110
+ role_mermaid = Text(link, style="blue link " + link)
111
+
112
+ role_mermaid_label = Text(f"{role_name}\n\n--\n\n{role_mermaid}")
113
+
114
+ role_components = role.get("solutionComponents",[])
115
+ comp_props_md=""
102
116
  first_comp = True
103
- for component in bp_components:
104
- comp = component.get("solutionComponent","")
117
+ for component in role_components:
118
+ comp = component.get("relatedElement","")
105
119
  if isinstance(comp,dict) is False:
106
120
  continue
107
121
  comp_props = comp.get("properties",{})
108
- comp_name = comp_props.get("displayName",'---')
109
- comp_description = comp_props.get("description",'---')
110
- comp_planned = comp_props['extendedProperties'].get("plannedDeployedImplementationType",'---')
111
- comp_type = comp_props.get('solutionComponentType','---')
112
-
113
- comp_actors = comp_props.get('actors', [])
114
- comp_actors_list = ""
115
- for actor in comp_actors:
116
- comp_actor_role = actor['relationshipProperties'].get('role','---')
117
- comp_actor_props = actor['relatedElement'].get('properties',{})
118
- comp_actor_props_md = f"* Role: {comp_actor_role}\n"
119
- for prop in comp_actor_props.keys():
120
- comp_actor_props_md += f"* {prop}: {comp_actor_props[prop]}\n"
121
- comp_actors_list += comp_actor_props_md
122
+ comp_props_md = ""
123
+ for prop in comp_props.keys():
124
+ comp_props_md += f"* **{prop}**: {comp_props[prop]}\n"
125
+
122
126
  if first_comp:
123
127
  first_comp = False
124
128
  else:
125
- comp_md += "\n\n---\n\n"
126
- comp_md = f"Solution Component {comp_name}\n\n"
127
- comp_md += f"* Description: {comp_description}\n"
128
- comp_md += f"* Planned Deployment: {comp_planned}\n"
129
- comp_md += f"* Actors: {comp_actors_list}\n"
130
- comp_out = Markdown(comp_md)
131
- table.add_row(bp_mermaid_label, bp_unique_name, bp_desc, comp_out)
129
+ comp_props_md += "\n\n---\n\n"
130
+
131
+ comp_props_out = Markdown(comp_props_md)
132
+ table.add_row(role_mermaid_label, role_info, role_unique_name, role_desc, comp_props_out)
132
133
 
133
134
  return table
134
135
 
@@ -166,7 +167,7 @@ def main():
166
167
  search_string = Prompt.ask(
167
168
  "Enter a search string:", default="*"
168
169
  )
169
- blueprint_list(search_string, server, url, userid, user_pass)
170
+ solution_role_list(search_string, server, url, userid, user_pass)
170
171
  except KeyboardInterrupt:
171
172
  pass
172
173
 
@@ -59,11 +59,11 @@
59
59
  %%{init: {"flowchart": {"htmlLabels": false}} }%%
60
60
 
61
61
  subgraph 8a222c5d-b206-454f-b861-2b803cfe3cbd [Components and Actors]
62
- c3967953-fb5a-45a4-8d89-bcc62962e1da@{ shape: text, label: "*Description*
62
+ e18d64ca-1982-4c66-ba5a-40e8fdc55352@{ shape: text, label: "*Description*
63
63
  **A description of how the new industry 4.0 manufacturing control system operates.**"}
64
64
  end
65
- style c3967953-fb5a-45a4-8d89-bcc62962e1da color:#000000, fill:#F9F7ED, stroke:#b7c0c7
66
- style 8a222c5d-b206-454f-b861-2b803cfe3cbd color:#3079ab, fill:#b7c0c7, stroke:#3079ab`;
65
+ style 8a222c5d-b206-454f-b861-2b803cfe3cbd color:#3079ab, fill:#b7c0c7, stroke:#3079ab
66
+ style e18d64ca-1982-4c66-ba5a-40e8fdc55352 color:#000000, fill:#F9F7ED, stroke:#b7c0c7`;
67
67
  const {svg} = await mermaid.render('mySvgId', graphDefinition);
68
68
  element.innerHTML = svg.replace(/( )*max-width:( 0-9\.)*px;/i, '');
69
69
 
@@ -59,7 +59,7 @@
59
59
  %%{init: {"flowchart": {"htmlLabels": false}} }%%
60
60
 
61
61
  subgraph c4f8d707-7c85-4125-b5fd-c3257a2ef2ef [Components and Actors]
62
- 6bd76008-d1ad-4ace-8a88-3505fbb71caa@{ shape: text, label: "*Description*
62
+ f0a4fe40-6628-4fec-b17a-f600f736a234@{ shape: text, label: "*Description*
63
63
  **A description of how a clinical trial is managed in Coco Pharmaceuticals.**"}
64
64
  37b8560d-84d4-434b-9b0d-105420fcc924@{ shape: subproc, label: "*Solution Component*
65
65
  **Certify Hospital**"}
@@ -133,8 +133,8 @@ f37f3735-28a1-4e03-9ff5-3fe2f137f661-->|"Initiator"|11c7c850-c67c-41cc-9423-d74d
133
133
  end
134
134
  style 48bc201e-3d4e-4beb-bdb2-0fd9d134f6d5 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
135
135
  style ece17806-836c-4756-b3a2-2d12dde215f6 color:#FFFFFF, fill:#AA00FF, stroke:#E1D5E7
136
+ style f0a4fe40-6628-4fec-b17a-f600f736a234 color:#000000, fill:#F9F7ED, stroke:#b7c0c7
136
137
  style e9c2f911-ffcb-40c6-aeee-8c4d43811576 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
137
- style 6bd76008-d1ad-4ace-8a88-3505fbb71caa color:#000000, fill:#F9F7ED, stroke:#b7c0c7
138
138
  style a5d4d638-6836-47e5-99d0-fdcde637e13f color:#FFFFFF, fill:#838cc7, stroke:#3079ab
139
139
  style 0bf2547c-937c-41b6-814f-6284849271a1 color:#FFFFFF, fill:#838cc7, stroke:#3079ab
140
140
  style 30adaab5-8870-47a8-8ae9-facbf84cb05a color:#FFFFFF, fill:#AA00FF, stroke:#E1D5E7