pyegeria 5.3.9.9.3__py3-none-any.whl → 5.5.3.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pyegeria might be problematic. Click here for more details.
- commands/__init__.py +24 -0
- commands/cat/Dr-Egeria_md-orig.py +2 -2
- commands/cat/__init__.py +1 -17
- commands/cat/collection_actions.py +197 -0
- commands/cat/dr_egeria_command_help.py +372 -0
- commands/cat/dr_egeria_jupyter.py +7 -7
- commands/cat/dr_egeria_md.py +27 -182
- commands/cat/exp_list_glossaries.py +11 -14
- commands/cat/get_asset_graph.py +37 -267
- commands/cat/{get_collection.py → get_collection_tree.py} +10 -18
- commands/cat/get_project_dependencies.py +14 -14
- commands/cat/get_project_structure.py +15 -14
- commands/cat/get_tech_type_elements.py +16 -116
- commands/cat/glossary_actions.py +145 -298
- commands/cat/list_assets.py +3 -11
- commands/cat/list_cert_types.py +17 -63
- commands/cat/list_collections.py +46 -138
- commands/cat/list_deployed_catalogs.py +15 -27
- commands/cat/list_deployed_database_schemas.py +27 -43
- commands/cat/list_deployed_databases.py +16 -31
- commands/cat/list_deployed_servers.py +35 -54
- commands/cat/list_glossaries.py +18 -17
- commands/cat/list_projects.py +10 -12
- commands/cat/list_tech_type_elements.py +21 -37
- commands/cat/list_tech_types.py +13 -25
- commands/cat/list_terms.py +38 -79
- commands/cat/list_todos.py +4 -11
- commands/cat/list_user_ids.py +3 -10
- commands/cat/my_reports.py +559 -0
- commands/cat/run_report.py +394 -0
- commands/cat/run_report_orig.py +528 -0
- commands/cli/egeria.py +222 -247
- commands/cli/egeria_cat.py +68 -81
- commands/cli/egeria_my.py +13 -0
- commands/cli/egeria_ops.py +69 -74
- commands/cli/egeria_tech.py +17 -93
- commands/cli/ops_config.py +3 -6
- commands/{cat/list_categories.py → deprecated/list_data_designer.py} +53 -64
- commands/{cat/list_data_structures.py → deprecated/list_data_structures_full.py} +3 -6
- commands/deprecated/old_get_asset_graph.py +315 -0
- commands/my/__init__.py +0 -2
- commands/my/list_my_profile.py +27 -34
- commands/my/list_my_roles.py +1 -7
- commands/my/monitor_my_todos.py +1 -7
- commands/my/monitor_open_todos.py +6 -7
- commands/my/todo_actions.py +4 -5
- commands/ops/__init__.py +0 -2
- commands/ops/gov_server_actions.py +17 -21
- commands/ops/list_archives.py +17 -38
- commands/ops/list_catalog_targets.py +33 -40
- commands/ops/load_archive.py +35 -26
- commands/ops/{monitor_engine_activity_c.py → monitor_active_engine_activity.py} +51 -82
- commands/ops/{monitor_integ_daemon_status.py → monitor_daemon_status.py} +35 -55
- commands/ops/monitor_engine_activity.py +79 -77
- commands/ops/{monitor_gov_eng_status.py → monitor_engine_status.py} +10 -7
- commands/ops/monitor_platform_status.py +38 -50
- commands/ops/monitor_server_startup.py +6 -11
- commands/ops/monitor_server_status.py +7 -11
- commands/ops/orig_monitor_server_list.py +8 -8
- commands/ops/orig_monitor_server_status.py +1 -5
- commands/ops/refresh_integration_daemon.py +5 -5
- commands/ops/restart_integration_daemon.py +5 -5
- commands/ops/table_integ_daemon_status.py +6 -6
- commands/ops/x_engine_actions.py +7 -7
- commands/tech/__init__.py +0 -2
- commands/tech/{generic_actions.py → element_actions.py} +6 -11
- commands/tech/get_element_info.py +20 -29
- commands/tech/get_guid_info.py +23 -42
- commands/tech/get_tech_details.py +20 -35
- commands/tech/get_tech_type_template.py +28 -39
- commands/tech/list_all_om_type_elements.py +24 -30
- commands/tech/list_all_om_type_elements_x.py +22 -28
- commands/tech/list_all_related_elements.py +19 -28
- commands/tech/list_anchored_elements.py +22 -30
- commands/tech/list_asset_types.py +19 -24
- commands/tech/list_elements_by_classification_by_property_value.py +26 -32
- commands/tech/list_elements_by_property_value.py +19 -25
- commands/tech/list_elements_by_property_value_x.py +20 -28
- commands/tech/list_elements_for_classification.py +28 -41
- commands/tech/list_gov_action_processes.py +16 -27
- commands/tech/list_information_supply_chains.py +22 -30
- commands/tech/list_registered_services.py +14 -26
- commands/tech/list_related_elements_with_prop_value.py +15 -25
- commands/tech/list_related_specification.py +1 -4
- commands/tech/list_relationship_types.py +15 -25
- commands/tech/list_relationships.py +20 -36
- commands/tech/list_solution_blueprints.py +28 -33
- commands/tech/list_solution_components.py +23 -29
- commands/tech/list_solution_roles.py +21 -32
- commands/tech/list_tech_templates.py +51 -54
- commands/tech/list_valid_metadata_values.py +5 -9
- commands/tech/table_tech_templates.py +2 -6
- commands/tech/x_list_related_elements.py +1 -4
- examples/GeoSpatial Products Example.py +524 -0
- examples/Jupyter Notebooks/P-egeria-server-config.ipynb +2137 -0
- examples/Jupyter Notebooks/README.md +2 -0
- examples/Jupyter Notebooks/common/P-environment-check.ipynb +115 -0
- examples/Jupyter Notebooks/common/__init__.py +14 -0
- examples/Jupyter Notebooks/common/common-functions.ipynb +4694 -0
- examples/Jupyter Notebooks/common/environment-check.ipynb +52 -0
- examples/Jupyter Notebooks/common/globals.ipynb +184 -0
- examples/Jupyter Notebooks/common/globals.py +154 -0
- examples/Jupyter Notebooks/common/orig_globals.py +152 -0
- examples/format_sets/all_format_sets.json +910 -0
- examples/format_sets/custom_format_sets.json +268 -0
- examples/format_sets/subset_format_sets.json +187 -0
- examples/format_sets_save_load_example.py +291 -0
- examples/jacquard_data_sets.py +129 -0
- examples/output_formats_example.py +193 -0
- examples/test_jacquard_data_sets.py +54 -0
- examples/test_jacquard_data_sets_scenarios.py +94 -0
- md_processing/__init__.py +90 -0
- md_processing/command_dispatcher.py +33 -0
- md_processing/command_mapping.py +221 -0
- md_processing/data/commands/commands_data_designer.json +537 -0
- md_processing/data/commands/commands_external_reference.json +733 -0
- md_processing/data/commands/commands_feedback.json +155 -0
- md_processing/data/commands/commands_general.json +204 -0
- md_processing/data/commands/commands_glossary.json +218 -0
- md_processing/data/commands/commands_governance.json +3678 -0
- md_processing/data/commands/commands_product_manager.json +865 -0
- md_processing/data/commands/commands_project.json +642 -0
- md_processing/data/commands/commands_solution_architect.json +366 -0
- md_processing/data/commands.json +17568 -0
- md_processing/data/commands_working.json +30641 -0
- md_processing/data/gened_report_specs.py +6584 -0
- md_processing/data/generated_format_sets.json +6533 -0
- md_processing/data/generated_format_sets_old.json +4137 -0
- md_processing/data/generated_format_sets_old.py +45 -0
- md_processing/dr_egeria.py +182 -0
- md_processing/md_commands/__init__.py +3 -0
- md_processing/md_commands/data_designer_commands.py +1276 -0
- md_processing/md_commands/ext_ref_commands.py +530 -0
- md_processing/md_commands/feedback_commands.py +726 -0
- md_processing/md_commands/glossary_commands.py +684 -0
- md_processing/md_commands/governance_officer_commands.py +600 -0
- md_processing/md_commands/product_manager_commands.py +1266 -0
- md_processing/md_commands/project_commands.py +383 -0
- md_processing/md_commands/solution_architect_commands.py +1184 -0
- md_processing/md_commands/view_commands.py +295 -0
- md_processing/md_processing_utils/__init__.py +4 -0
- md_processing/md_processing_utils/common_md_proc_utils.py +1249 -0
- md_processing/md_processing_utils/common_md_utils.py +578 -0
- md_processing/md_processing_utils/determine_width.py +103 -0
- md_processing/md_processing_utils/extraction_utils.py +547 -0
- md_processing/md_processing_utils/gen_report_specs.py +643 -0
- md_processing/md_processing_utils/generate_dr_help.py +193 -0
- md_processing/md_processing_utils/generate_md_cmd_templates.py +144 -0
- md_processing/md_processing_utils/generate_md_templates.py +83 -0
- md_processing/md_processing_utils/md_processing_constants.py +1228 -0
- md_processing/md_processing_utils/message_constants.py +19 -0
- pyegeria/__init__.py +201 -443
- pyegeria/core/__init__.py +40 -0
- pyegeria/core/_base_platform_client.py +574 -0
- pyegeria/core/_base_server_client.py +573 -0
- pyegeria/core/_exceptions.py +457 -0
- pyegeria/core/_globals.py +60 -0
- pyegeria/core/_server_client.py +6073 -0
- pyegeria/core/_validators.py +257 -0
- pyegeria/core/config.py +654 -0
- pyegeria/{create_tech_guid_lists.py → core/create_tech_guid_lists.py} +0 -1
- pyegeria/core/load_config.py +37 -0
- pyegeria/core/logging_configuration.py +207 -0
- pyegeria/core/mcp_adapter.py +144 -0
- pyegeria/core/mcp_server.py +212 -0
- pyegeria/core/utils.py +405 -0
- pyegeria/deprecated/__init__.py +0 -0
- pyegeria/{_client.py → deprecated/_client.py} +62 -24
- pyegeria/{_deprecated_gov_engine.py → deprecated/_deprecated_gov_engine.py} +16 -16
- pyegeria/{classification_manager_omvs.py → deprecated/classification_manager_omvs.py} +1988 -1878
- pyegeria/deprecated/output_formatter_with_machine_keys.py +1127 -0
- pyegeria/{runtime_manager_omvs.py → deprecated/runtime_manager_omvs.py} +216 -229
- pyegeria/{valid_metadata_omvs.py → deprecated/valid_metadata_omvs.py} +93 -93
- pyegeria/{x_action_author_omvs.py → deprecated/x_action_author_omvs.py} +2 -3
- pyegeria/egeria_cat_client.py +25 -51
- pyegeria/egeria_client.py +140 -98
- pyegeria/egeria_config_client.py +48 -24
- pyegeria/egeria_tech_client.py +170 -83
- pyegeria/models/__init__.py +150 -0
- pyegeria/models/collection_models.py +168 -0
- pyegeria/models/models.py +654 -0
- pyegeria/omvs/__init__.py +84 -0
- pyegeria/omvs/action_author.py +342 -0
- pyegeria/omvs/actor_manager.py +5980 -0
- pyegeria/omvs/asset_catalog.py +842 -0
- pyegeria/omvs/asset_maker.py +2736 -0
- pyegeria/omvs/automated_curation.py +4403 -0
- pyegeria/omvs/classification_manager.py +11213 -0
- pyegeria/omvs/collection_manager.py +5780 -0
- pyegeria/omvs/community_matters_omvs.py +468 -0
- pyegeria/{core_omag_server_config.py → omvs/core_omag_server_config.py} +157 -157
- pyegeria/{data_designer_omvs.py → omvs/data_designer.py} +1991 -1691
- pyegeria/omvs/data_discovery.py +869 -0
- pyegeria/omvs/data_engineer.py +372 -0
- pyegeria/omvs/digital_business.py +1133 -0
- pyegeria/omvs/external_links.py +1752 -0
- pyegeria/omvs/feedback_manager.py +834 -0
- pyegeria/{full_omag_server_config.py → omvs/full_omag_server_config.py} +73 -69
- pyegeria/omvs/glossary_manager.py +3231 -0
- pyegeria/omvs/governance_officer.py +3009 -0
- pyegeria/omvs/lineage_linker.py +314 -0
- pyegeria/omvs/location_arena.py +1525 -0
- pyegeria/omvs/metadata_expert.py +668 -0
- pyegeria/omvs/metadata_explorer_omvs.py +2943 -0
- pyegeria/omvs/my_profile.py +1042 -0
- pyegeria/omvs/notification_manager.py +358 -0
- pyegeria/omvs/people_organizer.py +394 -0
- pyegeria/{platform_services.py → omvs/platform_services.py} +113 -193
- pyegeria/omvs/product_manager.py +1825 -0
- pyegeria/omvs/project_manager.py +1907 -0
- pyegeria/omvs/reference_data.py +1140 -0
- pyegeria/omvs/registered_info.py +334 -0
- pyegeria/omvs/runtime_manager.py +2817 -0
- pyegeria/omvs/schema_maker.py +446 -0
- pyegeria/{server_operations.py → omvs/server_operations.py} +27 -26
- pyegeria/omvs/solution_architect.py +6490 -0
- pyegeria/omvs/specification_properties.py +37 -0
- pyegeria/omvs/subject_area.py +1042 -0
- pyegeria/omvs/template_manager_omvs.py +236 -0
- pyegeria/omvs/time_keeper.py +1761 -0
- pyegeria/omvs/valid_metadata.py +3221 -0
- pyegeria/omvs/valid_metadata_lists.py +37 -0
- pyegeria/omvs/valid_type_lists.py +37 -0
- pyegeria/view/__init__.py +28 -0
- pyegeria/view/_output_format_models.py +514 -0
- pyegeria/view/_output_formats.py +14 -0
- pyegeria/view/base_report_formats.py +2719 -0
- pyegeria/view/dr_egeria_reports.py +56 -0
- pyegeria/view/format_set_executor.py +397 -0
- pyegeria/{md_processing_utils.py → view/md_processing_utils.py} +5 -5
- pyegeria/{mermaid_utilities.py → view/mermaid_utilities.py} +2 -154
- pyegeria/view/output_formatter.py +1297 -0
- pyegeria-5.5.3.3.dist-info/METADATA +218 -0
- pyegeria-5.5.3.3.dist-info/RECORD +241 -0
- {pyegeria-5.3.9.9.3.dist-info → pyegeria-5.5.3.3.dist-info}/WHEEL +2 -1
- pyegeria-5.5.3.3.dist-info/entry_points.txt +103 -0
- pyegeria-5.5.3.3.dist-info/top_level.txt +4 -0
- commands/cat/.DS_Store +0 -0
- commands/cat/README.md +0 -16
- commands/cli/txt_custom_v2.tcss +0 -19
- commands/my/README.md +0 -17
- commands/ops/README.md +0 -24
- commands/ops/monitor_asset_events.py +0 -108
- commands/tech/README.md +0 -24
- pyegeria/.DS_Store +0 -0
- pyegeria/README.md +0 -35
- pyegeria/_globals.py +0 -47
- pyegeria/_validators.py +0 -385
- pyegeria/asset_catalog_omvs.py +0 -864
- pyegeria/automated_curation_omvs.py +0 -3765
- pyegeria/collection_manager_omvs.py +0 -2744
- pyegeria/dr.egeria spec.md +0 -9
- pyegeria/egeria_my_client.py +0 -56
- pyegeria/feedback_manager_omvs.py +0 -4573
- pyegeria/glossary_browser_omvs.py +0 -3728
- pyegeria/glossary_manager_omvs.py +0 -2440
- pyegeria/m_test.py +0 -118
- pyegeria/md_processing_helpers.py +0 -58
- pyegeria/md_processing_utils_orig.py +0 -1103
- pyegeria/metadata_explorer_omvs.py +0 -2326
- pyegeria/my_profile_omvs.py +0 -1022
- pyegeria/output_formatter.py +0 -389
- pyegeria/project_manager_omvs.py +0 -1933
- pyegeria/registered_info.py +0 -167
- pyegeria/solution_architect_omvs.py +0 -2156
- pyegeria/template_manager_omvs.py +0 -1414
- pyegeria/utils.py +0 -197
- pyegeria-5.3.9.9.3.dist-info/METADATA +0 -72
- pyegeria-5.3.9.9.3.dist-info/RECORD +0 -143
- pyegeria-5.3.9.9.3.dist-info/entry_points.txt +0 -99
- /pyegeria/{_exceptions.py → deprecated/_exceptions.py} +0 -0
- {pyegeria-5.3.9.9.3.dist-info → pyegeria-5.5.3.3.dist-info/licenses}/LICENSE +0 -0
commands/cli/egeria_tech.py
CHANGED
|
@@ -53,7 +53,7 @@ from commands.tech.list_solution_components import solution_component_list
|
|
|
53
53
|
from commands.tech.list_solution_roles import solution_role_list
|
|
54
54
|
from commands.tech.list_tech_templates import display_templates_spec
|
|
55
55
|
from commands.tech.list_valid_metadata_values import display_metadata_values
|
|
56
|
-
from commands.tech.
|
|
56
|
+
from commands.tech.element_actions import delete_element
|
|
57
57
|
|
|
58
58
|
@tui()
|
|
59
59
|
@click.version_option("0.0.1", prog_name="egeria_ops")
|
|
@@ -360,17 +360,8 @@ def show_elements_by_classification_by_prop(
|
|
|
360
360
|
"""Show elements by classification and property value"""
|
|
361
361
|
c = ctx.obj
|
|
362
362
|
if extended:
|
|
363
|
-
find_elements_by_prop_value_x(
|
|
364
|
-
|
|
365
|
-
property_value,
|
|
366
|
-
[property_names],
|
|
367
|
-
c.view_server,
|
|
368
|
-
c.view_server_url,
|
|
369
|
-
c.userid,
|
|
370
|
-
c.password,
|
|
371
|
-
c.jupyter,
|
|
372
|
-
c.width,
|
|
373
|
-
)
|
|
363
|
+
find_elements_by_prop_value_x(om_type, property_value, [property_names], c.view_server, c.view_server_url,
|
|
364
|
+
c.userid, c.password, c.jupyter, c.width)
|
|
374
365
|
else:
|
|
375
366
|
find_elements_by_prop_value(
|
|
376
367
|
om_type,
|
|
@@ -404,17 +395,8 @@ def show_elements_by_classification_by_prop(
|
|
|
404
395
|
def show_related_elements(ctx, element_guid, om_type, rel_type):
|
|
405
396
|
"""Show all elements related to specified guid"""
|
|
406
397
|
c = ctx.obj
|
|
407
|
-
list_related_elements(
|
|
408
|
-
|
|
409
|
-
om_type,
|
|
410
|
-
rel_type,
|
|
411
|
-
c.view_server,
|
|
412
|
-
c.view_server_url,
|
|
413
|
-
c.userid,
|
|
414
|
-
c.password,
|
|
415
|
-
c.jupyter,
|
|
416
|
-
c.width,
|
|
417
|
-
)
|
|
398
|
+
list_related_elements(element_guid, om_type, rel_type, c.view_server, c.view_server_url, c.userid, c.password,
|
|
399
|
+
c.jupyter, c.width)
|
|
418
400
|
|
|
419
401
|
|
|
420
402
|
@show_elements.command("related-elements_by_prop")
|
|
@@ -491,9 +473,7 @@ def show_tech_types(ctx, search_string):
|
|
|
491
473
|
"""
|
|
492
474
|
|
|
493
475
|
c = ctx.obj
|
|
494
|
-
display_tech_types(
|
|
495
|
-
search_string, c.view_server, c.view_server_url, c.userid, c.password
|
|
496
|
-
)
|
|
476
|
+
display_tech_types(search_string, c.view_server, c.view_server_url, c.userid, c.password)
|
|
497
477
|
|
|
498
478
|
|
|
499
479
|
@show_tech.command("tech-details")
|
|
@@ -507,15 +487,7 @@ def show_tech_details(ctx, tech_name):
|
|
|
507
487
|
tech-name is a valid technology name (see 'show tech-types')
|
|
508
488
|
"""
|
|
509
489
|
c = ctx.obj
|
|
510
|
-
tech_details_viewer(
|
|
511
|
-
tech_name,
|
|
512
|
-
c.view_server,
|
|
513
|
-
c.view_server_url,
|
|
514
|
-
c.userid,
|
|
515
|
-
c.password,
|
|
516
|
-
c.jupyter,
|
|
517
|
-
c.width,
|
|
518
|
-
)
|
|
490
|
+
tech_details_viewer(tech_name, c.view_server, c.view_server_url, c.userid, c.password, c.jupyter, c.width)
|
|
519
491
|
|
|
520
492
|
|
|
521
493
|
@show_tech.command("tech-type-templates")
|
|
@@ -552,7 +524,7 @@ def show_asset_types(ctx):
|
|
|
552
524
|
@show_info.command("registered-services")
|
|
553
525
|
@click.option(
|
|
554
526
|
"--services",
|
|
555
|
-
|
|
527
|
+
type_name = click.Choice(
|
|
556
528
|
[
|
|
557
529
|
"all",
|
|
558
530
|
"access-services",
|
|
@@ -571,15 +543,7 @@ def show_asset_types(ctx):
|
|
|
571
543
|
def show_registered_services(ctx, services):
|
|
572
544
|
"""Show information about a registered services"""
|
|
573
545
|
c = ctx.obj
|
|
574
|
-
display_registered_svcs(
|
|
575
|
-
services,
|
|
576
|
-
c.view_server,
|
|
577
|
-
c.view_server_url,
|
|
578
|
-
c.userid,
|
|
579
|
-
c.password,
|
|
580
|
-
c.jupyter,
|
|
581
|
-
c.width,
|
|
582
|
-
)
|
|
546
|
+
display_registered_svcs(services, c.view_server, c.view_server_url, c.userid, c.password, c.jupyter, c.width)
|
|
583
547
|
|
|
584
548
|
|
|
585
549
|
@show_info.command("relationship-types")
|
|
@@ -592,16 +556,8 @@ def show_registered_services(ctx, services):
|
|
|
592
556
|
def show_relationship_types(ctx, rel_type):
|
|
593
557
|
"""Show information about the specified relationship type"""
|
|
594
558
|
c = ctx.obj
|
|
595
|
-
display_relationship_types(
|
|
596
|
-
|
|
597
|
-
c.view_server,
|
|
598
|
-
c.view_server_url,
|
|
599
|
-
c.userid,
|
|
600
|
-
c.password,
|
|
601
|
-
False,
|
|
602
|
-
c.jupyter,
|
|
603
|
-
c.width,
|
|
604
|
-
)
|
|
559
|
+
display_relationship_types(rel_type, c.view_server, c.view_server_url, c.userid, c.password, False, c.jupyter,
|
|
560
|
+
c.width)
|
|
605
561
|
|
|
606
562
|
|
|
607
563
|
@show_tech.command("tech-templates")
|
|
@@ -701,15 +657,7 @@ def list_element_info(ctx):
|
|
|
701
657
|
def get_element_info(ctx, om_type):
|
|
702
658
|
"""Display graph of elements for an Open Metadata Type"""
|
|
703
659
|
c = ctx.obj
|
|
704
|
-
display_elements(
|
|
705
|
-
om_type,
|
|
706
|
-
c.view_server,
|
|
707
|
-
c.view_server_url,
|
|
708
|
-
c.userid,
|
|
709
|
-
c.password,
|
|
710
|
-
c.jupyter,
|
|
711
|
-
c.width,
|
|
712
|
-
)
|
|
660
|
+
display_elements(om_type, c.view_server, c.view_server_url, c.userid, c.password, c.jupyter, c.width)
|
|
713
661
|
|
|
714
662
|
|
|
715
663
|
@show_elements.command("elements")
|
|
@@ -752,15 +700,7 @@ def list_all_om_type_elements(ctx, om_type, extended):
|
|
|
752
700
|
def list_supply_chains(ctx, search_string):
|
|
753
701
|
"""Display supply chains"""
|
|
754
702
|
c = ctx.obj
|
|
755
|
-
supply_chain_viewer(
|
|
756
|
-
search_string,
|
|
757
|
-
c.view_server,
|
|
758
|
-
c.view_server_url,
|
|
759
|
-
c.userid,
|
|
760
|
-
c.password,
|
|
761
|
-
c.jupyter,
|
|
762
|
-
c.width,
|
|
763
|
-
)
|
|
703
|
+
supply_chain_viewer(search_string, c.view_server, c.view_server_url, c.userid, c.password, c.jupyter, c.width)
|
|
764
704
|
|
|
765
705
|
|
|
766
706
|
@show_supply_chains.command("blueprints")
|
|
@@ -769,22 +709,14 @@ def list_supply_chains(ctx, search_string):
|
|
|
769
709
|
def list_blueprints(ctx, search_string):
|
|
770
710
|
"""Display solution blueprints"""
|
|
771
711
|
c = ctx.obj
|
|
772
|
-
blueprint_list(
|
|
773
|
-
search_string,
|
|
774
|
-
c.view_server,
|
|
775
|
-
c.view_server_url,
|
|
776
|
-
c.userid,
|
|
777
|
-
c.password,
|
|
778
|
-
c.jupyter,
|
|
779
|
-
c.width,
|
|
780
|
-
)
|
|
712
|
+
blueprint_list(search_string, c.view_server, c.view_server_url, c.userid, c.password, c.jupyter, c.width)
|
|
781
713
|
|
|
782
714
|
|
|
783
|
-
@show_supply_chains.command("solution-
|
|
715
|
+
@show_supply_chains.command("solution-perspectives")
|
|
784
716
|
@click.option("--search-string", default="*", help="Search string")
|
|
785
717
|
@click.pass_context
|
|
786
718
|
def list_solution_roles(ctx, search_string):
|
|
787
|
-
"""Display solution
|
|
719
|
+
"""Display solution perspectives"""
|
|
788
720
|
c = ctx.obj
|
|
789
721
|
solution_role_list(
|
|
790
722
|
search_string,
|
|
@@ -803,15 +735,7 @@ def list_solution_roles(ctx, search_string):
|
|
|
803
735
|
def list_solution_components(ctx, search_string):
|
|
804
736
|
"""Display solution componentss"""
|
|
805
737
|
c = ctx.obj
|
|
806
|
-
solution_component_list(
|
|
807
|
-
search_string,
|
|
808
|
-
c.view_server,
|
|
809
|
-
c.view_server_url,
|
|
810
|
-
c.userid,
|
|
811
|
-
c.password,
|
|
812
|
-
c.jupyter,
|
|
813
|
-
c.width,
|
|
814
|
-
)
|
|
738
|
+
solution_component_list(search_string, c.view_server, c.view_server_url, c.userid, c.password, c.jupyter, c.width)
|
|
815
739
|
|
|
816
740
|
|
|
817
741
|
#
|
commands/cli/ops_config.py
CHANGED
|
@@ -12,14 +12,12 @@ class Config(object):
|
|
|
12
12
|
integration_daemon_url: str,
|
|
13
13
|
engine_host: str,
|
|
14
14
|
engine_host_url: str,
|
|
15
|
-
admin_user: str,
|
|
16
|
-
admin_user_password: str,
|
|
17
15
|
userid: str,
|
|
18
16
|
password: str,
|
|
19
17
|
timeout: int,
|
|
20
18
|
jupyter: bool,
|
|
21
19
|
width: int,
|
|
22
|
-
|
|
20
|
+
home_glossary_name: str,
|
|
23
21
|
glossary_path: str,
|
|
24
22
|
root_path: str,
|
|
25
23
|
inbox_path: str,
|
|
@@ -33,8 +31,7 @@ class Config(object):
|
|
|
33
31
|
self.integration_daemon_url = integration_daemon_url
|
|
34
32
|
self.engine_host = engine_host
|
|
35
33
|
self.engine_host_url = engine_host_url
|
|
36
|
-
|
|
37
|
-
self.admin_user_password = admin_user_password
|
|
34
|
+
|
|
38
35
|
self.userid = userid
|
|
39
36
|
self.password = password
|
|
40
37
|
self.timeout = timeout
|
|
@@ -42,7 +39,7 @@ class Config(object):
|
|
|
42
39
|
self.width = width
|
|
43
40
|
self.server = server
|
|
44
41
|
self.url = url
|
|
45
|
-
self.
|
|
42
|
+
self.home_glossary_name = home_glossary_name
|
|
46
43
|
self.glossary_path = glossary_path
|
|
47
44
|
self.root_path = root_path
|
|
48
45
|
self.inbox_path = inbox_path
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
|
|
1
2
|
#!/usr/bin/env python3
|
|
2
3
|
"""
|
|
3
4
|
SPDX-License-Identifier: Apache-2.0
|
|
@@ -13,18 +14,19 @@ import os
|
|
|
13
14
|
import sys
|
|
14
15
|
import time
|
|
15
16
|
|
|
16
|
-
from rich import box
|
|
17
|
+
from rich import box, print
|
|
17
18
|
from rich.console import Console
|
|
18
19
|
from rich.prompt import Prompt
|
|
19
20
|
from rich.table import Table
|
|
20
21
|
from rich.text import Text
|
|
22
|
+
from rich.console import Console
|
|
23
|
+
from rich.markdown import Markdown
|
|
24
|
+
|
|
21
25
|
|
|
22
26
|
from pyegeria import (
|
|
23
27
|
EgeriaTech,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
UserNotAuthorizedException,
|
|
27
|
-
print_exception_response,
|
|
28
|
+
PyegeriaAPIException, PyegeriaClientException, print_basic_exception, print_exception_table
|
|
29
|
+
NO_ELEMENTS_FOUND
|
|
28
30
|
)
|
|
29
31
|
|
|
30
32
|
disable_ssl_warnings = True
|
|
@@ -48,9 +50,11 @@ EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "../../")
|
|
|
48
50
|
EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "md_processing/dr_egeria_inbox")
|
|
49
51
|
EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "md_processing/dr_egeria_outbox")
|
|
50
52
|
|
|
53
|
+
console = Console(width=EGERIA_WIDTH)
|
|
51
54
|
|
|
52
55
|
|
|
53
|
-
def
|
|
56
|
+
def display_data_obj(
|
|
57
|
+
object_type: str,
|
|
54
58
|
search_string: str = "*",
|
|
55
59
|
view_server: str = EGERIA_VIEW_SERVER,
|
|
56
60
|
view_url: str = EGERIA_VIEW_SERVER_URL,
|
|
@@ -63,6 +67,8 @@ def display_categories(
|
|
|
63
67
|
"""Display either a specified category or all categories if the search_string is '*'.
|
|
64
68
|
Parameters
|
|
65
69
|
----------
|
|
70
|
+
object_type: str
|
|
71
|
+
The type of object to display,
|
|
66
72
|
search_string : str, default is '*'
|
|
67
73
|
The string used to search for categories.
|
|
68
74
|
view_server : str
|
|
@@ -83,76 +89,48 @@ def display_categories(
|
|
|
83
89
|
m_client = EgeriaTech(view_server, view_url, user_id=user, user_pwd=user_pass)
|
|
84
90
|
token = m_client.create_egeria_bearer_token()
|
|
85
91
|
|
|
92
|
+
match object_type:
|
|
93
|
+
case "Data Structures":
|
|
94
|
+
find_proc = m_client.find_data_structures
|
|
95
|
+
case "Data Fields":
|
|
96
|
+
find_proc = m_client.find_data_fields
|
|
97
|
+
case "Data Classes":
|
|
98
|
+
find_proc = m_client.find_data_classes
|
|
99
|
+
case _: #catch invalid patterns
|
|
100
|
+
print(f"Invalid object type: {object_type}")
|
|
101
|
+
return
|
|
86
102
|
|
|
87
103
|
try:
|
|
104
|
+
if not callable(find_proc):
|
|
105
|
+
raise TypeError(f"find_proc is not callable for object type '{object_type}'")
|
|
106
|
+
|
|
88
107
|
if output_format == "FORM":
|
|
89
108
|
action = "Update-Form"
|
|
90
109
|
elif output_format == "REPORT":
|
|
91
110
|
action = "Report"
|
|
92
111
|
if output_format != "TABLE":
|
|
93
112
|
file_path = os.path.join(EGERIA_ROOT_PATH, EGERIA_OUTBOX_PATH)
|
|
94
|
-
file_name = f"
|
|
113
|
+
file_name = f"{object_type}-{time.strftime('%Y-%m-%d-%H-%M-%S')}-{action}.md"
|
|
95
114
|
full_file_path = os.path.join(file_path, file_name)
|
|
96
115
|
os.makedirs(os.path.dirname(full_file_path), exist_ok=True)
|
|
97
|
-
output =
|
|
98
|
-
if output ==
|
|
99
|
-
print(f"\n==> No
|
|
116
|
+
output = find_proc(search_string, output_format=output_format)
|
|
117
|
+
if output == NO_ELEMENTS_FOUND:
|
|
118
|
+
print(f"\n==> No elements found for search string '{search_string}'")
|
|
100
119
|
return
|
|
101
120
|
with open(full_file_path, 'w') as f:
|
|
102
121
|
f.write(output)
|
|
103
|
-
print(f"\n==>
|
|
122
|
+
print(f"\n==> Elements output written to {full_file_path}")
|
|
123
|
+
return
|
|
124
|
+
else:
|
|
125
|
+
output =find_proc(search_string, output_format="LIST")
|
|
126
|
+
if output == NO_ELEMENTS_FOUND:
|
|
127
|
+
print(f"\n==> No elements found for search string '{search_string}'")
|
|
128
|
+
return
|
|
129
|
+
console.print(Markdown(output))
|
|
104
130
|
return
|
|
105
131
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
style="bright_white on black",
|
|
109
|
-
header_style="bright_white on dark_blue",
|
|
110
|
-
title_style="bold white on black",
|
|
111
|
-
caption_style="white on black",
|
|
112
|
-
show_lines=True,
|
|
113
|
-
box=box.ROUNDED,
|
|
114
|
-
caption=f"View Server '{view_server}' @ Platform - {view_url}",
|
|
115
|
-
expand=True,
|
|
116
|
-
)
|
|
117
|
-
table.add_column("Category Name")
|
|
118
|
-
table.add_column(
|
|
119
|
-
"Qualified Name & GUID", width=38, no_wrap=True, justify="center"
|
|
120
|
-
)
|
|
121
|
-
table.add_column("Description")
|
|
122
|
-
table.add_column("In Glossary")
|
|
123
|
-
table.add_column("Parent Category")
|
|
124
|
-
|
|
125
|
-
categories = m_client.find_glossary_categories(search_string)
|
|
126
|
-
if type(categories) is list:
|
|
127
|
-
sorted_category_list = sorted(
|
|
128
|
-
categories, key=lambda k: k["glossaryCategoryProperties"]["displayName"]
|
|
129
|
-
)
|
|
130
|
-
for category in sorted_category_list:
|
|
131
|
-
display_name = category["glossaryCategoryProperties"].get("displayName",'---')
|
|
132
|
-
qualified_name = category["glossaryCategoryProperties"]["qualifiedName"]
|
|
133
|
-
category_guid = category["elementHeader"]["guid"]
|
|
134
|
-
q_name = Text(f"{qualified_name}\n&\n{category_guid}", justify="center")
|
|
135
|
-
description = category["glossaryCategoryProperties"].get("description",'---')
|
|
136
|
-
classification_props = category["elementHeader"]['classifications'][0].get('classificationProperties',None)
|
|
137
|
-
glossary_qualified_name = '---'
|
|
138
|
-
if classification_props is not None:
|
|
139
|
-
glossary_guid = classification_props.get('anchorScopeGUID','---')
|
|
140
|
-
glossary_qualified_name = (
|
|
141
|
-
m_client.get_glossary_by_guid(glossary_guid))['glossaryProperties']['qualifiedName']
|
|
142
|
-
cat_info = m_client.get_category_parent(category_guid)
|
|
143
|
-
if type(cat_info) is dict:
|
|
144
|
-
parent_qn = cat_info['glossaryCategoryProperties']['qualifiedName']
|
|
145
|
-
else:
|
|
146
|
-
parent_qn = '---'
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
table.add_row(display_name, q_name, description, glossary_qualified_name, parent_qn)
|
|
150
|
-
console = Console(
|
|
151
|
-
style="bold bright_white on black",
|
|
152
|
-
width=width,
|
|
153
|
-
force_terminal=not jupyter,
|
|
154
|
-
)
|
|
155
|
-
console.print(table)
|
|
132
|
+
|
|
133
|
+
|
|
156
134
|
|
|
157
135
|
except (InvalidParameterException, PropertyServerException) as e:
|
|
158
136
|
print_exception_response(e)
|
|
@@ -160,8 +138,18 @@ def display_categories(
|
|
|
160
138
|
m_client.close_session()
|
|
161
139
|
|
|
162
140
|
|
|
163
|
-
def
|
|
141
|
+
def main_structs():
|
|
142
|
+
main(object_type = "Data Structures")
|
|
143
|
+
|
|
144
|
+
def main_fields():
|
|
145
|
+
main(object_type = "Data Fields")
|
|
146
|
+
|
|
147
|
+
def main_classes():
|
|
148
|
+
main(object_type = "Data Classes")
|
|
149
|
+
|
|
150
|
+
def main(object_type: str="Data Fields"):
|
|
164
151
|
parser = argparse.ArgumentParser()
|
|
152
|
+
parser.add_argument("--kind", choices=["Data Structures", "Data Fields", "Data Classes"])
|
|
165
153
|
parser.add_argument("--server", help="Name of the server to display status for")
|
|
166
154
|
parser.add_argument("--url", help="URL Platform to connect to")
|
|
167
155
|
parser.add_argument("--userid", help="User Id")
|
|
@@ -173,15 +161,16 @@ def main():
|
|
|
173
161
|
url = args.url if args.url is not None else EGERIA_PLATFORM_URL
|
|
174
162
|
userid = args.userid if args.userid is not None else EGERIA_USER
|
|
175
163
|
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
|
164
|
+
kind = args.kind if args.kind is not None else object_type
|
|
176
165
|
|
|
177
166
|
try:
|
|
178
167
|
search_string = Prompt.ask(
|
|
179
|
-
"Enter the
|
|
168
|
+
"Enter the element you are searching for or '*' for all:", default="*"
|
|
180
169
|
)
|
|
181
170
|
output_format = Prompt.ask("What output format do you want?", choices=["TABLE", "FORM", "REPORT"],
|
|
182
171
|
default="TABLE")
|
|
183
172
|
|
|
184
|
-
|
|
173
|
+
display_data_obj(kind, search_string, server, url, userid,
|
|
185
174
|
user_pass, output_format = output_format)
|
|
186
175
|
|
|
187
176
|
except KeyboardInterrupt:
|
|
@@ -19,10 +19,7 @@ from rich.text import Text
|
|
|
19
19
|
|
|
20
20
|
from pyegeria import (
|
|
21
21
|
EgeriaTech,
|
|
22
|
-
|
|
23
|
-
PropertyServerException,
|
|
24
|
-
UserNotAuthorizedException,
|
|
25
|
-
print_exception_response, NO_ELEMENTS_FOUND,
|
|
22
|
+
PyegeriaAPIException, PyegeriaClientException, print_basic_exception, print_exception_table NO_ELEMENTS_FOUND,
|
|
26
23
|
)
|
|
27
24
|
|
|
28
25
|
disable_ssl_warnings = True
|
|
@@ -89,7 +86,7 @@ def display_data_struct(
|
|
|
89
86
|
action = "Dict"
|
|
90
87
|
elif output_format == "MERMAID":
|
|
91
88
|
action = "Mermaid"
|
|
92
|
-
|
|
89
|
+
filter_string = search_string.strip() if search_string != "*" else None
|
|
93
90
|
|
|
94
91
|
body = {
|
|
95
92
|
"class": "FilterRequestBody",
|
|
@@ -100,7 +97,7 @@ def display_data_struct(
|
|
|
100
97
|
"limitResultsByStatus": ["ACTIVE"],
|
|
101
98
|
"sequencingOrder": "PROPERTY_ASCENDING",
|
|
102
99
|
"sequencingProperty": "qualifiedName",
|
|
103
|
-
"filter":
|
|
100
|
+
"filter": filter_string
|
|
104
101
|
}
|
|
105
102
|
|
|
106
103
|
if output_format != "TABLE":
|