pyegeria 5.3.3.14.dev3__py3-none-any.whl → 5.3.3.15__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 (284) 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 +2 -2
  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} +55 -47
  7. pyegeria/commands/tech/work/mermaid_graphs/blueprints/Automated Manufacturing Control.html +121 -0
  8. pyegeria/commands/tech/work/mermaid_graphs/blueprints/Clinical Trial Management Solution Blueprint.html +213 -0
  9. pyegeria/commands/tech/work/mermaid_graphs/blueprints/Employee Management Solution Blueprint.html +124 -0
  10. pyegeria/commands/tech/work/mermaid_graphs/blueprints/Hazardous Material Management Solution Blueprint.html +124 -0
  11. pyegeria/commands/tech/work/mermaid_graphs/blueprints/Inventory Management.html +124 -0
  12. pyegeria/commands/tech/work/mermaid_graphs/blueprints/Personalized Medicine Order Fulfillment Solution Blueprint.html +124 -0
  13. pyegeria/commands/tech/work/mermaid_graphs/blueprints/Sustainability Reporting Solution Blueprint.html +149 -0
  14. pyegeria/commands/tech/work/mermaid_graphs/blueprints/{{displayName}}.html +121 -0
  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/{{{displayName}}.html → supply-chains/{{displayName}}.html} +4 -4
  202. pyegeria/mermaid_utilities.py +3 -2
  203. {pyegeria-5.3.3.14.dev3.dist-info → pyegeria-5.3.3.15.dist-info}/METADATA +1 -1
  204. {pyegeria-5.3.3.14.dev3.dist-info → pyegeria-5.3.3.15.dist-info}/RECORD +208 -97
  205. {pyegeria-5.3.3.14.dev3.dist-info → pyegeria-5.3.3.15.dist-info}/entry_points.txt +4 -1
  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/commands/cat/{link-test.py → link-check.py} +0 -0
  283. {pyegeria-5.3.3.14.dev3.dist-info → pyegeria-5.3.3.15.dist-info}/LICENSE +0 -0
  284. {pyegeria-5.3.3.14.dev3.dist-info → pyegeria-5.3.3.15.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,11 +100,11 @@ 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}")
107
- sc_scope = Text(f"{sc_scope}\n\t\t/\n[link={sc_mermaid_link}]{sc_mermaid_link}[/link]!", style="underline")
107
+ sc_scope = f"{sc_scope}\n\t\t/\n![{sc_mermaid_link}]({sc_mermaid_link})"
108
108
  # sc_scope.stylize("link =" + sc_mermaid_link)
109
109
 
110
110
  table.add_row(sc_name, sc_unique_name, sc_purpose_str, sc_scope, sc_desc)
@@ -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
 
@@ -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,9 +48,9 @@ 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"))
51
+ EGERIA_MERMAID_FOLDER = os.environ.get("EGERIA_MERMAID_FOLDER", "work/mermaid_graphs")
49
52
 
50
-
51
- def blueprint_list(
53
+ def solution_role_list(
52
54
  search_string: str,
53
55
  server_name: str,
54
56
  platform_url: str,
@@ -64,7 +66,7 @@ def blueprint_list(
64
66
 
65
67
  def generate_table() -> Table | str:
66
68
  table = Table(
67
- title=f"Blueprints matching {search_string} @ {time.asctime()}",
69
+ title=f"Solution Roles matching {search_string} @ {time.asctime()}",
68
70
  style="bright_white on black",
69
71
  header_style="bright_white on dark_blue",
70
72
  title_style="bold white on black",
@@ -74,54 +76,60 @@ 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")
81
-
82
- blueprints = client.find_solution_blueprints(search_string)
83
- if isinstance(blueprints, list) is False:
84
- return "No Blueprints found"
85
-
86
- for bp in blueprints:
87
- bp_name = bp["properties"].get("displayName", '---')
88
- bp_qname = bp["properties"].get("qualifiedName", '---')
89
- bp_guid = bp["elementHeader"]["guid"]
90
- 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
-
94
- bp_components = bp.get("solutionComponents",[])
95
- comp_md=""
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")
83
+ table.add_column("Solution Components", justify="center")
84
+
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=""
96
116
  first_comp = True
97
- for component in bp_components:
98
- comp = component.get("solutionComponent","")
117
+ for component in role_components:
118
+ comp = component.get("relatedElement","")
99
119
  if isinstance(comp,dict) is False:
100
120
  continue
101
121
  comp_props = comp.get("properties",{})
102
- comp_name = comp_props.get("displayName",'---')
103
- comp_description = comp_props.get("description",'---')
104
- comp_planned = comp_props['extendedProperties'].get("plannedDeployedImplementationType",'---')
105
- comp_type = comp_props.get('solutionComponentType','---')
106
- comp_actors = comp_props.get('actors', [])
107
- comp_actors_list = ""
108
- for actor in comp_actors:
109
- comp_actor_role = actor['relationshipProperties'].get('role','---')
110
- comp_actor_props = actor['relatedElement'].get('properties',{})
111
- comp_actor_props_md = f"* Role: {comp_actor_role}\n"
112
- for prop in comp_actor_props.keys():
113
- comp_actor_props_md += f"* {prop}: {comp_actor_props[prop]}\n"
114
- 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
+
115
126
  if first_comp:
116
127
  first_comp = False
117
128
  else:
118
- comp_md += "\n\n---\n\n"
119
- comp_md = f"Solution Component {comp_name}\n\n"
120
- comp_md += f"* Description: {comp_description}\n"
121
- comp_md += f"* Planned Deployment: {comp_planned}\n"
122
- comp_md += f"* Actors: {comp_actors_list}\n"
123
- comp_out = Markdown(comp_md)
124
- table.add_row(bp_name, 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)
125
133
 
126
134
  return table
127
135
 
@@ -159,7 +167,7 @@ def main():
159
167
  search_string = Prompt.ask(
160
168
  "Enter a search string:", default="*"
161
169
  )
162
- blueprint_list(search_string, server, url, userid, user_pass)
170
+ solution_role_list(search_string, server, url, userid, user_pass)
163
171
  except KeyboardInterrupt:
164
172
  pass
165
173