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.
- pyegeria/commands/cli/egeria.py +77 -0
- pyegeria/commands/cli/egeria_tech.py +79 -0
- pyegeria/commands/tech/list_information_supply_chains.py +1 -1
- pyegeria/commands/tech/list_solution_blueprints.py +30 -19
- pyegeria/commands/tech/list_solution_components.py +172 -0
- pyegeria/commands/tech/{list_solution_blueprints2.py → list_solution_roles.py} +49 -48
- pyegeria/commands/tech/work/mermaid_graphs/{Automated Manufacturing Control.html → blueprints/Automated Manufacturing Control.html } +3 -3
- pyegeria/commands/tech/work/mermaid_graphs/{Clinical Trial Management Solution Blueprint.html → blueprints/Clinical Trial Management Solution Blueprint.html } +2 -2
- pyegeria/commands/tech/work/mermaid_graphs/{Employee Management Solution Blueprint.html → blueprints/Employee Management Solution Blueprint.html } +3 -3
- pyegeria/commands/tech/work/mermaid_graphs/{Hazardous Material Management Solution Blueprint.html → blueprints/Hazardous Material Management Solution Blueprint.html } +3 -3
- pyegeria/commands/tech/work/mermaid_graphs/{Inventory Management.html → blueprints/Inventory Management.html } +2 -2
- pyegeria/commands/tech/work/mermaid_graphs/{Personalized Medicine Order Fulfillment Solution Blueprint.html → blueprints/Personalized Medicine Order Fulfillment Solution Blueprint.html } +3 -3
- pyegeria/commands/tech/work/mermaid_graphs/{Sustainability Reporting Solution Blueprint.html → blueprints/Sustainability Reporting Solution Blueprint.html } +3 -3
- pyegeria/commands/tech/work/mermaid_graphs/{{{displayName}}.html → blueprints/{{displayName}}.html} +2 -2
- pyegeria/commands/tech/work/mermaid_graphs/components/Accounting ledgers.html +121 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Analyse Patient Data.html +133 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Assemble Treatment Assessment Report.html +129 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Certify Hospital.html +125 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Employee Expense Tool.html +121 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Goods Inventory.html +121 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Hazardous Materials (HazMat) Inventory.html +121 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Hospital Landing Area Folder.html +125 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Hospital Processes.html +129 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Landing Folder Cataloguer.html +125 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Nominate Hospital.html +125 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Onboard Hospital.html +125 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Populate Sandbox.html +125 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Set up Data Lake Folder.html +127 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Set up clinical trial.html +125 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Sustainability Calculators.html +125 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Sustainability Dashboards.html +125 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Sustainability Operational Data Store (ODS).html +141 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Treatment Assessment Report Validation and Delivery.html +129 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Treatment Efficacy Evidence.html +125 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Treatment Validation Sandbox.html +125 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Weekly Measurements Data Lake Folder.html +125 -0
- pyegeria/commands/tech/work/mermaid_graphs/components/Weekly Measurements Onboarding Pipeline.html +133 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/AMS-DC-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/AMS-DEPOT-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/AMS-LAB-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/AMS-OFFICE-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/AMS-SITE-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/AUS-DC-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/AUS-FACTORY-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/AUS-OFFICE-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/AUS-SITE-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/C-TRL-SUSTAINABILITY-CHAMP.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/CAMP-CT:ProjectManager.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/CAMP-MM:ProjectManager.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/CertifiedDataEngineer.html +130 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/ClinicalTrialManager.html +138 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/ClinicalTrialParticipatingHospital.html +122 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/ClinicalTrialParticipatingHospitalCoordinator.html +122 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/ClinicalTrialSponsor.html +122 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/Community Leader.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/CommunityMember.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/DIST-SUSTAINABILITY-CHAMP.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/ED-DC-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/ED-DEPOT-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/ED-FACTORY-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/ED-OFFICE-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/ED-SITE-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/FIN-SUSTAINABILITY-CHAMP.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/GOVERNANCE_LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/GOV_OFFICER:0.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/GOV_OFFICER:1.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/GOV_OFFICER:2.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/GOV_OFFICER:3.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/GOV_OFFICER:4.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/GOV_OFFICER:5.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/GOV_OFFICER:6.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/GOV_OFFICER:7.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/HR-SUSTAINABILITY-CHAMP.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/IT-SUSTAINABILITY-CHAMP.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/KC-DEPOT-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/KC-OFFICE-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/KC-SITE-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/LDN-DC-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/LDN-LAB-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/LDN-OFFICE-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/LDN-SITE-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/MFG-SUSTAINABILITY-CHAMP.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/NY-DC-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/NY-LAB-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/NY-OFFICE-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/NY-SITE-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/NewTreatmentDataScientist.html +122 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/NewTreatmentResearcher.html +122 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/PROJ-CT-TBDF-001:ProjectManager.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/PROJ-CT-TBDF-002:ProjectManager.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/PROJ-CT-TBDF-003:ProjectManager.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/PROJ-CT-TBDF:ProjectManager.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/RES-SUSTAINABILITY-CHAMP.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/SALES-SUSTAINABILITY-CHAMP.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/SUSTAINABILITY-LEAD.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/SUSTAINABILITY-TECH-LEAD.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/SustainabilityChampion.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/SustainabilityExecutive.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/SustainabilityLeader.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0001.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0002.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0003.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0004.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0005.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0006.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0007.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0008.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0009.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0010.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0011.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0012.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0013.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0014.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0015.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0016.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0017.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0018.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0019.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0020.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0021.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0022.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0023.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:0024.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:2343.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:2373.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:3067.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:3082.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:4051.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:4302.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:4332.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:5656.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:6788.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:6877.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:7432.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:9657.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:9992.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:9993.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:9994.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:9995.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:9996.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:9997.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:9998.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamLeader:Department:9999.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0001.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0002.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0003.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0004.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0005.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0006.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0007.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0008.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0009.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0010.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0011.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0012.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0013.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0014.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0015.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0016.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0017.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0018.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0019.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0020.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0021.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0022.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0023.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:0024.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:2343.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:2373.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:3067.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:3082.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:4051.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:4302.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:4332.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:5656.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:6788.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:6877.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:7432.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:9657.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:9992.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:9993.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:9994.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:9995.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:9996.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:9997.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:9998.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/TeamMembers:Department:9999.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/WINCH-DC-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/WINCH-DEPOT-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/WINCH-FACTORY-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/WINCH-OFFICE-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/roles/WINCH-SITE-LEADER.html +118 -0
- pyegeria/commands/tech/work/mermaid_graphs/{Clinical Trial Subject Onboarding.html → supply-chains/Clinical Trial Subject Onboarding.html } +18 -18
- pyegeria/commands/tech/work/mermaid_graphs/{Clinical Trial Treatment Validation.html → supply-chains/Clinical Trial Treatment Validation.html } +21 -21
- pyegeria/commands/tech/work/mermaid_graphs/{Employee Expense Payment.html → supply-chains/Employee Expense Payment.html } +7 -7
- pyegeria/commands/tech/work/mermaid_graphs/{New Drug Product Information Distribution.html → supply-chains/New Drug Product Information Distribution.html } +7 -7
- pyegeria/commands/tech/work/mermaid_graphs/{New Employee Onboarding.html → supply-chains/New Employee Onboarding.html } +6 -6
- pyegeria/commands/tech/work/mermaid_graphs/{Personalized Treatment Ordering.html → supply-chains/Personalized Treatment Ordering.html } +6 -6
- pyegeria/commands/tech/work/mermaid_graphs/{Physical Inventory Tracking.html → supply-chains/Physical Inventory Tracking.html } +10 -10
- pyegeria/commands/tech/work/mermaid_graphs/{Sustainability Reporting.html → supply-chains/Sustainability Reporting.html } +6 -6
- pyegeria/commands/tech/work/mermaid_graphs/supply-chains/{{displayName}}.html +122 -0
- pyegeria/mermaid_utilities.py +3 -2
- {pyegeria-5.3.3.14.dev4.dist-info → pyegeria-5.3.4.dist-info}/METADATA +1 -1
- {pyegeria-5.3.3.14.dev4.dist-info → pyegeria-5.3.4.dist-info}/RECORD +207 -103
- {pyegeria-5.3.3.14.dev4.dist-info → pyegeria-5.3.4.dist-info}/entry_points.txt +3 -0
- pyegeria/.DS_Store +0 -0
- pyegeria/commands/.DS_Store +0 -0
- pyegeria/commands/__pycache__/__init__.cpython-312.pyc +0 -0
- pyegeria/commands/__pycache__/server_status_widget.cpython-312-pytest-7.4.4.pyc +0 -0
- pyegeria/commands/cat/__pycache__/__init__.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/get_asset_graph.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/get_collection.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/get_project_dependencies.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/get_project_structure.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/get_tech_type_elements.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/glossary_actions.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_assets.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_cert_types.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_collections.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_deployed_catalogs.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_deployed_database_schemas.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_deployed_databases.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_glossaries.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_projects.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_servers_deployed_imp.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_tech_type_elements.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_tech_types.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_terms.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_todos.cpython-312.pyc +0 -0
- pyegeria/commands/cat/__pycache__/list_user_ids.cpython-312.pyc +0 -0
- pyegeria/commands/cli/__pycache__/__init__.cpython-312.pyc +0 -0
- pyegeria/commands/cli/__pycache__/egeria_login_tui.cpython-312.pyc +0 -0
- pyegeria/commands/cli/__pycache__/egeria_ops.cpython-312.pyc +0 -0
- pyegeria/commands/cli/__pycache__/ops_config.cpython-312.pyc +0 -0
- pyegeria/commands/doc/.DS_Store +0 -0
- pyegeria/commands/doc/Visual Command Reference/.DS_Store +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/.DS_Store +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/.DS_Store +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/.DS_Store +0 -0
- pyegeria/commands/doc/glossary/.DS_Store +0 -0
- pyegeria/commands/doc/glossary/images/.DS_Store +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/.DS_Store +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/.DS_Store +0 -0
- pyegeria/commands/my/__pycache__/__init__.cpython-312.pyc +0 -0
- pyegeria/commands/my/__pycache__/list_my_profile.cpython-312.pyc +0 -0
- pyegeria/commands/my/__pycache__/list_my_roles.cpython-312.pyc +0 -0
- pyegeria/commands/my/__pycache__/monitor_my_todos.cpython-312.pyc +0 -0
- pyegeria/commands/my/__pycache__/monitor_open_todos.cpython-312.pyc +0 -0
- pyegeria/commands/my/__pycache__/todo_actions.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/__init__.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/gov_server_actions.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/list_archives.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/list_catalog_targets.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/load_archive.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/monitor_engine_activity.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/monitor_engine_activity_c.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/monitor_gov_eng_status.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/monitor_integ_daemon_status.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/monitor_platform_status.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/monitor_server_startup.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/monitor_server_status.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/refresh_integration_daemon.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/restart_integration_daemon.cpython-312.pyc +0 -0
- pyegeria/commands/ops/__pycache__/table_integ_daemon_status.cpython-312.pyc +0 -0
- pyegeria/commands/tech/.DS_Store +0 -0
- pyegeria/commands/tech/__pycache__/__init__.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/get_element_info.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/get_guid_info.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/get_tech_details.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/get_tech_type_template.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_anchored_elements.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_asset_types.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_elements_by_property_value.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_elements_for_classification.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_gov_action_processes.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_registered_services.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_related_specification.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_relationship_types.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_relationships.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_tech_templates.cpython-312.pyc +0 -0
- pyegeria/commands/tech/__pycache__/list_valid_metadata_values.cpython-312.pyc +0 -0
- {pyegeria-5.3.3.14.dev4.dist-info → pyegeria-5.3.4.dist-info}/LICENSE +0 -0
- {pyegeria-5.3.3.14.dev4.dist-info → pyegeria-5.3.4.dist-info}/WHEEL +0 -0
pyegeria/commands/cli/egeria.py
CHANGED
@@ -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
|
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
|
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
|
92
|
-
bp_mermaid = bp.get("
|
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
|
-
|
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
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
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
|
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
|
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"
|
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("
|
80
|
-
table.add_column("
|
81
|
-
table.add_column("
|
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
|
-
|
85
|
-
if isinstance(
|
86
|
-
return "No
|
87
|
-
|
88
|
-
for
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
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
|
104
|
-
comp = component.get("
|
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
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
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
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
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
|
-
|
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
|
-
|
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
|
66
|
-
style
|
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
|
-
|
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
|