pyegeria 5.4.8.4__tar.gz → 5.4.9.9__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.
Potentially problematic release.
This version of pyegeria might be problematic. Click here for more details.
- {pyegeria-5.4.8.4/pyegeria.egg-info → pyegeria-5.4.9.9}/PKG-INFO +31 -5
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/README.md +28 -1
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/__init__.py +4 -10
- pyegeria-5.4.9.9/commands/cat/collection_actions.py +202 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/exp_list_glossaries.py +8 -7
- pyegeria-5.4.9.9/commands/cat/get_asset_graph.py +89 -0
- pyegeria-5.4.8.4/commands/cat/get_collection.py → pyegeria-5.4.9.9/commands/cat/get_collection_tree.py +3 -5
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/get_project_dependencies.py +10 -9
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/get_project_structure.py +2 -2
- pyegeria-5.4.9.9/commands/cat/get_tech_type_elements.py +72 -0
- pyegeria-5.4.9.9/commands/cat/glossary_actions.py +359 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/list_assets.py +0 -1
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/list_cert_types.py +15 -61
- pyegeria-5.4.9.9/commands/cat/list_collections.py +121 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/list_deployed_catalogs.py +15 -27
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/list_deployed_database_schemas.py +27 -43
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/list_deployed_databases.py +15 -28
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/list_deployed_servers.py +33 -52
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/list_glossaries.py +3 -1
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/list_projects.py +3 -2
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/list_tech_type_elements.py +21 -37
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/list_tech_types.py +13 -25
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/list_terms.py +25 -49
- pyegeria-5.4.9.9/commands/cat/my_reports.py +561 -0
- pyegeria-5.4.9.9/commands/cat/run_report.py +388 -0
- pyegeria-5.4.8.4/commands/cat/run_report.py → pyegeria-5.4.9.9/commands/cat/run_report_orig.py +85 -9
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cli/egeria.py +173 -210
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cli/egeria_cat.py +10 -40
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cli/egeria_my.py +13 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cli/egeria_ops.py +69 -74
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cli/egeria_tech.py +14 -90
- {pyegeria-5.4.8.4/commands/cat → pyegeria-5.4.9.9/commands/deprecated}/list_data_designer.py +1 -0
- pyegeria-5.4.8.4/commands/cat/get_asset_graph.py → pyegeria-5.4.9.9/commands/deprecated/old_get_asset_graph.py +3 -5
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/ops/list_archives.py +15 -34
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/ops/list_catalog_targets.py +16 -25
- pyegeria-5.4.8.4/commands/ops/monitor_engine_activity.py → pyegeria-5.4.9.9/commands/ops/monitor_active_engine_activity.py +20 -35
- pyegeria-5.4.8.4/commands/ops/monitor_integ_daemon_status.py → pyegeria-5.4.9.9/commands/ops/monitor_daemon_status.py +31 -40
- pyegeria-5.4.8.4/commands/ops/monitor_engine_activity_c.py → pyegeria-5.4.9.9/commands/ops/monitor_engine_activity.py +42 -56
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/ops/monitor_platform_status.py +33 -45
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/get_element_info.py +20 -29
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/get_guid_info.py +23 -42
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/get_tech_details.py +20 -35
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/get_tech_type_template.py +28 -39
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_all_om_type_elements.py +24 -30
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_all_om_type_elements_x.py +22 -28
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_all_related_elements.py +19 -28
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_anchored_elements.py +20 -28
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_asset_types.py +19 -24
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_elements_by_classification_by_property_value.py +19 -25
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_elements_by_property_value.py +19 -25
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_elements_by_property_value_x.py +20 -28
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_elements_for_classification.py +31 -40
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_gov_action_processes.py +12 -19
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_information_supply_chains.py +22 -30
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_registered_services.py +14 -26
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_related_elements_with_prop_value.py +15 -25
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_relationship_types.py +15 -25
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_relationships.py +20 -36
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_solution_blueprints.py +28 -33
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_solution_components.py +23 -29
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_solution_roles.py +21 -32
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_tech_templates.py +48 -51
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/table_tech_templates.py +1 -1
- pyegeria-5.4.9.9/config/__init__.py +0 -0
- pyegeria-5.4.9.9/config/config.json +51 -0
- pyegeria-5.4.9.9/config/config_workspaces.json +48 -0
- pyegeria-5.4.9.9/config/dw-format-sets.json +936 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/GeoSpatial Products Example.py +3 -3
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/format_sets_save_load_example.py +40 -40
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/output_formats_example.py +31 -31
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/__init__.py +7 -1
- pyegeria-5.4.9.9/md_processing/data/commands.json +17568 -0
- pyegeria-5.4.8.4/md_processing/data/commands-working.json → pyegeria-5.4.9.9/md_processing/data/commands_working.json +9304 -13513
- pyegeria-5.4.9.9/md_processing/data/gened_report_specs.py +6584 -0
- pyegeria-5.4.9.9/md_processing/data/generated_format_sets.json +6533 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/dr_egeria.py +20 -9
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/md_commands/data_designer_commands.py +3 -3
- pyegeria-5.4.9.9/md_processing/md_commands/feedback_commands.py +740 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/md_commands/glossary_commands.py +2 -2
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/md_commands/product_manager_commands.py +2 -2
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/md_commands/project_commands.py +1 -1
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/md_commands/solution_architect_commands.py +176 -145
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/md_commands/view_commands.py +13 -3
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/md_processing_utils/common_md_proc_utils.py +22 -12
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/md_processing_utils/common_md_utils.py +3 -3
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/md_processing_utils/extraction_utils.py +13 -6
- pyegeria-5.4.8.4/md_processing/md_processing_utils/gen_format_sets.py → pyegeria-5.4.9.9/md_processing/md_processing_utils/gen_report_specs.py +264 -42
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/md_processing_utils/generate_dr_help.py +15 -3
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/md_processing_utils/generate_md_cmd_templates.py +16 -6
- pyegeria-5.4.9.9/md_processing/md_processing_utils/md_processing_constants.py +1228 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/__init__.py +10 -9
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/_base_client.py +16 -27
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/_client_new.py +261 -132
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/_exceptions_new.py +41 -27
- pyegeria-5.4.9.9/pyegeria/_globals.py +60 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/_output_format_models.py +45 -3
- pyegeria-5.4.8.4/pyegeria/asset_catalog_omvs.py → pyegeria-5.4.9.9/pyegeria/asset_catalog.py +204 -320
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/automated_curation.py +309 -44
- pyegeria-5.4.9.9/pyegeria/base_report_formats.py +2184 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/classification_manager.py +171 -167
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/collection_manager.py +11 -16
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/config.py +32 -13
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/data_designer.py +1 -1
- {pyegeria-5.4.8.4/pyegeria → pyegeria-5.4.9.9/pyegeria/deprecated}/runtime_manager_omvs.py +11 -26
- pyegeria-5.4.9.9/pyegeria/dr_egeria_reports.py +56 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/egeria_cat_client.py +1 -1
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/egeria_client.py +7 -7
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/egeria_tech_client.py +2 -2
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/format_set_executor.py +94 -19
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/glossary_manager.py +91 -1
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/governance_officer.py +146 -10
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/models.py +1 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/output_formatter.py +64 -7
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/project_manager.py +112 -6
- pyegeria-5.4.9.9/pyegeria/runtime_manager.py +2285 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/solution_architect.py +105 -65
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/utils.py +30 -0
- pyegeria-5.4.9.9/pyegeria/valid_metadata.py +3097 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9/pyegeria.egg-info}/PKG-INFO +31 -5
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria.egg-info/SOURCES.txt +29 -17
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria.egg-info/entry_points.txt +9 -11
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria.egg-info/requires.txt +2 -3
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria.egg-info/top_level.txt +1 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyproject.toml +26 -21
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_asset_catalog_omvs.py +32 -36
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_automated_curation_omvs.py +79 -32
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_classification_manager_omvs.py +20 -16
- pyegeria-5.4.9.9/tests/test_client_new.py +358 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_collection_manager_omvs.py +8 -6
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_data_designer.py +4 -4
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_glossary_manager_omvs.py +1 -1
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_governance_officer_omvs.py +42 -9
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_output_formats.py +21 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_project_manager_omvs.py +38 -34
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_runtime_manager.py +2 -2
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_solution_architect_omvs.py +61 -27
- pyegeria-5.4.9.9/tests/test_valid_metadata_omvs.py +769 -0
- pyegeria-5.4.8.4/commands/cat/get_tech_type_elements.py +0 -172
- pyegeria-5.4.8.4/commands/cat/glossary_actions.py +0 -512
- pyegeria-5.4.8.4/commands/cat/list_collections.py +0 -235
- pyegeria-5.4.8.4/commands/ops/monitor_asset_events.py +0 -108
- pyegeria-5.4.8.4/md_processing/data/commands.json +0 -59580
- pyegeria-5.4.8.4/md_processing/md_processing_utils/md_processing_constants.py +0 -357
- pyegeria-5.4.8.4/pyegeria/_globals.py +0 -143
- pyegeria-5.4.8.4/pyegeria/base_report_formats.py +0 -2865
- pyegeria-5.4.8.4/pyegeria/feedback_manager_omvs.py +0 -4353
- pyegeria-5.4.8.4/tests/test_client_new.py +0 -182
- pyegeria-5.4.8.4/tests/test_valid_metadata_omvs.py +0 -422
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/LICENSE +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/MANIFEST.in +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/Dr-Egeria_md-orig.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/__init__.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/dr_egeria_command_help.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/dr_egeria_jupyter.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/dr_egeria_md.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/list_todos.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cat/list_user_ids.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cli/__init__.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cli/egeria_login_tui.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/cli/ops_config.py +0 -0
- {pyegeria-5.4.8.4/commands/cat → pyegeria-5.4.9.9/commands/deprecated}/list_data_structures_full.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/my/__init__.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/my/list_my_profile.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/my/list_my_roles.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/my/monitor_my_todos.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/my/monitor_open_todos.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/my/todo_actions.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/ops/__init__.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/ops/gov_server_actions.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/ops/load_archive.py +0 -0
- /pyegeria-5.4.8.4/commands/ops/monitor_gov_eng_status.py → /pyegeria-5.4.9.9/commands/ops/monitor_engine_status.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/ops/monitor_server_startup.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/ops/monitor_server_status.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/ops/orig_monitor_server_list.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/ops/orig_monitor_server_status.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/ops/refresh_integration_daemon.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/ops/restart_integration_daemon.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/ops/table_integ_daemon_status.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/ops/x_engine_actions.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/__init__.py +0 -0
- /pyegeria-5.4.8.4/commands/tech/generic_actions.py → /pyegeria-5.4.9.9/commands/tech/element_actions.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_related_specification.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/list_valid_metadata_values.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/commands/tech/x_list_related_elements.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Coco_config/README.md +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Coco_config/__init__.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Coco_config/config_cocoMDS1.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Coco_config/config_cocoMDS2.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Coco_config/config_cocoMDS3.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Coco_config/config_cocoMDS4.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Coco_config/config_cocoMDS5.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Coco_config/config_cocoMDS6.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Coco_config/config_cocoMDSx.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Coco_config/config_cocoView1.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Coco_config/config_coco_core.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Coco_config/config_coco_datalake.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Coco_config/config_exchangeDL01.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Coco_config/config_governDL01.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Coco_config/config_monitorDev01.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Coco_config/config_monitorGov01.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Coco_config/globals.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Jupyter Notebooks/P-egeria-server-config.ipynb +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Jupyter Notebooks/README.md +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Jupyter Notebooks/common/P-environment-check.ipynb +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Jupyter Notebooks/common/__init__.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Jupyter Notebooks/common/common-functions.ipynb +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Jupyter Notebooks/common/environment-check.ipynb +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Jupyter Notebooks/common/globals.ipynb +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Jupyter Notebooks/common/globals.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/Jupyter Notebooks/common/orig_globals.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/format_sets/all_format_sets.json +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/format_sets/custom_format_sets.json +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/examples/format_sets/subset_format_sets.json +0 -0
- /pyegeria-5.4.8.4/md_processing/data/generated_format_sets.json → /pyegeria-5.4.9.9/md_processing/data/generated_format_sets_old.json +0 -0
- /pyegeria-5.4.8.4/md_processing/data/generated_format_sets.py → /pyegeria-5.4.9.9/md_processing/data/generated_format_sets_old.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/md_commands/__init__.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/md_commands/ext_ref_commands.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/md_commands/governance_officer_commands.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/md_processing_utils/__init__.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/md_processing_utils/determine_width.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/md_processing_utils/generate_md_templates.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/md_processing/md_processing_utils/message_constants.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/_client.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/_client_new_backup.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/_exceptions.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/_output_formats.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/_validators.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/collection_models.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/core_omag_server_config.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/create_tech_guid_lists.py +0 -0
- {pyegeria-5.4.8.4/pyegeria → pyegeria-5.4.9.9/pyegeria/deprecated}/_deprecated_gov_engine.py +0 -0
- {pyegeria-5.4.8.4/pyegeria → pyegeria-5.4.9.9/pyegeria/deprecated}/classification_manager_omvs.py +0 -0
- {pyegeria-5.4.8.4/pyegeria → pyegeria-5.4.9.9/pyegeria/deprecated}/valid_metadata_omvs.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/egeria_config_client.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/external_links.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/feedback_manager.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/full_omag_server_config.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/load_config.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/logging_configuration.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/mcp_adapter.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/mcp_server.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/md_processing_utils.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/mermaid_utilities.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/metadata_explorer_omvs.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/my_profile_omvs.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/output_formatter_with_machine_keys.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/platform_services.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/reference_data.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/registered_info.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/server_operations.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/template_manager_omvs.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria/x_action_author_omvs.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/pyegeria.egg-info/dependency_links.txt +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/setup.cfg +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_client.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_comments.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_config.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_config_unit.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_core_omag_server_config.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_dr_egeria_command_help_modes.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_egeria_cat_client.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_egeria_client.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_egeria_my_client.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_env_settings.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_external_links.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_feedback_manager_omvs.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_format_set_dict.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_full_omag_server_config.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_load_config.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_mcp_adapter.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_metadata_explorer_omvs.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_my_profile_omvs.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_output_format_models_unit.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_output_format_sets_unit.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_output_formatter_deepcopy_isolation.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_output_formatter_dict_collisions.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_platform_services.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_reference_data.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_registered_info.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_root_path.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_server_operations.py +0 -0
- {pyegeria-5.4.8.4 → pyegeria-5.4.9.9}/tests/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyegeria
|
|
3
|
-
Version: 5.4.
|
|
3
|
+
Version: 5.4.9.9
|
|
4
4
|
Summary: A python client for Egeria
|
|
5
5
|
Author-email: Dan Wolfson <dan.wolfson@pdr-associates.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -18,7 +18,6 @@ Requires-Dist: requests
|
|
|
18
18
|
Requires-Dist: jupyter
|
|
19
19
|
Requires-Dist: click
|
|
20
20
|
Requires-Dist: trogon
|
|
21
|
-
Requires-Dist: mermaid-py
|
|
22
21
|
Requires-Dist: psycopg2-binary>=2.9.11
|
|
23
22
|
Requires-Dist: jupyter-notebook-parser
|
|
24
23
|
Requires-Dist: loguru
|
|
@@ -28,10 +27,10 @@ Requires-Dist: pydantic-settings>=2.10.1
|
|
|
28
27
|
Requires-Dist: pydevd-pycharm>=253.27642.35
|
|
29
28
|
Requires-Dist: wcwidth
|
|
30
29
|
Requires-Dist: altair
|
|
31
|
-
Requires-Dist:
|
|
32
|
-
Requires-Dist: mcp>=1.18.0
|
|
30
|
+
Requires-Dist: mcp>=0.1
|
|
33
31
|
Requires-Dist: markers>=0.3.0
|
|
34
32
|
Requires-Dist: pytest-asyncio>=1.2.0
|
|
33
|
+
Requires-Dist: python-dotenv>=1.1.1
|
|
35
34
|
Provides-Extra: test
|
|
36
35
|
Requires-Dist: pytest; extra == "test"
|
|
37
36
|
Dynamic: license-file
|
|
@@ -46,6 +45,8 @@ Dynamic: license-file
|
|
|
46
45
|
|
|
47
46
|
# pyegeria: a python client for Egeria
|
|
48
47
|
|
|
48
|
+
A lightweight Python 3.12+ client and CLI for the Egeria open metadata and governance platform. It helps you configure and operate Egeria services and work with metadata (assets, glossaries, lineage, etc.) from Python, with examples, tests, and documented report formats.
|
|
49
|
+
|
|
49
50
|
This is a package for easily using the Egeria
|
|
50
51
|
open metadata environment from python. Details about the
|
|
51
52
|
open source Egeria project can be found at [Egeria Project](https://egeria-project.org).
|
|
@@ -61,9 +62,34 @@ to visualize and use Egeria. The commands also serve as useful examples.
|
|
|
61
62
|
|
|
62
63
|
An examples folder holds some useful examples showing different facets of using pyegeria.
|
|
63
64
|
|
|
64
|
-
For detailed guidance on report formats (selection
|
|
65
|
+
For detailed guidance on report formats (selection and migration from columns→attributes), see:
|
|
65
66
|
- examples/doc_samples/report_formats.md
|
|
66
67
|
|
|
68
|
+
### Report specs: families and filtering
|
|
69
|
+
|
|
70
|
+
Report specs (aka format sets) can be tagged with an optional `family` string to help organize and discover related specs.
|
|
71
|
+
|
|
72
|
+
- Show names with family and sort by family, then name:
|
|
73
|
+
|
|
74
|
+
```python
|
|
75
|
+
from pyegeria.base_report_formats import report_spec_list
|
|
76
|
+
|
|
77
|
+
names = report_spec_list(show_family=True, sort_by_family=True)
|
|
78
|
+
for n in names:
|
|
79
|
+
print(n)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
- Filter specs by family programmatically:
|
|
83
|
+
|
|
84
|
+
```python
|
|
85
|
+
from pyegeria.base_report_formats import report_specs
|
|
86
|
+
|
|
87
|
+
# Exact family match (case-insensitive)
|
|
88
|
+
security_specs = report_specs.filter_by_family("Security")
|
|
89
|
+
# Specs with no family assigned
|
|
90
|
+
no_family_specs = report_specs.filter_by_family("")
|
|
91
|
+
```
|
|
92
|
+
|
|
67
93
|
WARNING: files that start with "X" are in-progress placeholders that are not meant to be used..they will mature and
|
|
68
94
|
evolve.
|
|
69
95
|
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
|
|
9
9
|
# pyegeria: a python client for Egeria
|
|
10
10
|
|
|
11
|
+
A lightweight Python 3.12+ client and CLI for the Egeria open metadata and governance platform. It helps you configure and operate Egeria services and work with metadata (assets, glossaries, lineage, etc.) from Python, with examples, tests, and documented report formats.
|
|
12
|
+
|
|
11
13
|
This is a package for easily using the Egeria
|
|
12
14
|
open metadata environment from python. Details about the
|
|
13
15
|
open source Egeria project can be found at [Egeria Project](https://egeria-project.org).
|
|
@@ -23,9 +25,34 @@ to visualize and use Egeria. The commands also serve as useful examples.
|
|
|
23
25
|
|
|
24
26
|
An examples folder holds some useful examples showing different facets of using pyegeria.
|
|
25
27
|
|
|
26
|
-
For detailed guidance on report formats (selection
|
|
28
|
+
For detailed guidance on report formats (selection and migration from columns→attributes), see:
|
|
27
29
|
- examples/doc_samples/report_formats.md
|
|
28
30
|
|
|
31
|
+
### Report specs: families and filtering
|
|
32
|
+
|
|
33
|
+
Report specs (aka format sets) can be tagged with an optional `family` string to help organize and discover related specs.
|
|
34
|
+
|
|
35
|
+
- Show names with family and sort by family, then name:
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
from pyegeria.base_report_formats import report_spec_list
|
|
39
|
+
|
|
40
|
+
names = report_spec_list(show_family=True, sort_by_family=True)
|
|
41
|
+
for n in names:
|
|
42
|
+
print(n)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
- Filter specs by family programmatically:
|
|
46
|
+
|
|
47
|
+
```python
|
|
48
|
+
from pyegeria.base_report_formats import report_specs
|
|
49
|
+
|
|
50
|
+
# Exact family match (case-insensitive)
|
|
51
|
+
security_specs = report_specs.filter_by_family("Security")
|
|
52
|
+
# Specs with no family assigned
|
|
53
|
+
no_family_specs = report_specs.filter_by_family("")
|
|
54
|
+
```
|
|
55
|
+
|
|
29
56
|
WARNING: files that start with "X" are in-progress placeholders that are not meant to be used..they will mature and
|
|
30
57
|
evolve.
|
|
31
58
|
|
|
@@ -13,18 +13,12 @@ from .cat.list_deployed_databases import list_deployed_databases
|
|
|
13
13
|
from .cat.list_glossaries import display_glossaries
|
|
14
14
|
from .cat.list_terms import display_glossary_terms
|
|
15
15
|
from .ops.list_catalog_targets import display_catalog_targets
|
|
16
|
-
from .ops.
|
|
17
|
-
from .ops.
|
|
18
|
-
from .ops.
|
|
16
|
+
from .ops.monitor_engine_activity import display_engine_activity_c
|
|
17
|
+
from .ops.monitor_engine_status import display_gov_eng_status
|
|
18
|
+
from .ops.monitor_daemon_status import display_integration_daemon_status
|
|
19
19
|
from .ops.table_integ_daemon_status import (
|
|
20
20
|
display_integration_daemon_status as table_integ_daemon_status,
|
|
21
21
|
)
|
|
22
|
-
from .tech.list_elements_by_property_value import EGERIA_WIDTH
|
|
23
22
|
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
search_list: str, width: int = EGERIA_WIDTH, sort: bool = True
|
|
27
|
-
):
|
|
28
|
-
table_integ_daemon_status(
|
|
29
|
-
search_list=search_list, paging=True, width=width, sort=sort
|
|
30
|
-
)
|
|
24
|
+
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"""
|
|
2
|
+
SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
Copyright Contributors to the ODPi Egeria project.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Execute Glossary actions.
|
|
8
|
+
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
import csv
|
|
12
|
+
import json
|
|
13
|
+
import os
|
|
14
|
+
import sys
|
|
15
|
+
import time
|
|
16
|
+
from datetime import datetime
|
|
17
|
+
|
|
18
|
+
import click
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
from pyegeria import EgeriaTech, body_slimmer, settings
|
|
22
|
+
from pyegeria._exceptions_new import (
|
|
23
|
+
PyegeriaException, print_basic_exception
|
|
24
|
+
)
|
|
25
|
+
app_config = settings.Environment
|
|
26
|
+
|
|
27
|
+
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
|
28
|
+
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
|
29
|
+
|
|
30
|
+
COLLECTION_TYPES = ["Collection", "Glossary", "CollectionFolder", "RootCollection", "WorkItemList", "SolutionBlueprint" ]
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
@click.command("add-element-to-collection")
|
|
34
|
+
@click.option("--element-guid", required=True, default = "",help="GUID of the element to add to a Collection")
|
|
35
|
+
@click.option("--collection-guid", required=True, default = "", help="GUID of the Collection to add an element to")
|
|
36
|
+
@click.option("--server", default=app_config.egeria_view_server, help="Egeria view server to use")
|
|
37
|
+
@click.option(
|
|
38
|
+
"--url", default=app_config.egeria_view_server_url, help="URL of Egeria platform to connect to"
|
|
39
|
+
)
|
|
40
|
+
@click.option("--userid", default=EGERIA_USER, help="Egeria user")
|
|
41
|
+
@click.option("--password", default=EGERIA_USER_PASSWORD, help="Egeria user password")
|
|
42
|
+
@click.option("--timeout", default=60, help="Number of seconds to wait")
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def add_element_to_collection(server, url, userid, password, timeout, element_guid, collection_guid):
|
|
46
|
+
"""Add a glossary term to a Collection"""
|
|
47
|
+
m_client = EgeriaTech(server, url, user_id=userid, user_pwd=password)
|
|
48
|
+
token = m_client.create_egeria_bearer_token()
|
|
49
|
+
try:
|
|
50
|
+
element_guid = element_guid.strip()
|
|
51
|
+
collection_guid = collection_guid.strip()
|
|
52
|
+
m_client.add_to_collection(element_guid, collection_guid)
|
|
53
|
+
|
|
54
|
+
click.echo(
|
|
55
|
+
f"Added element with GUID: {element_guid} to Collection with GUID: {collection_guid}\n"
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
except PyegeriaException as e:
|
|
59
|
+
print_basic_exception(e)
|
|
60
|
+
finally:
|
|
61
|
+
m_client.close_session()
|
|
62
|
+
|
|
63
|
+
@click.command("remove-element-from-collection")
|
|
64
|
+
@click.option("--element-guid", required=True, default = "",help="GUID of the element to remove from the collection")
|
|
65
|
+
@click.option("--collection-guid", required=True, default = "", help="GUID of collection to remove the element from")
|
|
66
|
+
|
|
67
|
+
@click.option("--server", default=app_config.egeria_view_server, help="Egeria view server to use")
|
|
68
|
+
@click.option(
|
|
69
|
+
"--url", default=app_config.egeria_view_server_url, help="URL of Egeria platform to connect to"
|
|
70
|
+
)
|
|
71
|
+
@click.option("--userid", default=EGERIA_USER, help="Egeria user")
|
|
72
|
+
@click.option("--password", default=EGERIA_USER_PASSWORD, help="Egeria user password")
|
|
73
|
+
@click.option("--timeout", default=60, help="Number of seconds to wait")
|
|
74
|
+
|
|
75
|
+
def remove_element_from_collection(server, url, userid, password, timeout, element_guid, collection_guid):
|
|
76
|
+
"""Remove an element from a Collection"""
|
|
77
|
+
m_client = EgeriaTech(server, url, user_id=userid, user_pwd=password)
|
|
78
|
+
token = m_client.create_egeria_bearer_token()
|
|
79
|
+
try:
|
|
80
|
+
element_guid = element_guid.strip()
|
|
81
|
+
collection_guid = collection_guid.strip()
|
|
82
|
+
body = {
|
|
83
|
+
"class": "DeleteRelationshipRequestBody"
|
|
84
|
+
}
|
|
85
|
+
m_client.remove_from_collection( collection_guid, element_guid, body)
|
|
86
|
+
|
|
87
|
+
click.echo(
|
|
88
|
+
f"Removed term with GUID: {element_guid} from Collection with GUID: {collection_guid}\n"
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
except PyegeriaException as e:
|
|
92
|
+
print_basic_exception(e)
|
|
93
|
+
finally:
|
|
94
|
+
m_client.close_session()
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
@click.command("create-collection")
|
|
98
|
+
@click.option("--name", help="Collection Name",default = "", required=True)
|
|
99
|
+
@click.option("--kind", help="Kind of Collection", default = "Collection",
|
|
100
|
+
type=click.Choice(COLLECTION_TYPES, case_sensitive=False))
|
|
101
|
+
@click.option(
|
|
102
|
+
"--description",
|
|
103
|
+
help="Description of the Collection",
|
|
104
|
+
default="A description goes here",
|
|
105
|
+
)
|
|
106
|
+
@click.option(
|
|
107
|
+
"--category", default = "",
|
|
108
|
+
help="Category of the Collection"
|
|
109
|
+
)
|
|
110
|
+
@click.option("--server", default=app_config.egeria_view_server, help="Egeria view server to use.")
|
|
111
|
+
@click.option(
|
|
112
|
+
"--url", default=app_config.egeria_view_server_url, help="URL of Egeria platform to connect to"
|
|
113
|
+
)
|
|
114
|
+
@click.option("--userid", default=EGERIA_USER, help="Egeria user")
|
|
115
|
+
@click.option("--password", default=EGERIA_USER_PASSWORD, help="Egeria user password")
|
|
116
|
+
@click.option("--timeout", default=60, help="Number of seconds to wait")
|
|
117
|
+
def create_collection(
|
|
118
|
+
server: str,
|
|
119
|
+
url: str,
|
|
120
|
+
userid: str,
|
|
121
|
+
password: str,
|
|
122
|
+
timeout: int,
|
|
123
|
+
name: str,
|
|
124
|
+
kind: str,
|
|
125
|
+
description: str,
|
|
126
|
+
category: str,
|
|
127
|
+
) -> None:
|
|
128
|
+
"""Create a new Collection"""
|
|
129
|
+
|
|
130
|
+
try:
|
|
131
|
+
m_client = EgeriaTech(server, url, userid, password)
|
|
132
|
+
token = m_client.create_egeria_bearer_token()
|
|
133
|
+
|
|
134
|
+
collection_guid = m_client.create_collection( display_name = name, description = description, category = category,
|
|
135
|
+
prop = [kind])
|
|
136
|
+
print(f"New categry \'{name}\' created with id of \'{collection_guid}\'")
|
|
137
|
+
|
|
138
|
+
except PyegeriaException as e:
|
|
139
|
+
print_basic_exception(e)
|
|
140
|
+
finally:
|
|
141
|
+
m_client.close_session()
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
@click.command("update-collection")
|
|
145
|
+
@click.option("--name", help="Collection Name", default = "",required=False)
|
|
146
|
+
@click.option("--description", default = "",help="Description of the Collection")
|
|
147
|
+
@click.option("--category", default = "", help="Category of the Collection")
|
|
148
|
+
@click.option("--server", default=app_config.egeria_view_server, help="Egeria view server to use")
|
|
149
|
+
@click.option(
|
|
150
|
+
"--url", default=app_config.egeria_view_server_url, help="URL of Egeria platform to connect to"
|
|
151
|
+
)
|
|
152
|
+
@click.option("--userid", default=EGERIA_USER, help="Egeria user")
|
|
153
|
+
@click.option("--password", default=EGERIA_USER_PASSWORD, help="Egeria user password")
|
|
154
|
+
@click.option("--timeout", default=60, help="Number of seconds to wait")
|
|
155
|
+
@click.argument("collection-guid")
|
|
156
|
+
|
|
157
|
+
def update_collection(collection_guid, name, description, category, server, url, userid, password, timeout, ):
|
|
158
|
+
"""Update the collection specified"""
|
|
159
|
+
m_client = EgeriaTech(server, url, user_id=userid, user_pwd=password)
|
|
160
|
+
token = m_client.create_egeria_bearer_token()
|
|
161
|
+
try:
|
|
162
|
+
body = {
|
|
163
|
+
"class" : "UpdateElementRequestBody",
|
|
164
|
+
"properties": {
|
|
165
|
+
"class" : "CollectionProperties",
|
|
166
|
+
"name" : name,
|
|
167
|
+
"description" : description,
|
|
168
|
+
"category": category
|
|
169
|
+
},
|
|
170
|
+
}
|
|
171
|
+
m_client.update_collection(collection_guid, body_slimmer(body))
|
|
172
|
+
|
|
173
|
+
click.echo(f"Updated glossary: {collection_guid}")
|
|
174
|
+
|
|
175
|
+
except PyegeriaException as e:
|
|
176
|
+
print_basic_exception(e)
|
|
177
|
+
finally:
|
|
178
|
+
m_client.close_session()
|
|
179
|
+
|
|
180
|
+
@click.command("delete-collection")
|
|
181
|
+
@click.argument("collection-guid")
|
|
182
|
+
@click.option("--server", default=app_config.egeria_view_server, help="Egeria view server to use")
|
|
183
|
+
@click.option(
|
|
184
|
+
"--url", default=app_config.egeria_view_server_url, help="URL of Egeria platform to connect to"
|
|
185
|
+
)
|
|
186
|
+
@click.option("--userid", default=EGERIA_USER, help="Egeria user")
|
|
187
|
+
@click.option("--password", default=EGERIA_USER_PASSWORD, help="Egeria user password")
|
|
188
|
+
@click.option("--timeout", default=60, help="Number of seconds to wait")
|
|
189
|
+
|
|
190
|
+
def delete_collection(server, url, userid, password, timeout, collection_guid):
|
|
191
|
+
"""Delete the collection specified"""
|
|
192
|
+
m_client = EgeriaTech(server, url, user_id=userid, user_pwd=password)
|
|
193
|
+
token = m_client.create_egeria_bearer_token()
|
|
194
|
+
try:
|
|
195
|
+
m_client.delete_collection(collection_guid)
|
|
196
|
+
|
|
197
|
+
click.echo(f"Deleted collection: {collection_guid}")
|
|
198
|
+
|
|
199
|
+
except PyegeriaException as e:
|
|
200
|
+
print_basic_exception(e)
|
|
201
|
+
finally:
|
|
202
|
+
m_client.close_session()
|
|
@@ -19,7 +19,7 @@ from rich.markdown import Markdown
|
|
|
19
19
|
from rich.prompt import Prompt
|
|
20
20
|
from rich.table import Table
|
|
21
21
|
from rich.text import Text
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
|
|
24
24
|
from pyegeria import (
|
|
25
25
|
EgeriaTech,
|
|
@@ -99,16 +99,17 @@ def display_glossaries(
|
|
|
99
99
|
glossaries = m_client.find_glossaries(search_string)
|
|
100
100
|
if type(glossaries) is list:
|
|
101
101
|
sorted_glossary_list = sorted(
|
|
102
|
-
glossaries, key=lambda k: k["
|
|
102
|
+
glossaries, key=lambda k: k["properties"]["displayName"]
|
|
103
103
|
)
|
|
104
104
|
for glossary in sorted_glossary_list:
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
|
|
106
|
+
display_name = glossary["properties"]["displayName"]
|
|
107
|
+
qualified_name = glossary["properties"]["qualifiedName"]
|
|
107
108
|
guid = glossary["elementHeader"]["guid"]
|
|
108
109
|
q_name = Text(f"{qualified_name}\n&\n{guid}", justify="center")
|
|
109
|
-
language = glossary["
|
|
110
|
-
description = glossary["
|
|
111
|
-
usage = glossary["
|
|
110
|
+
language = glossary["properties"]["language"]
|
|
111
|
+
description = glossary["properties"]["description"]
|
|
112
|
+
usage = glossary["properties"]["usage"]
|
|
112
113
|
text = "http://100.83.199.62:8088/superset/dashboard/p/xOgE56dLNaY/"
|
|
113
114
|
|
|
114
115
|
table.add_row(display_name, q_name, language, text)
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Copyright Contributors to the ODPi Egeria project.
|
|
5
|
+
|
|
6
|
+
Display Asset Graph Information using generic functions.
|
|
7
|
+
"""
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
import argparse
|
|
10
|
+
import json
|
|
11
|
+
import os
|
|
12
|
+
import time
|
|
13
|
+
from typing import Any, Dict, Iterable, List, Mapping, Sequence
|
|
14
|
+
|
|
15
|
+
from rich import box
|
|
16
|
+
from rich.console import Console
|
|
17
|
+
from rich.table import Table
|
|
18
|
+
from rich.prompt import Prompt
|
|
19
|
+
|
|
20
|
+
from commands.cat.run_report import list_generic
|
|
21
|
+
from pyegeria import config_logging
|
|
22
|
+
from pyegeria.config import settings
|
|
23
|
+
from pyegeria._exceptions_new import PyegeriaException, print_exception_response, print_basic_exception
|
|
24
|
+
from pyegeria.base_report_formats import get_report_spec_heading, select_report_spec
|
|
25
|
+
from pyegeria.format_set_executor import exec_report_spec
|
|
26
|
+
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
|
27
|
+
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
app_config = settings.Environment
|
|
31
|
+
|
|
32
|
+
guid_list = []
|
|
33
|
+
|
|
34
|
+
console = Console(width=app_config.console_width, force_terminal=(not app_config.egeria_jupyter))
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def asset_viewer(
|
|
38
|
+
output_format: str = "TABLE",
|
|
39
|
+
asset_guid: str = None,
|
|
40
|
+
view_server: str = app_config.egeria_view_server,
|
|
41
|
+
view_url: str = app_config.egeria_view_server_url,
|
|
42
|
+
user: str = EGERIA_USER,
|
|
43
|
+
user_pass: str = EGERIA_USER_PASSWORD,
|
|
44
|
+
jupyter: bool = app_config.egeria_jupyter,
|
|
45
|
+
width: int = app_config.console_width,
|
|
46
|
+
prompt_missing: bool = False,
|
|
47
|
+
write_file: bool = False,
|
|
48
|
+
render_table: bool = False,
|
|
49
|
+
table_caption: str | None = None,
|
|
50
|
+
use_pager: bool = True,
|
|
51
|
+
):
|
|
52
|
+
try:
|
|
53
|
+
list_generic(report_spec="Asset-Graph", output_format=output_format, view_server=view_server,
|
|
54
|
+
view_url=view_url, user=user, user_pass=user_pass, params={"asset_guid": asset_guid},
|
|
55
|
+
render_table=render_table, write_file = write_file, table_caption=table_caption, use_pager=use_pager,
|
|
56
|
+
width=width, jupyter=jupyter, prompt_missing=prompt_missing)
|
|
57
|
+
|
|
58
|
+
except PyegeriaException as e:
|
|
59
|
+
print_basic_exception(e)
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def main():
|
|
63
|
+
parser = argparse.ArgumentParser()
|
|
64
|
+
|
|
65
|
+
parser.add_argument("--server", help="Name of the server to display status for")
|
|
66
|
+
parser.add_argument("--url", help="URL Platform to connect to")
|
|
67
|
+
parser.add_argument("--userid", help="User Id")
|
|
68
|
+
parser.add_argument("--password", help="User Password")
|
|
69
|
+
args = parser.parse_args()
|
|
70
|
+
|
|
71
|
+
server = args.server if args.server is not None else app_config.egeria_view_server
|
|
72
|
+
url = args.url if args.url is not None else app_config.egeria_view_server_url
|
|
73
|
+
userid = args.userid if args.userid is not None else EGERIA_USER
|
|
74
|
+
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
|
75
|
+
try:
|
|
76
|
+
asset_guid = Prompt.ask("Enter the Asset GUID to view:", default="")
|
|
77
|
+
output_format = Prompt.ask("Enter the output format:", default="TABLE")
|
|
78
|
+
asset_viewer(output_format, asset_guid, server, url, userid,
|
|
79
|
+
user_pass, prompt_missing=True, write_file=True, render_table=True,
|
|
80
|
+
table_caption="Asset Graph")
|
|
81
|
+
except KeyboardInterrupt as e:
|
|
82
|
+
# console.print_exception()
|
|
83
|
+
pass
|
|
84
|
+
except Exception as e:
|
|
85
|
+
console.print_exception()
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
if __name__ == "__main__":
|
|
89
|
+
main()
|
|
@@ -74,9 +74,9 @@ def collection_viewer(
|
|
|
74
74
|
)
|
|
75
75
|
text_guid = Text(f"* GUID: {member['guid']}", "green")
|
|
76
76
|
text_collection_type = Text(
|
|
77
|
-
f"* Collection Type: {member
|
|
77
|
+
f"* Collection Type: {member.get('typeName','')}"
|
|
78
78
|
)
|
|
79
|
-
text_description = Text(f"* Description: {member
|
|
79
|
+
text_description = Text(f"* Description: {member.get('description','')}")
|
|
80
80
|
p = Panel.fit(
|
|
81
81
|
f"{text_collection_name}[green]\n{text_qualified_name}\n{text_guid}\n"
|
|
82
82
|
f"{text_collection_type}\n{text_description}"
|
|
@@ -94,9 +94,7 @@ def collection_viewer(
|
|
|
94
94
|
)
|
|
95
95
|
walk_collection_hierarchy(branch, collection_client, member["guid"])
|
|
96
96
|
else:
|
|
97
|
-
tt = tree.add(
|
|
98
|
-
f"[bold magenta on black]No collections found in {root_collection_name}"
|
|
99
|
-
)
|
|
97
|
+
tt = tree.add("[bold magenta on black]No Members found")
|
|
100
98
|
|
|
101
99
|
try:
|
|
102
100
|
tree = Tree(f"[bold bright green]{root}", guide_style="bold bright_blue")
|
|
@@ -10,6 +10,7 @@ A simple viewer for project dependencies - provide the root and we display the d
|
|
|
10
10
|
import argparse
|
|
11
11
|
import os
|
|
12
12
|
|
|
13
|
+
from pydantic import ValidationError
|
|
13
14
|
from rich import print
|
|
14
15
|
from rich.console import Console
|
|
15
16
|
from rich.markdown import Markdown
|
|
@@ -21,7 +22,7 @@ from pyegeria import (
|
|
|
21
22
|
InvalidParameterException,
|
|
22
23
|
ProjectManager,
|
|
23
24
|
PropertyServerException,
|
|
24
|
-
UserNotAuthorizedException,
|
|
25
|
+
UserNotAuthorizedException, PyegeriaException, print_basic_exception, print_validation_error,
|
|
25
26
|
)
|
|
26
27
|
from pyegeria._exceptions import print_exception_response
|
|
27
28
|
|
|
@@ -72,7 +73,7 @@ def project_dependency_viewer(
|
|
|
72
73
|
proj_type = proj_props.get("typeName", "---")
|
|
73
74
|
proj_unique = proj_props.get("qualifiedName", "---")
|
|
74
75
|
proj_identifier = proj_props.get("identifier", "---")
|
|
75
|
-
proj_name = proj_props.get("
|
|
76
|
+
proj_name = proj_props.get("displayName", "---")
|
|
76
77
|
proj_desc = proj_props.get("description", "---")
|
|
77
78
|
proj_status = proj_props.get("projectStatus", "---")
|
|
78
79
|
proj_priority = proj_props.get("priority", "---")
|
|
@@ -90,7 +91,7 @@ def project_dependency_viewer(
|
|
|
90
91
|
else:
|
|
91
92
|
return
|
|
92
93
|
|
|
93
|
-
team = project_client.get_project_team(proj_guid)
|
|
94
|
+
team = project_client.get_project_team(proj_guid,"")
|
|
94
95
|
member_md = ""
|
|
95
96
|
if type(team) is list:
|
|
96
97
|
for member in team:
|
|
@@ -131,12 +132,12 @@ def project_dependency_viewer(
|
|
|
131
132
|
walk_project_hierarchy(p_client, root, tree, root=True)
|
|
132
133
|
print(tree)
|
|
133
134
|
|
|
134
|
-
except
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
135
|
+
except PyegeriaException as e:
|
|
136
|
+
print_basic_exception(e)
|
|
137
|
+
except ValidationError as e:
|
|
138
|
+
print_validation_error(e)
|
|
139
|
+
except Exception as e:
|
|
140
|
+
print_basic_exception(e)
|
|
140
141
|
|
|
141
142
|
|
|
142
143
|
def main():
|
|
@@ -72,7 +72,7 @@ def project_structure_viewer(
|
|
|
72
72
|
proj_type = proj_props.get("typeName", "---")
|
|
73
73
|
proj_unique = proj_props.get("qualifiedName", "---")
|
|
74
74
|
proj_identifier = proj_props.get("identifier", "---")
|
|
75
|
-
proj_name = proj_props.get("
|
|
75
|
+
proj_name = proj_props.get("displayName", "---")
|
|
76
76
|
proj_desc = proj_props.get("description", "---")
|
|
77
77
|
proj_status = proj_props.get("projectStatus", "---")
|
|
78
78
|
proj_priority = proj_props.get("priority", "---")
|
|
@@ -90,7 +90,7 @@ def project_structure_viewer(
|
|
|
90
90
|
else:
|
|
91
91
|
return
|
|
92
92
|
|
|
93
|
-
team = project_client.get_project_team(proj_guid)
|
|
93
|
+
team = project_client.get_project_team(proj_guid,"")
|
|
94
94
|
member_md = ""
|
|
95
95
|
if type(team) is list:
|
|
96
96
|
for member in team:
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
Copyright Contributors to the ODPi Egeria project.
|
|
5
|
+
|
|
6
|
+
Display the status of cataloged platforms and servers.
|
|
7
|
+
"""
|
|
8
|
+
import argparse
|
|
9
|
+
import os
|
|
10
|
+
|
|
11
|
+
from rich.console import Console
|
|
12
|
+
from rich.prompt import Prompt
|
|
13
|
+
|
|
14
|
+
from commands.cat.run_report import list_generic
|
|
15
|
+
from pyegeria import (
|
|
16
|
+
settings,
|
|
17
|
+
config_logging, print_basic_exception, PyegeriaException
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
|
21
|
+
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
|
22
|
+
|
|
23
|
+
app_config = settings.Environment
|
|
24
|
+
config_logging()
|
|
25
|
+
console = Console(width=app_config.console_width)
|
|
26
|
+
|
|
27
|
+
guid_list = []
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def tech_viewer(
|
|
31
|
+
tech_name: str,
|
|
32
|
+
server_name: str,
|
|
33
|
+
platform_url: str,
|
|
34
|
+
user: str,
|
|
35
|
+
user_pass: str,
|
|
36
|
+
jupyter: bool = app_config.egeria_jupyter,
|
|
37
|
+
width: int = app_config.console_width,
|
|
38
|
+
):
|
|
39
|
+
try:
|
|
40
|
+
list_generic(report_spec = "Tech-Type-Elements", output_format = "TABLE", view_server = server_name,
|
|
41
|
+
view_url= platform_url, user = user, user_pass = user_pass, prompt_missing = True,
|
|
42
|
+
params = {"filter": tech_name},
|
|
43
|
+
render_table=True, table_caption="Tech Type Elements", use_pager=True, width=width, jupyter=jupyter)
|
|
44
|
+
|
|
45
|
+
except PyegeriaException as e:
|
|
46
|
+
console.print_exception(show_locals=True)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def main():
|
|
50
|
+
parser = argparse.ArgumentParser()
|
|
51
|
+
|
|
52
|
+
parser.add_argument("--server", help="Name of the server to display status for")
|
|
53
|
+
parser.add_argument("--url", help="URL Platform to connect to")
|
|
54
|
+
parser.add_argument("--userid", help="User Id")
|
|
55
|
+
parser.add_argument("--password", help="User Password")
|
|
56
|
+
args = parser.parse_args()
|
|
57
|
+
|
|
58
|
+
server = args.server if args.server is not None else app_config.egeria_view_server
|
|
59
|
+
url = args.url if args.url is not None else app_config.egeria_view_server_url
|
|
60
|
+
userid = args.userid if args.userid is not None else EGERIA_USER
|
|
61
|
+
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
|
62
|
+
try:
|
|
63
|
+
tech_name = Prompt.ask(
|
|
64
|
+
"Enter the Asset Name to view:", default="PostgreSQL Server"
|
|
65
|
+
)
|
|
66
|
+
tech_viewer(tech_name, server, url, userid, user_pass)
|
|
67
|
+
except KeyboardInterrupt:
|
|
68
|
+
pass
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
if __name__ == "__main__":
|
|
72
|
+
main()
|