pyegeria 5.3.5.3__tar.gz → 5.3.6.1__tar.gz
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-5.3.5.3 → pyegeria-5.3.6.1}/PKG-INFO +1 -1
- pyegeria-5.3.5.3/pyegeria/commands/cat/freddie_jupyter.py → pyegeria-5.3.6.1/pyegeria/commands/cat/freddie_jup.py +1 -1
- pyegeria-5.3.6.1/pyegeria/commands/cat/freddie_jupyter.py +131 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/freddie_md.py +45 -42
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/freddie_utils.py +112 -52
- pyegeria-5.3.6.1/pyegeria/commands/cat/freddies-inbox/freddie_intro.md +221 -0
- pyegeria-5.3.6.1/pyegeria/commands/cat/freddies-inbox/glossary_creation_experiment.ipynb +341 -0
- pyegeria-5.3.6.1/pyegeria/commands/cat/freddies-inbox/glossary_exp.md +158 -0
- pyegeria-5.3.6.1/pyegeria/commands/cat/glossary_creation_experiment.ipynb +235 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyproject.toml +1 -1
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/LICENSE +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/README.md +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/README.md +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/__init__.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/_client.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/_deprecated_gov_engine.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/_exceptions.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/_globals.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/_validators.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/asset_catalog_omvs.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/automated_curation_omvs.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/classification_manager_omvs.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/collection_manager_omvs.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/README.md +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/__init__.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/README.md +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/__init__.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/exp_list_glossaries.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/get_asset_graph.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/get_collection.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/get_project_dependencies.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/get_project_structure.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/get_tech_type_elements.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/glossary_actions.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/list_assets.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/list_cert_types.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/list_collections.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/list_deployed_catalogs.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/list_deployed_database_schemas.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/list_deployed_databases.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/list_deployed_servers.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/list_glossaries.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/list_projects.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/list_tech_type_elements.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/list_tech_types.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/list_terms.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/list_todos.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cat/list_user_ids.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cli/__init__.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cli/egeria.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cli/egeria_cat.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cli/egeria_login_tui.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cli/egeria_my.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cli/egeria_ops.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cli/egeria_tech.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cli/ops_config.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/cli/txt_custom_v2.tcss +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/README.md +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/README.md +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/assets/asset-graph 2024-11-20 at 15.56.42.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/assets/assets-in-domain 2024-11-20 at 15.49.55@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/assets/elements-of-type 2024-11-20 at 16.01.35.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/assets/tech-type-elements 2024-11-20 at 16.05.05.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-data-catalogs 2024-12-17 at 15.43.27@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-data-catalogs-2024-11-20 at 16.17.43@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-schemas 2024-11-25 at 20.14.50@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-schemas 2024-12-17 at 15.48.38@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-servers 2024-11-25 at 20.21.25@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-servers 2024-12-17 at 15.52.16@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed_databases 2024-12-16 at 16.40.31@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/glossary/list-glossaries 2024-11-25 at 20.30.02.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/glossary/list-terms 2024-11-25 at 20.32.11.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/info/asset-types 2024-11-25 at 20.34.19@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/info/certification-types 2024-11-25 at 20.37.07.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/info/collection-graph 2024-12-12 at 11.33.18@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-collections 2024-12-10 at 14.25.51@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-todos 2024-12-12 at 11.46.30@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-user-ids 2024-12-12 at 11.51.09@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/info/tech-types 2024-12-12 at 11.37.20@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/projects/project_dependencies 2024-12-14 at 16.24.39@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/projects/project_structure 2024-12-14 at 16.21.35@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/cat/show/projects/projects 2024-12-14 at 16.18.10@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/hey_egeria tui 2024-12-16 at 16.58.22@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/my/show/my_profile 2024-12-14 at 16.29.27@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/my/show/my_roles 2024-12-14 at 16.32.10@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/my/show/my_todos 2024-12-15 at 16.24.13@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/my/show/open_todos 2024-12-14 at 16.36.12@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/ops/show/engines/list_engine_activity compressed 2024-12-15 at 16.48.48@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_activity 2024-12-15 at 16.32.55@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_activity compressed 2024-12-15 at 16.38.29@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_status 2024-12-15 at 16.51.26.jpeg +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/ops/show/integrations/monitor_integration_daemon_status 2024-12-15 at 16.57.12@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/ops/show/integrations/monitor_integration_targets 2024-12-15 at 17.02.19@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/ops/show/platforms/monitor_platform_status 2024-12-15 at 19.53.18@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_server_status 2024-12-15 at 19.59.39@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_server_status full 2024-12-15 at 20.01.57@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_startup_servers 2024-12-15 at 19.56.07@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/elements/get_anchored_elements 2024-12-15 at 21.25.41@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/elements/get_elements_of_om_type 2024-12-16 at 14.39.59@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/elements/info_for_guid 2024-12-16 at 11.35.29@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/elements/list_elements_by_om-type 2024-12-16 at 14.24.18@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/elements/list_elements_by_om-type extended 2024-12-16 at 14.28.46@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/elements/list_elements_of_om_type_by_classification 2024-12-16 at 14.35.26@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/elements/related_elements 2024-12-16 at 14.55.01@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/elements/show_related_specifications 2024-12-16 at 15.04.55@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/asset_types 2024-12-16 at 15.10.16@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/detailed_governance_action_processes 2024-12-16 at 15.16.26@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/governance_action_processes 2024-12-16 at 15.13.01@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/registered_services 2024-12-16 at 16.44.54@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/relationship_types 2024-12-16 at 16.20.34@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/relationship_types 2024-12-19 at 10.51.54@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/valid_metadata_values 2024-12-16 at 15.31.56@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/list_tech_type_template_specs 2024-12-16 at 16.03.22@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/list_technology_types 2024-12-16 at 15.39.20@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/tech_type_details 2024-12-16 at 15.37.21@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/tech_type_templates 2024-12-16 at 16.11.48@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/basic-glossary-tui.md +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/delete-glossary-step1 2024-11-06 at 15.47.23@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/delete-glossary-step2 2024-11-06 at 15.51.29@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/delete-glossary-step3 2024-11-06 at 15.53.19@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/delete-glossary-step4 2024-11-06 at 15.55.11@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/out-create-glossary example 2024-11-05 at 20.38.04@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/out-create-term 2024-11-06 at 20.48.29.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/out-delete-term 2024-11-07 at 03.57.25.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/out-display-terms-for-glossary-test 2024-11-06 at 20.51.28.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/out-export-example 2024-11-07 at 09.54.57.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/out-exported-terms 2024-11-06 at 21.06.32.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/out-glossary-list example 2024-11-05 at 20.41.02@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/out-import-terms 2024-11-07 at 08.15.18.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/out-list-all-terms 2024-11-06 at 16.22.20@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/out-list-terms-for-example 2024-11-06 at 16.40.12.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/out-list-terms-second 2024-11-06 at 16.45.13.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/out-pipx install pyegeria 2024-11-10 at 18.12.21.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/out-server-status-full 2024-11-10 at 18.25.14.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/out-servers-status 2024-11-10 at 18.15.42.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/out-upsert-import 2024-11-07 at 19.37.00.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/tui-2024-11-10 at 18.26.29.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/tui-create-glossary example 2024-11-05 at 20.34.24@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/tui-create-term 2024-11-06 at 20.46.35.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/tui-delete-term 2024-11-07 at 03.51.57.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/tui-display-terms-for-example 2024-11-06 at 20.56.49.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/tui-export-example 2024-11-07 at 09.52.59.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/tui-hey-egeria 2024-11-10 at 18.31.01.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/tui-import-upsert-example 2024-11-07 at 10.08.37.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/tui-list-terms-second 2024-11-06 at 16.46.34.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/tui-load-archive.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/tui-server-status-full 2024-11-10 at 19.14.36.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/tui-show-glossaries 2024-11-07 at 20.00.05.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/tui-show-glossary-terms 2024-11-05 at 19.37.53@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/tui-upsert 2024-11-07 at 11.49.04.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/glossary/images/upsert-example.om-terms 2024-11-07 at 11.44.05.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/README.md +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/CleanShot 2024-11-18 at 21.32.03@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731421782704.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731422134920.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria 2024-11-12 at 20.38.43.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria cat 2024-11-12 at 21.41.43.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-integ-status-list 2024-11-12 at 16.45.26.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-integ-status-live 2024-11-12 at 16.44.12@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-server-status 2024-11-10 at 18.15.42@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-server-status-full 2024-11-10 at 18.25.14@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/short-cut commands 2024-11-12 at 22.22.13.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-hey-egeria.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-integration-status-paging.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-load-archive 2024-11-10 at 19.19.09@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-show-server-status 2024-11-10 at 18.52.01@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-show-server-status-full 2024-11-10.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-status-paging 2024-11-12 at 16.26.14@2x.png +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/my/README.md +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/my/__init__.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/my/list_my_profile.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/my/list_my_roles.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/my/monitor_my_todos.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/my/monitor_open_todos.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/my/todo_actions.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/README.md +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/__init__.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/gov_server_actions.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/list_archives.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/list_catalog_targets.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/load_archive.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/monitor_asset_events.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/monitor_engine_activity.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/monitor_engine_activity_c.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/monitor_gov_eng_status.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/monitor_integ_daemon_status.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/monitor_platform_status.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/monitor_server_startup.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/monitor_server_status.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/orig_monitor_server_list.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/orig_monitor_server_status.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/refresh_integration_daemon.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/restart_integration_daemon.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/table_integ_daemon_status.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/ops/x_engine_actions.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/README.md +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/__init__.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/get_element_info.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/get_guid_info.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/get_tech_details.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/get_tech_type_template.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_all_om_type_elements.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_all_om_type_elements_x.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_all_related_elements.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_anchored_elements.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_asset_types.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_elements_by_classification_by_property_value.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_elements_by_property_value.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_elements_by_property_value_x.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_elements_for_classification.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_gov_action_processes.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_information_supply_chains.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_registered_services.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_related_elements_with_prop_value.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_related_specification.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_relationship_types.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_relationships.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_solution_blueprints.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_solution_components.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_solution_roles.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_tech_templates.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/list_valid_metadata_values.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/table_tech_templates.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/commands/tech/x_list_related_elements.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/core_omag_server_config.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/create_tech_guid_lists.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/egeria_cat_client.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/egeria_client.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/egeria_config_client.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/egeria_my_client.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/egeria_tech_client.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/feedback_manager_omvs.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/full_omag_server_config.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/glossary_browser_omvs.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/glossary_manager_omvs.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/m_test.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/mermaid_utilities.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/metadata_explorer_omvs.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/my_profile_omvs.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/platform_services.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/project_manager_omvs.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/registered_info.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/runtime_manager_omvs.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/server_operations.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/solution_architect_omvs.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/template_manager_omvs.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/test_j.html +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/test_m.html +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/test_m1.html +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/test_mer.ipynb +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/test_w.html +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/utils.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/valid_metadata_omvs.py +0 -0
- {pyegeria-5.3.5.3 → pyegeria-5.3.6.1}/pyegeria/x_action_author_omvs.py +0 -0
@@ -0,0 +1,131 @@
|
|
1
|
+
"""
|
2
|
+
This is an ongoing experiment in parsing and playing with Freddie docs
|
3
|
+
"""
|
4
|
+
import json
|
5
|
+
|
6
|
+
from jupyter_notebook_parser import JupyterNotebookParser
|
7
|
+
import nbformat
|
8
|
+
import os
|
9
|
+
import re
|
10
|
+
from pyegeria import EgeriaTech
|
11
|
+
from rich import box, print
|
12
|
+
from rich.console import Console
|
13
|
+
from rich.markdown import Markdown
|
14
|
+
from rich.prompt import Prompt
|
15
|
+
from rich.table import Table
|
16
|
+
from freddie_utils import (extract_command, process_glossary_upsert_command, process_term_upsert_command,
|
17
|
+
get_current_datetime_string, process_per_proj_upsert_command, commands)
|
18
|
+
import click
|
19
|
+
from pyegeria import EgeriaTech, body_slimmer, NO_GLOSSARIES_FOUND, NO_TERMS_FOUND, NO_ELEMENTS_FOUND, NO_PROJECTS_FOUND
|
20
|
+
from pyegeria._exceptions import (
|
21
|
+
InvalidParameterException,
|
22
|
+
PropertyServerException,
|
23
|
+
print_exception_response,
|
24
|
+
)
|
25
|
+
from datetime import datetime
|
26
|
+
|
27
|
+
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
28
|
+
EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
|
29
|
+
EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
|
30
|
+
EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
|
31
|
+
EGERIA_VIEW_SERVER_URL = os.environ.get(
|
32
|
+
"EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
|
33
|
+
)
|
34
|
+
EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
|
35
|
+
EGERIA_INTEGRATION_DAEMON_URL = os.environ.get(
|
36
|
+
"EGERIA_INTEGRATION_DAEMON_URL", "https://localhost:9443"
|
37
|
+
)
|
38
|
+
EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
|
39
|
+
EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
|
40
|
+
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
41
|
+
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
42
|
+
EGERIA_WIDTH = os.environ.get("EGERIA_WIDTH", 220)
|
43
|
+
EGERIA_JUPYTER = os.environ.get("EGERIA_JUPYTER", False)
|
44
|
+
EGERIA_HOME_GLOSSARY_GUID = os.environ.get("EGERIA_HOME_GLOSSARY_GUID", None)
|
45
|
+
EGERIA_GLOSSARY_PATH = os.environ.get("EGERIA_GLOSSARY_PATH", None)
|
46
|
+
EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "/Users/dwolfson/localGit/egeria-v5-3/egeria-python")
|
47
|
+
EGERIA_FREDDIE_INBOX_PATH = os.environ.get("EGERIA_FREDDIE_INBOX_PATH", "pyegeria/commands/cat/freddies-inbox")
|
48
|
+
EGERIA_FREDDIE_OUTBOX_PATH = os.environ.get("EGERIA_FREDDIE_OUTBOX_PATH", "pyegeria/commands/cat/freddies-outbox")
|
49
|
+
|
50
|
+
console = Console(width=int(EGERIA_WIDTH))
|
51
|
+
|
52
|
+
|
53
|
+
|
54
|
+
@click.command("process-jupyter")
|
55
|
+
@click.option("--file-path", help="File path to notebook",
|
56
|
+
default="glossary_creation_experiment.ipynb")
|
57
|
+
@click.option("--directive", default="display-only", help="How to process the file")
|
58
|
+
@click.option("--server", default=EGERIA_VIEW_SERVER, help="Egeria view server to use.")
|
59
|
+
@click.option(
|
60
|
+
"--url", default=EGERIA_VIEW_SERVER_URL, help="URL of Egeria platform to connect to"
|
61
|
+
)
|
62
|
+
@click.option("--userid", default=EGERIA_USER, help="Egeria user")
|
63
|
+
@click.option("--user_pass", default=EGERIA_USER_PASSWORD, help="Egeria user password")
|
64
|
+
def process_jupyter_notebook(
|
65
|
+
file_path: str,
|
66
|
+
directive: str,
|
67
|
+
server: str,
|
68
|
+
url: str,
|
69
|
+
userid: str,
|
70
|
+
user_pass: str,
|
71
|
+
):
|
72
|
+
client = EgeriaTech(server, url, user_id=userid)
|
73
|
+
token = client.create_egeria_bearer_token(userid, user_pass)
|
74
|
+
|
75
|
+
element_dictionary = {}
|
76
|
+
|
77
|
+
try:
|
78
|
+
updated = False
|
79
|
+
full_file_path = os.path.join(EGERIA_ROOT_PATH, EGERIA_FREDDIE_INBOX_PATH, file_path)
|
80
|
+
click.echo(f"Processing notebook: {full_file_path}")
|
81
|
+
with open(full_file_path, 'r') as f:
|
82
|
+
nb = nbformat.read(f, as_version=4)
|
83
|
+
for cell in nb.cells:
|
84
|
+
if cell.cell_type == 'markdown':
|
85
|
+
if cell.source.strip().startswith('#'):
|
86
|
+
potential_command = extract_command(cell.source)
|
87
|
+
if potential_command in commands:
|
88
|
+
if potential_command in ["Create Glossary", "Update Glossary"]:
|
89
|
+
result = process_glossary_upsert_command(client, element_dictionary,
|
90
|
+
cell.source, directive)
|
91
|
+
|
92
|
+
elif potential_command in ["Create Term", "Update Term"]:
|
93
|
+
result = process_term_upsert_command(client, element_dictionary,
|
94
|
+
cell.source, directive)
|
95
|
+
elif potential_command in ["Create Personal Project", "Update Personal Project"]:
|
96
|
+
result = process_per_proj_upsert_command(client, element_dictionary, cell.source, directive)
|
97
|
+
else:
|
98
|
+
# If command is not recognized, copy the block as-is
|
99
|
+
result = None
|
100
|
+
|
101
|
+
if result:
|
102
|
+
if directive == "process":
|
103
|
+
updated = True
|
104
|
+
cell.source = result
|
105
|
+
# print(json.dumps(element_dictionary, indent=4))
|
106
|
+
elif directive == "process":
|
107
|
+
# Handle case with errors (skip this block but notify the user)
|
108
|
+
print(f"\n==>\tErrors found while processing command: \'{potential_command}\'\n"
|
109
|
+
f"\tPlease correct and try again. \n")
|
110
|
+
|
111
|
+
|
112
|
+
if updated:
|
113
|
+
path, filename = os.path.split(file_path) # Get both parts
|
114
|
+
new_filename = f"processed-{get_current_datetime_string()}-{filename}" # Create the new filename
|
115
|
+
new_file_path = os.path.join(EGERIA_ROOT_PATH, EGERIA_FREDDIE_OUTBOX_PATH, new_filename) # Construct the new path
|
116
|
+
os.makedirs(os.path.dirname(new_file_path), exist_ok=True)
|
117
|
+
|
118
|
+
|
119
|
+
with open(new_file_path, 'w') as f2:
|
120
|
+
nbformat.write(nb, f2)
|
121
|
+
click.echo(f"\n==>Notebook written to {new_file_path}")
|
122
|
+
else:
|
123
|
+
click.echo("\nNo updates detected. New file not created.")
|
124
|
+
|
125
|
+
except Exception as e:
|
126
|
+
print_exception_response(e)
|
127
|
+
return
|
128
|
+
|
129
|
+
|
130
|
+
if __name__ == "__main__":
|
131
|
+
process_jupyter_notebook()
|
@@ -17,13 +17,13 @@ from freddie_utils import (extract_command, process_glossary_upsert_command, pro
|
|
17
17
|
get_current_datetime_string, process_per_proj_upsert_command, commands)
|
18
18
|
|
19
19
|
import click
|
20
|
-
from pyegeria import EgeriaTech, body_slimmer, NO_GLOSSARIES_FOUND, NO_TERMS_FOUND, NO_ELEMENTS_FOUND
|
20
|
+
from pyegeria import EgeriaTech, body_slimmer, NO_GLOSSARIES_FOUND, NO_TERMS_FOUND, NO_ELEMENTS_FOUND, NO_PROJECTS_FOUND
|
21
21
|
from pyegeria._exceptions import (
|
22
22
|
InvalidParameterException,
|
23
23
|
PropertyServerException,
|
24
24
|
print_exception_response,
|
25
25
|
)
|
26
|
-
import datetime
|
26
|
+
from datetime import datetime
|
27
27
|
|
28
28
|
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
29
29
|
EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
|
@@ -44,9 +44,10 @@ EGERIA_WIDTH = os.environ.get("EGERIA_WIDTH", 220)
|
|
44
44
|
EGERIA_JUPYTER = os.environ.get("EGERIA_JUPYTER", False)
|
45
45
|
EGERIA_HOME_GLOSSARY_GUID = os.environ.get("EGERIA_HOME_GLOSSARY_GUID", None)
|
46
46
|
EGERIA_GLOSSARY_PATH = os.environ.get("EGERIA_GLOSSARY_PATH", None)
|
47
|
-
EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "/Users/dwolfson/localGit/egeria-v5-3/egeria-
|
48
|
-
EGERIA_FREDDIE_INBOX_PATH = os.environ.get("EGERIA_FREDDIE_INBOX_PATH", "
|
49
|
-
EGERIA_FREDDIE_OUTBOX_PATH = os.environ.get("EGERIA_FREDDIE_OUTBOX_PATH", "
|
47
|
+
EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "/Users/dwolfson/localGit/egeria-v5-3/egeria-python")
|
48
|
+
EGERIA_FREDDIE_INBOX_PATH = os.environ.get("EGERIA_FREDDIE_INBOX_PATH", "pyegeria/commands/cat/freddies-inbox")
|
49
|
+
EGERIA_FREDDIE_OUTBOX_PATH = os.environ.get("EGERIA_FREDDIE_OUTBOX_PATH", "pyegeria/commands/cat/freddies-outbox")
|
50
|
+
|
50
51
|
console = Console(width=int(EGERIA_WIDTH))
|
51
52
|
|
52
53
|
|
@@ -54,7 +55,7 @@ console = Console(width=int(EGERIA_WIDTH))
|
|
54
55
|
@click.command("process-markdown-file", help="Process a markdown file and return the output as a string.")
|
55
56
|
@click.option("--file-path", help="File path to markdown file",
|
56
57
|
default="glossary_exp.md")
|
57
|
-
@click.option("--directive", default="display", help="How to process the file")
|
58
|
+
@click.option("--directive", default="display-only", help="How to process the file")
|
58
59
|
@click.option("--server", default=EGERIA_VIEW_SERVER, help="Egeria view server to use.")
|
59
60
|
@click.option(
|
60
61
|
"--url", default=EGERIA_VIEW_SERVER_URL, help="URL of Egeria platform to connect to"
|
@@ -69,6 +70,7 @@ def process_markdown_file(
|
|
69
70
|
userid: str,
|
70
71
|
user_pass: str,
|
71
72
|
):
|
73
|
+
|
72
74
|
client = EgeriaTech(server, url, user_id=userid)
|
73
75
|
token = client.create_egeria_bearer_token(userid, user_pass)
|
74
76
|
|
@@ -82,9 +84,12 @@ def process_markdown_file(
|
|
82
84
|
print(f"Error: File not found at path: {full_file_path}")
|
83
85
|
return {} # Return empty dict if file not found
|
84
86
|
|
87
|
+
final_output = (f"\n# Results from processing file {file_path} on "
|
88
|
+
f"{datetime.now().strftime("%Y-%m-%d %H:%M")}\n---\n")
|
85
89
|
h1_blocks = []
|
86
90
|
current_block = ""
|
87
91
|
in_h1_block = False
|
92
|
+
element_dictionary = {}
|
88
93
|
|
89
94
|
for line in lines:
|
90
95
|
line = line.strip() # Remove leading/trailing whitespace
|
@@ -100,57 +105,55 @@ def process_markdown_file(
|
|
100
105
|
in_h1_block = False
|
101
106
|
elif in_h1_block: # Add line to the current H1 block
|
102
107
|
current_block += "\n" + line
|
108
|
+
else:
|
109
|
+
# Add non-H1 blocks directly to the final output
|
110
|
+
final_output += line
|
103
111
|
|
104
112
|
if current_block: # Add the last H1 block
|
105
113
|
h1_blocks.append(current_block)
|
106
114
|
|
107
|
-
|
115
|
+
# Process each identified H1 block
|
108
116
|
for block in h1_blocks:
|
109
|
-
potential_command = extract_command(block)
|
117
|
+
potential_command = extract_command(block) # Extract potential command
|
110
118
|
|
111
119
|
if potential_command in commands:
|
120
|
+
# Process the block based on the command
|
112
121
|
if potential_command in ["Create Glossary", "Update Glossary"]:
|
113
|
-
result = process_glossary_upsert_command(client, block, directive)
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
if
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
updated = True
|
138
|
-
processed_blocks += f'\n---\n{result} \n---\n\n'
|
139
|
-
else:
|
140
|
-
print(f"\n==>\tErrors found while processing command: \'{potential_command}\'\n"
|
141
|
-
f"\tPlease correct and try again. \n")
|
142
|
-
continue
|
143
|
-
|
122
|
+
result = process_glossary_upsert_command(client, element_dictionary, block, directive)
|
123
|
+
elif potential_command in ["Create Term", "Update Term"]:
|
124
|
+
result = process_term_upsert_command(client, element_dictionary, block, directive)
|
125
|
+
elif potential_command in ["Create Personal Project", "Update Personal Project"]:
|
126
|
+
result = process_per_proj_upsert_command(client, element_dictionary, block, directive)
|
127
|
+
else:
|
128
|
+
# If command is not recognized, copy the block as-is
|
129
|
+
result = None
|
130
|
+
|
131
|
+
if result:
|
132
|
+
if directive == "process":
|
133
|
+
updated = True
|
134
|
+
final_output += f"\n---\n{result}\n---\n\n"
|
135
|
+
# print(json.dumps(element_dictionary, indent=4))
|
136
|
+
elif directive == "process":
|
137
|
+
# Handle case with errors (skip this block but notify the user)
|
138
|
+
print(f"\n==>\tErrors found while processing command: \'{potential_command}\'\n"
|
139
|
+
f"\tPlease correct and try again. \n")
|
140
|
+
final_output += f"\n---\n{block}\n---\n\n"
|
141
|
+
else:
|
142
|
+
# If no command is detected, add the block to the final output as-is
|
143
|
+
final_output += f"\n---\n{block}\n---\n\n"
|
144
|
+
|
145
|
+
# Write the final_output to a new file if updated
|
144
146
|
if updated:
|
145
147
|
path, filename = os.path.split(file_path) # Get both parts
|
146
148
|
new_filename = f"processed-{get_current_datetime_string()}-{filename}" # Create the new filename
|
147
149
|
new_file_path = os.path.join(EGERIA_ROOT_PATH, EGERIA_FREDDIE_OUTBOX_PATH, new_filename) # Construct the new path
|
148
150
|
os.makedirs(os.path.dirname(new_file_path), exist_ok=True)
|
149
151
|
|
150
|
-
|
151
152
|
with open(new_file_path, 'w') as f2:
|
152
|
-
f2.write(
|
153
|
-
click.echo(f"\n==>Notebook written to {new_file_path}")
|
153
|
+
f2.write(final_output)
|
154
|
+
click.echo(f"\n==> Notebook written to {new_file_path}")
|
155
|
+
else:
|
156
|
+
click.echo("\nNo updates detected. New File not created.")
|
154
157
|
|
155
158
|
|
156
159
|
|
@@ -30,6 +30,7 @@ commands = ["Create Glossary", "Update Glossary",
|
|
30
30
|
ERROR = "ERROR-> "
|
31
31
|
INFO = "INFO- "
|
32
32
|
WARNING = "WARNING-> "
|
33
|
+
pre_command = "\n---\n==> Processing command:"
|
33
34
|
|
34
35
|
def is_valid_iso_date(date_text) -> bool:
|
35
36
|
"""Checks if the given string is a valid ISO date."""
|
@@ -65,22 +66,30 @@ def extract_attribute (text: str, label: str) -> str | None:
|
|
65
66
|
"""
|
66
67
|
pattern = r"## " + re.escape(label) + r"\n(.*?)(?:##|$)" # Construct pattern
|
67
68
|
match = re.search(pattern, text, re.DOTALL)
|
68
|
-
if match:
|
69
|
-
|
69
|
+
if match and not match.group(1).isspace():
|
70
|
+
txt =match.group(1).strip()
|
71
|
+
return txt
|
70
72
|
return None
|
71
73
|
|
72
74
|
def update_a_command(txt: str, command: str, obj_type: str, q_name: str, u_guid: str)->str:
|
73
75
|
u_guid = u_guid if u_guid else " "
|
74
|
-
|
76
|
+
verb = command.split(' ')[0].strip()
|
77
|
+
action = "Update" if (verb == "Create" and u_guid is not None) else "Create"
|
78
|
+
txt = txt.replace(f"{command}", f'**{action} {obj_type}**\n') # update the command
|
75
79
|
txt = txt.replace('<GUID>', f'**GUID**\n{u_guid}') # update with GUID
|
76
80
|
txt = txt.replace('<Qualified Name>', f"**Qualified Name**\n{q_name}")
|
81
|
+
if "Qualified Name" not in txt:
|
82
|
+
txt += f"\n## **Qualified Name**\n{q_name}\n"
|
83
|
+
if "GUID" not in txt:
|
84
|
+
txt += f"\n## **GUID**\n{u_guid}\n"
|
77
85
|
# if command == "Update Term":
|
78
86
|
# txt = txt.replace('Update Description', f"**Update Description**\n")
|
79
87
|
return txt
|
80
88
|
|
81
89
|
|
82
90
|
|
83
|
-
def process_glossary_upsert_command(egeria_client: EgeriaTech,
|
91
|
+
def process_glossary_upsert_command(egeria_client: EgeriaTech, element_dictionary: dict, txt: str,
|
92
|
+
directive: str = "display" ) -> str | None:
|
84
93
|
"""
|
85
94
|
Processes a glossary create or update command by extracting key attributes such as
|
86
95
|
glossary name, language, description, and usage from the given cell.
|
@@ -95,15 +104,17 @@ def process_glossary_upsert_command(egeria_client: EgeriaTech, txt: str, directi
|
|
95
104
|
object_action = command.split(' ')[0].strip()
|
96
105
|
|
97
106
|
glossary_name = extract_attribute(txt, 'Glossary Name')
|
98
|
-
print(f"
|
107
|
+
print(Markdown(f"{pre_command} `{command}` for glossary: `{glossary_name}` with directive: `{directive}` "))
|
99
108
|
language = extract_attribute(txt, 'Language')
|
100
109
|
description = extract_attribute(txt, 'Description')
|
101
110
|
usage = extract_attribute(txt, 'Usage')
|
102
111
|
glossary_display = (f"\n* Command: {command}\n\t* Glossary: {glossary_name}\n\t"
|
103
|
-
f"* Language: {language}\n\t* Description
|
104
|
-
f"* Usage: {usage}"
|
112
|
+
f"* Language: {language}\n\t* Description:\n{description}\n"
|
113
|
+
f"* Usage: {usage}\n"
|
114
|
+
f"* Qualified Name: <Qualified Name>\n"
|
115
|
+
f"* GUID: <GUID>\n\n")
|
105
116
|
|
106
|
-
def validate_glossary(obj_action: str) -> tuple[bool, bool, str]:
|
117
|
+
def validate_glossary(obj_action: str) -> tuple[bool, bool, str | None, str | None]:
|
107
118
|
valid = True
|
108
119
|
msg = ""
|
109
120
|
known_glossary_guid = None
|
@@ -124,18 +135,25 @@ def process_glossary_upsert_command(egeria_client: EgeriaTech, txt: str, directi
|
|
124
135
|
if description is None:
|
125
136
|
msg += f"* {INFO}Description is missing\n"
|
126
137
|
|
138
|
+
if len(glossary_details) > 1 and glossary_exists:
|
139
|
+
msg += f"* {ERROR}More than one glossary with name {glossary_name} found\n"
|
140
|
+
valid = False
|
141
|
+
if len(glossary_details) == 1:
|
142
|
+
known_glossary_guid = glossary_details[0]['elementHeader'].get('guid', None)
|
143
|
+
known_q_name = glossary_details[0]['glossaryProperties'].get('qualifiedName', None)
|
144
|
+
|
127
145
|
if obj_action == "Update":
|
128
146
|
q_name = extract_attribute(txt, 'Qualified Name')
|
129
147
|
|
130
148
|
if not glossary_exists:
|
131
149
|
msg += f"* {ERROR}Glossary {glossary_name} does not exist\n"
|
132
150
|
valid = False
|
133
|
-
if len(glossary_details) > 1 and glossary_exists:
|
134
|
-
|
135
|
-
|
136
|
-
if len(glossary_details) == 1:
|
137
|
-
|
138
|
-
|
151
|
+
# if len(glossary_details) > 1 and glossary_exists:
|
152
|
+
# msg += f"* {ERROR}More than one glossary with name {glossary_name} found\n"
|
153
|
+
# valid = False
|
154
|
+
# if len(glossary_details) == 1:
|
155
|
+
# known_glossary_guid = glossary_details[0]['elementHeader'].get('guid', None)
|
156
|
+
# known_q_name = glossary_details[0]['glossaryProperties'].get('qualifiedName',None)
|
139
157
|
if q_name is None:
|
140
158
|
msg += f"* {INFO}Qualified Name is missing => can use known qualified name of {known_q_name}\n"
|
141
159
|
valid = True
|
@@ -147,16 +165,18 @@ def process_glossary_upsert_command(egeria_client: EgeriaTech, txt: str, directi
|
|
147
165
|
msg += f"* -->Glossary {glossary_name} exists and can be updated\n"
|
148
166
|
else:
|
149
167
|
msg += f"* --> validation failed\n"
|
150
|
-
|
168
|
+
|
151
169
|
print(Markdown(msg))
|
152
170
|
return valid, glossary_exists, known_glossary_guid, known_q_name
|
153
171
|
|
154
172
|
elif obj_action == "Create":
|
155
173
|
if glossary_exists:
|
156
|
-
msg += f"{ERROR}Glossary {glossary_name} already exists"
|
157
|
-
|
158
|
-
|
174
|
+
msg += f"{ERROR}Glossary {glossary_name} already exists\n"
|
175
|
+
|
176
|
+
elif valid:
|
159
177
|
msg += f"-->It is valid to create Glossary \'{glossary_name}\' with:\n"
|
178
|
+
msg += glossary_display
|
179
|
+
|
160
180
|
print(Markdown(msg))
|
161
181
|
return valid, glossary_exists, known_glossary_guid, known_q_name
|
162
182
|
|
@@ -175,8 +195,9 @@ def process_glossary_upsert_command(egeria_client: EgeriaTech, txt: str, directi
|
|
175
195
|
return None
|
176
196
|
if object_action == "Update":
|
177
197
|
if not exists:
|
178
|
-
print(f"\n
|
179
|
-
return
|
198
|
+
print(f"\n{ERROR}Glossary {glossary_name} does not exist! Updating result document with Create command\n")
|
199
|
+
return update_a_command(txt, command, object_type, known_q_name, known_guid)
|
200
|
+
|
180
201
|
body = {
|
181
202
|
"class": "ReferenceableRequestBody",
|
182
203
|
"elementProperties":
|
@@ -190,26 +211,32 @@ def process_glossary_upsert_command(egeria_client: EgeriaTech, txt: str, directi
|
|
190
211
|
}
|
191
212
|
egeria_client.update_glossary(known_guid, body)
|
192
213
|
print(f"\n-->Updated Glossary {glossary_name} with GUID {known_guid}")
|
214
|
+
element_dictionary[f"glossary.{glossary_name}"] = {'guid' : known_guid,
|
215
|
+
'q_name' : known_q_name
|
216
|
+
}
|
193
217
|
return update_a_command(txt, command, object_type, known_q_name, known_guid)
|
194
218
|
elif object_action == "Create" :
|
195
219
|
guid = None
|
196
|
-
q_name = f"Glossary:{glossary_name}:{get_current_datetime_string()}"
|
197
220
|
|
198
221
|
if exists:
|
199
|
-
print(f"
|
222
|
+
print(f"\nGlossary {glossary_name} already exists and result document updated\n")
|
200
223
|
return update_a_command(txt, command, object_type, known_q_name, known_guid)
|
201
224
|
else:
|
202
225
|
guid = egeria_client.create_glossary(glossary_name, description,
|
203
226
|
language, usage)
|
204
227
|
glossary = egeria_client.get_glossary_by_guid(guid)
|
205
228
|
if glossary == NO_GLOSSARIES_FOUND:
|
206
|
-
print(f"Just created with GUID {guid} but Glossary not found")
|
229
|
+
print(f"{ERROR}Just created with GUID {guid} but Glossary not found\n")
|
207
230
|
return None
|
208
|
-
|
209
|
-
|
231
|
+
qualified_name = glossary['glossaryProperties']["qualifiedName"]
|
232
|
+
element_dictionary[f"glossary.{glossary_name}"] = {
|
233
|
+
'guid': guid,
|
234
|
+
'q_name': qualified_name
|
235
|
+
}
|
236
|
+
return update_a_command(txt, command, object_type, qualified_name, guid)
|
210
237
|
|
211
238
|
|
212
|
-
def process_term_upsert_command(egeria_client: EgeriaTech, txt: str, directive: str = "display" ) -> str | None:
|
239
|
+
def process_term_upsert_command(egeria_client: EgeriaTech, element_dictionary: dict, txt: str, directive: str = "display" ) -> str | None:
|
213
240
|
"""
|
214
241
|
Processes a term create or update command by extracting key attributes such as
|
215
242
|
term name, summary, description, abbreviation, examples, usage, version, and status from the given cell.
|
@@ -234,9 +261,10 @@ def process_term_upsert_command(egeria_client: EgeriaTech, txt: str, directive:
|
|
234
261
|
status = extract_attribute(txt, 'Status')
|
235
262
|
glossary_name = extract_attribute(txt, 'Glossary Name')
|
236
263
|
|
237
|
-
print(f"
|
264
|
+
print(Markdown(f"{pre_command} `{command}` for term: `{term_name}` with directive: `{directive}`"))
|
238
265
|
|
239
|
-
def validate_term(obj_action: str) -> tuple[bool, bool, str]:
|
266
|
+
def validate_term(obj_action: str) -> tuple[bool, bool, str | None, str | None]:
|
267
|
+
nonlocal version
|
240
268
|
valid = True
|
241
269
|
msg = ""
|
242
270
|
known_term_guid = None
|
@@ -256,8 +284,25 @@ def process_term_upsert_command(egeria_client: EgeriaTech, txt: str, directive:
|
|
256
284
|
valid = False
|
257
285
|
if status is None:
|
258
286
|
msg += f"* {INFO}Term status is missing - will default to DRAFT"
|
259
|
-
if obj_action == "Update": # check to see if provided information exists and is consistent with existing info
|
260
287
|
|
288
|
+
if summary is None:
|
289
|
+
msg += f"* {INFO}Term summary is missing\n"
|
290
|
+
|
291
|
+
if description is None:
|
292
|
+
msg += f"* {INFO}Term description is missing\n"
|
293
|
+
|
294
|
+
if abbreviation is None:
|
295
|
+
msg += f"* {INFO}Term abbreviation is missing\n"
|
296
|
+
if examples is None:
|
297
|
+
msg += f"* {INFO}Term examples is missing\n"
|
298
|
+
if usage is None:
|
299
|
+
msg += f"* {INFO}Term usage is missing\n"
|
300
|
+
if version is None:
|
301
|
+
msg += f"* {INFO}Term version is missing - will default to 0.0.1\n"
|
302
|
+
version = "0.0.1"
|
303
|
+
|
304
|
+
|
305
|
+
if obj_action == "Update": # check to see if provided information exists and is consistent with existing info
|
261
306
|
if not term_exists:
|
262
307
|
msg += f"* {ERROR}Term {term_name} does not exist\n"
|
263
308
|
valid = False
|
@@ -274,19 +319,20 @@ def process_term_upsert_command(egeria_client: EgeriaTech, txt: str, directive:
|
|
274
319
|
else:
|
275
320
|
msg += f"--> * Term {term_name} exists and can be updated\n"
|
276
321
|
msg += term_display
|
277
|
-
|
322
|
+
|
278
323
|
print(Markdown(msg))
|
279
|
-
return valid, term_exists, known_term_guid
|
324
|
+
return valid, term_exists, known_term_guid, known_q_name
|
280
325
|
|
281
326
|
elif obj_action == 'Create': # if the command is create, check that it doesn't already exist
|
282
327
|
if term_exists:
|
283
|
-
msg += f"{WARNING}Term \'{term_name}\' already exists
|
284
|
-
|
328
|
+
msg += f"\n{WARNING}Term \'{term_name}\' already exists, response document updated.\n"
|
329
|
+
elif not valid:
|
330
|
+
msg += f"\n-->Validation checks failed in creating Term \'{term_name}\' with: {term_display}\n"
|
285
331
|
else:
|
286
|
-
msg += f"-->It is valid to create Term \'{term_name}\' with: {term_display}\n"
|
287
|
-
|
332
|
+
msg += f"\n-->It is valid to create Term \'{term_name}\' with: {term_display}\n"
|
333
|
+
|
288
334
|
print(Markdown(msg))
|
289
|
-
return valid, term_exists, known_term_guid
|
335
|
+
return valid, term_exists, known_term_guid, known_q_name
|
290
336
|
|
291
337
|
if object_action == "Update":
|
292
338
|
term_guid = extract_attribute(txt, 'GUID')
|
@@ -311,11 +357,11 @@ def process_term_upsert_command(egeria_client: EgeriaTech, txt: str, directive:
|
|
311
357
|
print(Markdown(term_display))
|
312
358
|
return None
|
313
359
|
elif directive == "validate":
|
314
|
-
is_valid, exists, known_guid = validate_term(object_action)
|
360
|
+
is_valid, exists, known_guid, known_q_name = validate_term(object_action)
|
315
361
|
valid = is_valid if is_valid else None
|
316
362
|
return valid
|
317
363
|
elif directive == "process":
|
318
|
-
is_valid, exists, known_guid = validate_term(object_action)
|
364
|
+
is_valid, exists, known_guid, known_q_name = validate_term(object_action)
|
319
365
|
if not is_valid: # First validate the term before we process it
|
320
366
|
return None
|
321
367
|
|
@@ -328,7 +374,7 @@ def process_term_upsert_command(egeria_client: EgeriaTech, txt: str, directive:
|
|
328
374
|
"elementProperties":
|
329
375
|
{
|
330
376
|
"class": "GlossaryTermProperties",
|
331
|
-
"qualifiedName":
|
377
|
+
"qualifiedName": known_q_name,
|
332
378
|
"summary": summary,
|
333
379
|
"description": description,
|
334
380
|
"abbreviation": abbreviation,
|
@@ -341,20 +387,28 @@ def process_term_upsert_command(egeria_client: EgeriaTech, txt: str, directive:
|
|
341
387
|
}
|
342
388
|
egeria_client.update_term(known_guid, body)
|
343
389
|
print(f"\n-->Updated Term {term_name} with GUID {known_guid}")
|
344
|
-
return update_a_command(txt, command, object_type,
|
390
|
+
return update_a_command(txt, command, object_type, known_q_name, known_guid)
|
345
391
|
|
346
392
|
elif object_action == "Create" :
|
347
393
|
guid = None
|
348
394
|
q_name = f"GlossaryTerm:{term_name}:{get_current_datetime_string()}"
|
349
395
|
if exists:
|
350
|
-
print(f"\n
|
351
|
-
return update_a_command(txt, command, object_type, q_name,
|
396
|
+
print(f"\n{ERROR}Term {term_name} exists and result document updated")
|
397
|
+
return update_a_command(txt, command, object_type, q_name, known_guid)
|
352
398
|
else:
|
353
|
-
## get the guid for the glossary from the name
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
399
|
+
## get the guid for the glossary from the name - first look locally
|
400
|
+
glossary = element_dictionary.get(f"glossary.{glossary_name}",None)
|
401
|
+
|
402
|
+
if glossary is not None:
|
403
|
+
glossary_guid = glossary.get('guid', None)
|
404
|
+
if glossary_guid is None:
|
405
|
+
print(f"{ERROR}Glossary reference {glossary_name} not found")
|
406
|
+
return None
|
407
|
+
else:
|
408
|
+
glossary_guid = egeria_client.__get_guid__(property_name="displayName", display_name=glossary_name)
|
409
|
+
if glossary_guid == NO_ELEMENTS_FOUND:
|
410
|
+
print(f"{ERROR}Glossary {glossary_name} not found")
|
411
|
+
return None
|
358
412
|
term_body = {
|
359
413
|
"class": "ReferenceableRequestBody",
|
360
414
|
"elementProperties":
|
@@ -377,10 +431,15 @@ def process_term_upsert_command(egeria_client: EgeriaTech, txt: str, directive:
|
|
377
431
|
"initialStatus": status
|
378
432
|
}
|
379
433
|
term_guid = egeria_client.create_controlled_glossary_term(glossary_guid, term_body)
|
434
|
+
if term_guid == NO_ELEMENTS_FOUND:
|
435
|
+
print(f"{ERROR}Term {term_name} not created")
|
436
|
+
return None
|
380
437
|
print(f"\n-->Created Term {term_name} with GUID {term_guid}")
|
438
|
+
element_dictionary[f"term.{term_name}"] = {'guid': term_guid, 'q_name': q_name}
|
381
439
|
return update_a_command(txt, command, object_type, q_name, term_guid)
|
382
440
|
|
383
|
-
|
441
|
+
|
442
|
+
def process_per_proj_upsert_command(egeria_client: EgeriaTech, element_dictionary: dict, txt: str, directive: str = "display" ) -> str | None:
|
384
443
|
"""
|
385
444
|
Processes a personal project create or update command by extracting key attributes such as
|
386
445
|
glossary name, language, description, and usage from the given cell.
|
@@ -403,7 +462,7 @@ def process_per_proj_upsert_command(egeria_client: EgeriaTech, txt: str, directi
|
|
403
462
|
project_health = extract_attribute(txt, 'Project Health')
|
404
463
|
start_date = extract_attribute(txt, 'Start Date')
|
405
464
|
planned_end_date = extract_attribute(txt, 'Planned End Date')
|
406
|
-
print(f"
|
465
|
+
print(Markdown(f"{pre_command} `{command}` for project: `{project_name}` with directive: `{directive}` "))
|
407
466
|
|
408
467
|
project_display = (f"\n* Command: {command}\n\t* Project: {project_name}\n\t"
|
409
468
|
f"* Status: {project_status}\n\t* Description: {description}\n\t"
|
@@ -512,9 +571,8 @@ def process_per_proj_upsert_command(egeria_client: EgeriaTech, txt: str, directi
|
|
512
571
|
return update_a_command(txt, command, object_type, known_q_name, known_guid)
|
513
572
|
elif object_action == "Create" :
|
514
573
|
guid = None
|
515
|
-
|
516
574
|
if exists:
|
517
|
-
print(f"Project {project_name} already exists and")
|
575
|
+
print(f"Project {project_name} already exists and update document created")
|
518
576
|
return update_a_command(txt, command, object_type, known_q_name, known_guid)
|
519
577
|
else:
|
520
578
|
guid = egeria_client.create_project(None,None, None, False,
|
@@ -526,5 +584,7 @@ def process_per_proj_upsert_command(egeria_client: EgeriaTech, txt: str, directi
|
|
526
584
|
if project_g == NO_GLOSSARIES_FOUND:
|
527
585
|
print(f"Just created with GUID {guid} but Project not found")
|
528
586
|
return None
|
529
|
-
|
587
|
+
|
588
|
+
q_name = project_g['projectProperties']["qualifiedName"]
|
589
|
+
element_dictionary[f"project.{project_name}"] = {'guid': guid, 'q_name': q_name}
|
530
590
|
return update_a_command(txt, command, object_type, q_name, guid)
|