pyegeria 5.4.0.28__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/collection_actions.py +197 -0
- commands/cat/dr_egeria_command_help.py +137 -38
- commands/cat/dr_egeria_jupyter.py +7 -7
- commands/cat/dr_egeria_md.py +10 -267
- 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 +17 -139
- 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/{list_format_set.py → run_report_orig.py} +136 -44
- commands/cli/egeria.py +182 -219
- commands/cli/egeria_cat.py +32 -59
- commands/cli/egeria_my.py +13 -0
- commands/cli/egeria_ops.py +69 -74
- commands/cli/egeria_tech.py +17 -93
- commands/{cat → deprecated}/list_data_designer.py +2 -4
- commands/{cat → 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 +14 -11
- 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 +33 -24
- 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 +6489 -30060
- md_processing/data/{commands-working.json → commands_working.json} +9304 -13513
- 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/data_designer_commands.py +195 -583
- 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 +106 -490
- md_processing/md_commands/governance_officer_commands.py +129 -18
- md_processing/md_commands/product_manager_commands.py +362 -115
- md_processing/md_commands/project_commands.py +351 -134
- md_processing/md_commands/solution_architect_commands.py +276 -232
- md_processing/md_commands/view_commands.py +295 -0
- md_processing/md_processing_utils/common_md_proc_utils.py +258 -166
- md_processing/md_processing_utils/common_md_utils.py +138 -43
- md_processing/md_processing_utils/determine_width.py +103 -0
- md_processing/md_processing_utils/extraction_utils.py +100 -39
- md_processing/md_processing_utils/gen_report_specs.py +643 -0
- md_processing/md_processing_utils/generate_dr_help.py +61 -33
- md_processing/md_processing_utils/generate_md_cmd_templates.py +20 -19
- md_processing/md_processing_utils/generate_md_templates.py +3 -12
- md_processing/md_processing_utils/md_processing_constants.py +1053 -72
- pyegeria/__init__.py +203 -158
- pyegeria/core/__init__.py +40 -0
- pyegeria/core/_base_platform_client.py +574 -0
- pyegeria/core/_base_server_client.py +573 -0
- pyegeria/{_exceptions_new.py → core/_exceptions.py} +62 -30
- pyegeria/{_globals.py → core/_globals.py} +14 -3
- pyegeria/core/_server_client.py +6073 -0
- pyegeria/{_validators.py → core/_validators.py} +7 -8
- 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/{logging_configuration.py → core/logging_configuration.py} +1 -1
- pyegeria/core/mcp_adapter.py +144 -0
- pyegeria/core/mcp_server.py +212 -0
- pyegeria/core/utils.py +405 -0
- pyegeria/{_client.py → deprecated/_client.py} +24 -25
- pyegeria/{_deprecated_gov_engine.py → deprecated/_deprecated_gov_engine.py} +16 -16
- pyegeria/{classification_manager_omvs.py → deprecated/classification_manager_omvs.py} +1987 -1877
- pyegeria/{output_formatter.py → deprecated/output_formatter_with_machine_keys.py} +298 -45
- pyegeria/{runtime_manager_omvs.py → deprecated/runtime_manager_omvs.py} +155 -171
- 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 +26 -70
- pyegeria/egeria_client.py +130 -93
- pyegeria/egeria_config_client.py +40 -46
- pyegeria/egeria_tech_client.py +141 -54
- pyegeria/models/__init__.py +150 -0
- pyegeria/{models.py → models/models.py} +156 -20
- 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/{collection_manager.py → omvs/collection_manager.py} +1334 -1160
- 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.py → omvs/data_designer.py} +1115 -660
- 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/{glossary_manager.py → omvs/glossary_manager.py} +857 -519
- pyegeria/{governance_officer.py → omvs/governance_officer.py} +964 -468
- 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/{solution_architect_omvs.py → omvs/solution_architect.py} +1886 -1505
- 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/{_output_format_models.py → view/_output_format_models.py} +160 -24
- 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.4.0.28.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/.env +0 -8
- commands/cat/README.md +0 -16
- commands/cat/debug_log +0 -1126
- commands/cat/debug_log.2025-08-18_11-34-38_088636.zip +0 -0
- commands/cat/list_categories.py +0 -192
- commands/cat/logs/pyegeria.log +0 -4
- commands/cli/debug_log +0 -0
- commands/cli/debug_log.log +0 -0
- commands/cli/txt_custom_v2.tcss +0 -19
- commands/my/README.md +0 -17
- commands/ops/README.md +0 -24
- commands/ops/logs/pyegeria.log +0 -0
- commands/ops/monitor_asset_events.py +0 -108
- commands/tech/README.md +0 -24
- md_processing/.DS_Store +0 -0
- md_processing/dr-egeria-outbox/Collections-2025-08-12-13-30-37.md +0 -163
- md_processing/dr-egeria-outbox/Collections-2025-08-12-13-35-58.md +0 -474
- md_processing/dr_egeria_inbox/Derive-Dr-Gov-Defs.md +0 -8
- md_processing/dr_egeria_inbox/Dr.Egeria Templates.md +0 -873
- md_processing/dr_egeria_inbox/arch_test.md +0 -57
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro.md +0 -254
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_more_terms.md +0 -696
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part1.md +0 -254
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part2.md +0 -298
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part3.md +0 -608
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part4.md +0 -94
- md_processing/dr_egeria_inbox/archive/freddie_intro.md +0 -284
- md_processing/dr_egeria_inbox/archive/freddie_intro_orig.md +0 -275
- md_processing/dr_egeria_inbox/archive/test-term.md +0 -110
- md_processing/dr_egeria_inbox/cat_test.md +0 -100
- md_processing/dr_egeria_inbox/collections.md +0 -39
- md_processing/dr_egeria_inbox/data_designer_debug.log +0 -6
- md_processing/dr_egeria_inbox/data_designer_out.md +0 -60
- md_processing/dr_egeria_inbox/data_designer_search_test.md +0 -11
- md_processing/dr_egeria_inbox/data_field.md +0 -54
- md_processing/dr_egeria_inbox/data_spec.md +0 -77
- md_processing/dr_egeria_inbox/data_spec_test.md +0 -2406
- md_processing/dr_egeria_inbox/data_test.md +0 -179
- md_processing/dr_egeria_inbox/data_test2.md +0 -429
- md_processing/dr_egeria_inbox/data_test3.md +0 -462
- md_processing/dr_egeria_inbox/dr_egeria_data_designer_1.md +0 -124
- md_processing/dr_egeria_inbox/dr_egeria_intro_categories.md +0 -168
- md_processing/dr_egeria_inbox/dr_egeria_intro_part1.md +0 -280
- md_processing/dr_egeria_inbox/dr_egeria_intro_part2.md +0 -318
- md_processing/dr_egeria_inbox/dr_egeria_intro_part3.md +0 -1073
- md_processing/dr_egeria_inbox/dr_egeria_isc1.md +0 -44
- md_processing/dr_egeria_inbox/generated_help_report.md +0 -9
- md_processing/dr_egeria_inbox/glossary_creation_experiment.ipynb +0 -341
- md_processing/dr_egeria_inbox/glossary_list.md +0 -5
- md_processing/dr_egeria_inbox/glossary_search_test.md +0 -40
- md_processing/dr_egeria_inbox/glossary_test1.md +0 -324
- md_processing/dr_egeria_inbox/gov_def.md +0 -482
- md_processing/dr_egeria_inbox/gov_def2.md +0 -447
- md_processing/dr_egeria_inbox/img.png +0 -0
- md_processing/dr_egeria_inbox/product.md +0 -211
- md_processing/dr_egeria_inbox/rel.md +0 -8
- md_processing/dr_egeria_inbox/sb.md +0 -119
- md_processing/dr_egeria_inbox/solution-components.md +0 -136
- md_processing/dr_egeria_inbox/solution_blueprints.md +0 -118
- md_processing/dr_egeria_inbox/synonym_test.md +0 -42
- md_processing/dr_egeria_inbox/t2.md +0 -268
- md_processing/dr_egeria_outbox/.obsidian/app.json +0 -1
- md_processing/dr_egeria_outbox/.obsidian/appearance.json +0 -1
- md_processing/dr_egeria_outbox/.obsidian/community-plugins.json +0 -6
- md_processing/dr_egeria_outbox/.obsidian/core-plugins.json +0 -31
- md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/data.json +0 -10
- md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/main.js +0 -4459
- md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/manifest.json +0 -10
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/data.json +0 -3
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/main.js +0 -153
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/manifest.json +0 -11
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/styles.css +0 -1
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/main.js +0 -500
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/manifest.json +0 -12
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/styles.css +0 -1
- md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/main.js +0 -37
- md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/manifest.json +0 -11
- md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/styles.css +0 -220
- md_processing/dr_egeria_outbox/.obsidian/types.json +0 -28
- md_processing/dr_egeria_outbox/.obsidian/workspace.json +0 -220
- md_processing/dr_egeria_outbox/Untitled.canvas +0 -1
- md_processing/dr_egeria_outbox/friday/processed-2025-08-22 21:22-dr_egeria_intro_part1.md +0 -312
- md_processing/dr_egeria_outbox/friday/processed-2025-08-22 21:23-dr_egeria_intro_part1.md +0 -265
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 15:06-dr_egeria_intro_part1.md +0 -230
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 15:30-dr_egeria_intro_part1.md +0 -296
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 15:31-dr_egeria_intro_part1.md +0 -253
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 16:08-dr_egeria_intro_part2.md +0 -343
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 16:12-dr_egeria_intro_part2.md +0 -343
- md_processing/dr_egeria_outbox/monday/processed-2025-08-19 07:05-product.md +0 -426
- md_processing/dr_egeria_outbox/monday/processed-2025-08-19 07:56-product.md +0 -212
- md_processing/dr_egeria_outbox/monday/processed-2025-08-19 09:43-product.md +0 -201
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 14:55-product.md +0 -77
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 15:05-product.md +0 -75
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 15:11-product.md +0 -74
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 20:40-collections.md +0 -49
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 15:00-Derive-Dr-Gov-Defs.md +0 -719
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:13-Derive-Dr-Gov-Defs.md +0 -41
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:14-Derive-Dr-Gov-Defs.md +0 -33
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:50-Derive-Dr-Gov-Defs.md +0 -192
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 22:08-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 22:10-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 08:53-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 08:54-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:03-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:06-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:10-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/tuesday/processed-2025-07-16 19:15-gov_def2.md +0 -527
- md_processing/dr_egeria_outbox/tuesday/processed-2025-07-17 12:08-gov_def2.md +0 -527
- md_processing/dr_egeria_outbox/tuesday/processed-2025-07-17 14:27-gov_def2.md +0 -485
- md_processing/dr_egeria_outbox/tuesday/processed-2025-08-19 10:55-product.md +0 -209
- md_processing/family_docs/Data Designer/Create_Data_Class.md +0 -164
- md_processing/family_docs/Data Designer/Create_Data_Dictionary.md +0 -30
- md_processing/family_docs/Data Designer/Create_Data_Field.md +0 -162
- md_processing/family_docs/Data Designer/Create_Data_Specification.md +0 -36
- md_processing/family_docs/Data Designer/Create_Data_Structure.md +0 -38
- md_processing/family_docs/Data Designer/View_Data_Classes.md +0 -78
- md_processing/family_docs/Data Designer/View_Data_Dictionaries.md +0 -78
- md_processing/family_docs/Data Designer/View_Data_Fields.md +0 -78
- md_processing/family_docs/Data Designer/View_Data_Specifications.md +0 -78
- md_processing/family_docs/Data Designer/View_Data_Structures.md +0 -78
- md_processing/family_docs/Data Designer.md +0 -842
- md_processing/family_docs/Digital Product Manager/Add_Member->Collection.md +0 -42
- md_processing/family_docs/Digital Product Manager/Attach_Collection->Resource.md +0 -36
- md_processing/family_docs/Digital Product Manager/Create_Agreement.md +0 -96
- md_processing/family_docs/Digital Product Manager/Create_Data_Sharing_Agreement.md +0 -72
- md_processing/family_docs/Digital Product Manager/Create_DigitalSubscription.md +0 -102
- md_processing/family_docs/Digital Product Manager/Create_Digital_Product.md +0 -134
- md_processing/family_docs/Digital Product Manager/Link_Agreement_Items.md +0 -60
- md_processing/family_docs/Digital Product Manager/Link_Contracts.md +0 -26
- md_processing/family_docs/Digital Product Manager/Link_Digital_Product_-_Digital_Product.md +0 -30
- md_processing/family_docs/Digital Product Manager/Link_Subscribers.md +0 -48
- md_processing/family_docs/Digital Product Manager.md +0 -668
- md_processing/family_docs/Glossary/Attach_Category_Parent.md +0 -18
- md_processing/family_docs/Glossary/Attach_Term-Term_Relationship.md +0 -26
- md_processing/family_docs/Glossary/Create_Category.md +0 -38
- md_processing/family_docs/Glossary/Create_Glossary.md +0 -42
- md_processing/family_docs/Glossary/Create_Term.md +0 -70
- md_processing/family_docs/Glossary.md +0 -206
- md_processing/family_docs/Governance Officer/Create_Business_Imperative.md +0 -106
- md_processing/family_docs/Governance Officer/Create_Certification_Type.md +0 -112
- md_processing/family_docs/Governance Officer/Create_Governance_Approach.md +0 -114
- md_processing/family_docs/Governance Officer/Create_Governance_Obligation.md +0 -114
- md_processing/family_docs/Governance Officer/Create_Governance_Principle.md +0 -114
- md_processing/family_docs/Governance Officer/Create_Governance_Procedure.md +0 -128
- md_processing/family_docs/Governance Officer/Create_Governance_Process.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Governance_Processing_Purpose.md +0 -106
- md_processing/family_docs/Governance Officer/Create_Governance_Responsibility.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Governance_Rule.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Governance_Strategy.md +0 -106
- md_processing/family_docs/Governance Officer/Create_License_Type.md +0 -112
- md_processing/family_docs/Governance Officer/Create_Naming_Standard_Rule.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Regulation_Article.md +0 -106
- md_processing/family_docs/Governance Officer/Create_Regulation_Definition.md +0 -118
- md_processing/family_docs/Governance Officer/Create_Security_Access_Control.md +0 -114
- md_processing/family_docs/Governance Officer/Create_Security_Group.md +0 -120
- md_processing/family_docs/Governance Officer/Create_Service_Level_Objectives.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Threat_Definition.md +0 -106
- md_processing/family_docs/Governance Officer/Link_Governance_Controls.md +0 -32
- md_processing/family_docs/Governance Officer/Link_Governance_Drivers.md +0 -32
- md_processing/family_docs/Governance Officer/Link_Governance_Policies.md +0 -32
- md_processing/family_docs/Governance Officer/View_Governance_Definitions.md +0 -82
- md_processing/family_docs/Governance Officer.md +0 -2412
- md_processing/family_docs/Solution Architect/Create_Information_Supply_Chain.md +0 -70
- md_processing/family_docs/Solution Architect/Create_Solution_Blueprint.md +0 -44
- md_processing/family_docs/Solution Architect/Create_Solution_Component.md +0 -96
- md_processing/family_docs/Solution Architect/Create_Solution_Role.md +0 -66
- md_processing/family_docs/Solution Architect/Link_Information_Supply_Chain_Peers.md +0 -32
- md_processing/family_docs/Solution Architect/Link_Solution_Component_Peers.md +0 -32
- md_processing/family_docs/Solution Architect/View_Information_Supply_Chains.md +0 -32
- md_processing/family_docs/Solution Architect/View_Solution_Blueprints.md +0 -32
- md_processing/family_docs/Solution Architect/View_Solution_Components.md +0 -32
- md_processing/family_docs/Solution Architect/View_Solution_Roles.md +0 -32
- md_processing/family_docs/Solution Architect.md +0 -490
- md_processing/md_processing_utils/debug_log +0 -574
- md_processing/md_processing_utils/debug_log.log +0 -0
- md_processing/md_processing_utils/dr-egeria-help-2025-07-17T17:22:09.md +0 -2065
- md_processing/md_processing_utils/generated_help_terms.md +0 -842
- pyegeria/.DS_Store +0 -0
- pyegeria/README.md +0 -35
- pyegeria/_client_new.py +0 -1102
- pyegeria/_output_formats.py +0 -730
- pyegeria/asset_catalog_omvs.py +0 -864
- pyegeria/automated_curation_omvs.py +0 -3765
- pyegeria/config.py +0 -523
- pyegeria/egeria_my_client.py +0 -91
- pyegeria/feedback_manager_omvs.py +0 -4573
- pyegeria/load_config_orig.py +0 -218
- 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/project_manager.py +0 -1591
- pyegeria/registered_info.py +0 -167
- pyegeria/template_manager_omvs.py +0 -1414
- pyegeria/utils.py +0 -256
- pyegeria-5.4.0.28.dist-info/METADATA +0 -77
- pyegeria-5.4.0.28.dist-info/RECORD +0 -343
- pyegeria-5.4.0.28.dist-info/entry_points.txt +0 -105
- /commands/cat/debug_log.log → /pyegeria/deprecated/__init__.py +0 -0
- /pyegeria/{_exceptions.py → deprecated/_exceptions.py} +0 -0
- /pyegeria/{collection_models.py → models/collection_models.py} +0 -0
- {pyegeria-5.4.0.28.dist-info → pyegeria-5.5.3.3.dist-info/licenses}/LICENSE +0 -0
pyegeria/egeria_cat_client.py
CHANGED
|
@@ -2,35 +2,32 @@
|
|
|
2
2
|
SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
Copyright Contributors to the ODPi Egeria project.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
AssetCatalog, CollectionManager, GlossaryManager, and ProjectManager.
|
|
5
|
+
EgeriaCat: Catalog-oriented client using multiple inheritance.
|
|
7
6
|
|
|
7
|
+
This client combines methods from:
|
|
8
|
+
- AssetCatalog (asset_catalog_omvs)
|
|
9
|
+
- GlossaryManager (glossary_manager)
|
|
10
|
+
- ProjectManager (project_manager)
|
|
11
|
+
- MyProfile (my_profile_omvs)
|
|
12
|
+
|
|
13
|
+
to provide a single, convenient surface for catalog users.
|
|
8
14
|
"""
|
|
9
|
-
from pyegeria.
|
|
10
|
-
from pyegeria.
|
|
11
|
-
|
|
12
|
-
from pyegeria.
|
|
13
|
-
from pyegeria.project_manager import ProjectManager
|
|
15
|
+
from pyegeria.omvs.asset_catalog import AssetCatalog
|
|
16
|
+
from pyegeria.omvs.glossary_manager import GlossaryManager
|
|
17
|
+
from pyegeria.omvs.project_manager import ProjectManager
|
|
18
|
+
from pyegeria.omvs.my_profile import MyProfile
|
|
14
19
|
|
|
15
20
|
|
|
16
|
-
class EgeriaCat:
|
|
21
|
+
class EgeriaCat(ProjectManager, GlossaryManager, AssetCatalog, MyProfile):
|
|
17
22
|
"""
|
|
18
|
-
Catalog-oriented client
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
The identity of the user calling the method.
|
|
27
|
-
user_pwd: str
|
|
28
|
-
The password associated with the user_id. Defaults to None
|
|
29
|
-
token: str
|
|
30
|
-
An optional bearer token
|
|
31
|
-
|
|
32
|
-
Methods:
|
|
33
|
-
Methods are provided by composed sub-clients via delegation.
|
|
23
|
+
Catalog-oriented client that exposes the combined methods of
|
|
24
|
+
ProjectManager, GlossaryManager, AssetCatalog, and MyProfile via inheritance.
|
|
25
|
+
|
|
26
|
+
Notes:
|
|
27
|
+
- ProjectManager is listed first to prefer the BaseServerClient (ServerClient) token/session
|
|
28
|
+
implementations in method resolution order.
|
|
29
|
+
- Each parent class is explicitly initialized to ensure its internal state
|
|
30
|
+
(URLs, roots, etc.) is set up.
|
|
34
31
|
"""
|
|
35
32
|
|
|
36
33
|
def __init__(
|
|
@@ -41,52 +38,11 @@ class EgeriaCat:
|
|
|
41
38
|
user_pwd: str = None,
|
|
42
39
|
token: str = None,
|
|
43
40
|
):
|
|
44
|
-
|
|
45
|
-
self
|
|
46
|
-
self
|
|
47
|
-
self
|
|
48
|
-
|
|
49
|
-
# Compose sub-clients
|
|
50
|
-
self._asset_catalog = AssetCatalog(view_server, platform_url, user_id, user_pwd, token)
|
|
51
|
-
self._my = EgeriaMy(view_server, platform_url, user_id, user_pwd, token)
|
|
52
|
-
self._glossary = GlossaryManager(view_server, platform_url, user_id, user_pwd, token)
|
|
53
|
-
self._projects = ProjectManager(view_server, platform_url, user_id, user_pwd, token)
|
|
54
|
-
self._subclients = [
|
|
55
|
-
self._asset_catalog,
|
|
56
|
-
self._my,
|
|
57
|
-
self._glossary,
|
|
58
|
-
self._projects,
|
|
59
|
-
]
|
|
60
|
-
|
|
61
|
-
def __getattr__(self, name):
|
|
62
|
-
for sub in self._subclients:
|
|
63
|
-
if hasattr(sub, name):
|
|
64
|
-
return getattr(sub, name)
|
|
65
|
-
raise AttributeError(f"{self.__class__.__name__!s} object has no attribute {name!r}")
|
|
66
|
-
|
|
67
|
-
def create_egeria_bearer_token(self, user_id: str = None, user_pwd: str = None):
|
|
68
|
-
token_val = None
|
|
69
|
-
for sub in self._subclients:
|
|
70
|
-
token_val = sub.create_egeria_bearer_token(user_id, user_pwd)
|
|
71
|
-
return token_val
|
|
72
|
-
|
|
73
|
-
def set_bearer_token(self, token: str) -> None:
|
|
74
|
-
for sub in self._subclients:
|
|
75
|
-
sub.set_bearer_token(token)
|
|
76
|
-
|
|
77
|
-
def get_token(self) -> str:
|
|
78
|
-
for sub in self._subclients:
|
|
79
|
-
if hasattr(sub, "get_token"):
|
|
80
|
-
return sub.get_token()
|
|
81
|
-
return None
|
|
82
|
-
|
|
83
|
-
def close_session(self) -> None:
|
|
84
|
-
for sub in self._subclients:
|
|
85
|
-
if hasattr(sub, "close_session"):
|
|
86
|
-
try:
|
|
87
|
-
sub.close_session()
|
|
88
|
-
except Exception:
|
|
89
|
-
pass
|
|
41
|
+
# Initialize each parent explicitly (do not rely on cooperative super)
|
|
42
|
+
ProjectManager.__init__(self, view_server, platform_url, user_id, user_pwd, token)
|
|
43
|
+
GlossaryManager.__init__(self, view_server, platform_url, user_id, user_pwd, token)
|
|
44
|
+
AssetCatalog.__init__(self, view_server, platform_url, user_id, user_pwd, token)
|
|
45
|
+
MyProfile.__init__(self, view_server, platform_url, user_id, user_pwd, token)
|
|
90
46
|
|
|
91
47
|
|
|
92
48
|
if __name__ == "__main__":
|
pyegeria/egeria_client.py
CHANGED
|
@@ -11,48 +11,53 @@ for all use cases..using the more role based clients is often appropriate:
|
|
|
11
11
|
* EgeriaTech - for technical users such as data scientists and engineers
|
|
12
12
|
|
|
13
13
|
"""
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
# from pyegeria.collection_manager import CollectionManager
|
|
17
|
-
from pyegeria.glossary_manager import GlossaryManager
|
|
18
|
-
from pyegeria.project_manager import ProjectManager
|
|
19
|
-
from pyegeria.automated_curation_omvs import AutomatedCuration
|
|
20
|
-
from pyegeria.classification_manager_omvs import ClassificationManager
|
|
21
|
-
from pyegeria.template_manager_omvs import TemplateManager
|
|
22
|
-
from pyegeria.runtime_manager_omvs import RuntimeManager
|
|
23
|
-
from pyegeria.full_omag_server_config import FullServerConfig
|
|
24
|
-
from pyegeria.metadata_explorer_omvs import MetadataExplorer
|
|
25
|
-
from pyegeria.my_profile_omvs import MyProfile
|
|
26
|
-
from pyegeria.feedback_manager_omvs import FeedbackManager
|
|
27
|
-
from pyegeria.solution_architect_omvs import SolutionArchitect
|
|
28
|
-
from pyegeria.server_operations import ServerOps
|
|
29
|
-
from pyegeria.registered_info import RegisteredInfo
|
|
30
|
-
from pyegeria.valid_metadata_omvs import ValidMetadataManager
|
|
14
|
+
from typing import Optional, Dict, Any
|
|
15
|
+
|
|
31
16
|
from pyegeria.egeria_config_client import EgeriaConfig
|
|
32
|
-
from pyegeria.
|
|
33
|
-
from pyegeria.
|
|
34
|
-
|
|
17
|
+
from pyegeria.omvs.action_author import ActionAuthor
|
|
18
|
+
from pyegeria.omvs.actor_manager import ActorManager
|
|
19
|
+
from pyegeria.omvs.asset_catalog import AssetCatalog
|
|
20
|
+
from pyegeria.omvs.asset_maker import AssetMaker
|
|
21
|
+
from pyegeria.omvs.automated_curation import AutomatedCuration
|
|
22
|
+
from pyegeria.omvs.classification_manager import ClassificationManager
|
|
23
|
+
from pyegeria.omvs.collection_manager import CollectionManager
|
|
24
|
+
from pyegeria.omvs.community_matters_omvs import CommunityMatters
|
|
25
|
+
from pyegeria.omvs.data_designer import DataDesigner
|
|
26
|
+
from pyegeria.omvs.data_discovery import DataDiscovery
|
|
27
|
+
from pyegeria.omvs.data_engineer import DataEngineer
|
|
28
|
+
from pyegeria.omvs.digital_business import DigitalBusiness
|
|
29
|
+
from pyegeria.omvs.external_links import ExternalReferences
|
|
30
|
+
from pyegeria.omvs.feedback_manager import FeedbackManager
|
|
31
|
+
from pyegeria.omvs.full_omag_server_config import FullServerConfig
|
|
32
|
+
from pyegeria.omvs.glossary_manager import GlossaryManager
|
|
33
|
+
from pyegeria.omvs.governance_officer import GovernanceOfficer
|
|
34
|
+
from pyegeria.omvs.lineage_linker import LineageLinker
|
|
35
|
+
from pyegeria.omvs.location_arena import Location
|
|
36
|
+
from pyegeria.omvs.metadata_expert import MetadataExpert
|
|
37
|
+
from pyegeria.omvs.metadata_explorer_omvs import MetadataExplorer
|
|
38
|
+
from pyegeria.omvs.my_profile import MyProfile
|
|
39
|
+
from pyegeria.omvs.notification_manager import NotificationManager
|
|
40
|
+
from pyegeria.omvs.people_organizer import PeopleOrganizer
|
|
41
|
+
from pyegeria.omvs.product_manager import ProductManager
|
|
42
|
+
from pyegeria.omvs.project_manager import ProjectManager
|
|
43
|
+
from pyegeria.omvs.reference_data import ReferenceDataManager
|
|
44
|
+
from pyegeria.omvs.registered_info import RegisteredInfo
|
|
45
|
+
from pyegeria.omvs.runtime_manager import RuntimeManager
|
|
46
|
+
from pyegeria.omvs.schema_maker import SchemaMaker
|
|
47
|
+
from pyegeria.omvs.server_operations import ServerOps
|
|
48
|
+
from pyegeria.omvs.solution_architect import SolutionArchitect
|
|
49
|
+
from pyegeria.omvs.specification_properties import SpecificationProperties
|
|
50
|
+
from pyegeria.omvs.subject_area import SubjectArea
|
|
51
|
+
from pyegeria.omvs.template_manager_omvs import TemplateManager
|
|
52
|
+
from pyegeria.omvs.time_keeper import TimeKeeper
|
|
53
|
+
from pyegeria.omvs.valid_metadata import ValidMetadataManager
|
|
54
|
+
from pyegeria.omvs.valid_metadata_lists import ValidMetadataLists
|
|
55
|
+
from pyegeria.omvs.valid_type_lists import ValidTypeLists
|
|
35
56
|
|
|
36
57
|
|
|
37
58
|
class Egeria:
|
|
38
59
|
"""
|
|
39
|
-
Overall Egeria client that composes all functional pyegeria clients
|
|
40
|
-
|
|
41
|
-
Attributes:
|
|
42
|
-
view_server: str
|
|
43
|
-
Name of the view server to use.
|
|
44
|
-
platform_url : str
|
|
45
|
-
URL of the server platform to connect to
|
|
46
|
-
user_id : str
|
|
47
|
-
The identity of the user calling the method - this sets a default optionally used by the methods
|
|
48
|
-
when the user doesn't pass the user_id on a method call.
|
|
49
|
-
user_pwd: str
|
|
50
|
-
The password associated with the user_id. Defaults to None
|
|
51
|
-
token: str
|
|
52
|
-
An optional bearer token
|
|
53
|
-
|
|
54
|
-
Methods:
|
|
55
|
-
Methods are provided by composed sub-clients via delegation.
|
|
60
|
+
Overall Egeria client that composes all functional pyegeria clients using lazy loading.
|
|
56
61
|
"""
|
|
57
62
|
|
|
58
63
|
def __init__(
|
|
@@ -63,75 +68,107 @@ class Egeria:
|
|
|
63
68
|
user_pwd: str = None,
|
|
64
69
|
token: str = None,
|
|
65
70
|
):
|
|
66
|
-
|
|
67
|
-
self.
|
|
68
|
-
self.
|
|
69
|
-
self.
|
|
70
|
-
self.
|
|
71
|
-
self._projects = ProjectManager(view_server, platform_url, user_id, user_pwd, token)
|
|
72
|
-
self._runtime = RuntimeManager(view_server, platform_url, user_id, user_pwd, token)
|
|
73
|
-
self._server_ops = ServerOps(view_server, platform_url, user_id, user_pwd)
|
|
74
|
-
self._full_server_config = FullServerConfig(view_server, platform_url, user_id, user_pwd)
|
|
75
|
-
self._auto_curate = AutomatedCuration(view_server, platform_url, user_id, user_pwd, token)
|
|
76
|
-
self._class_mgr = ClassificationManager(view_server, platform_url, user_id, user_pwd, token)
|
|
77
|
-
self._reg_info = RegisteredInfo(view_server, platform_url, user_id, user_pwd, token)
|
|
78
|
-
self._templates = TemplateManager(view_server, platform_url, user_id, user_pwd, token)
|
|
79
|
-
self._valid = ValidMetadataManager(view_server, platform_url, user_id, user_pwd, token)
|
|
80
|
-
self._explorer = MetadataExplorer(view_server, platform_url, user_id, user_pwd, token)
|
|
81
|
-
self._sol_arch = SolutionArchitect(view_server, platform_url, user_id, user_pwd, token)
|
|
82
|
-
self._config = EgeriaConfig(view_server, platform_url, user_id, user_pwd)
|
|
83
|
-
self._designer = DataDesigner(view_server, platform_url, user_id, user_pwd, token)
|
|
84
|
-
self._gov_officer = GovernanceOfficer(view_server, platform_url, user_id, user_pwd, token)
|
|
71
|
+
self.view_server = view_server
|
|
72
|
+
self.platform_url = platform_url
|
|
73
|
+
self.user_id = user_id
|
|
74
|
+
self.user_pwd = user_pwd
|
|
75
|
+
self.token = token
|
|
85
76
|
|
|
86
|
-
self.
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
77
|
+
self._subclient_map = {
|
|
78
|
+
"action_author": ActionAuthor,
|
|
79
|
+
"actor_manager": ActorManager,
|
|
80
|
+
"asset_catalog": AssetCatalog,
|
|
81
|
+
"asset_maker": AssetMaker,
|
|
82
|
+
"auto_curate": AutomatedCuration,
|
|
83
|
+
"class_mgr": ClassificationManager,
|
|
84
|
+
"collections": CollectionManager,
|
|
85
|
+
"community": CommunityMatters,
|
|
86
|
+
"community_matters": CommunityMatters,
|
|
87
|
+
"config": EgeriaConfig,
|
|
88
|
+
"data_discovery": DataDiscovery,
|
|
89
|
+
"data_engineer": DataEngineer,
|
|
90
|
+
"designer": DataDesigner,
|
|
91
|
+
"data_designer": DataDesigner,
|
|
92
|
+
"digital_business": DigitalBusiness,
|
|
93
|
+
"expert": MetadataExpert,
|
|
94
|
+
"explorer": MetadataExplorer,
|
|
95
|
+
"external_refs": ExternalReferences,
|
|
96
|
+
"feedback": FeedbackManager,
|
|
97
|
+
"feedback_manager": FeedbackManager,
|
|
98
|
+
"full_server_config": FullServerConfig,
|
|
99
|
+
"glossary": GlossaryManager,
|
|
100
|
+
"gov_officer": GovernanceOfficer,
|
|
101
|
+
"lineage_linker": LineageLinker,
|
|
102
|
+
"location": Location,
|
|
103
|
+
"my_profile": MyProfile,
|
|
104
|
+
"notifications": NotificationManager,
|
|
105
|
+
"notification_manager": NotificationManager,
|
|
106
|
+
"people_organizer": PeopleOrganizer,
|
|
107
|
+
"product_manager": ProductManager,
|
|
108
|
+
"projects": ProjectManager,
|
|
109
|
+
"project_manager": ProjectManager,
|
|
110
|
+
"reference_data": ReferenceDataManager,
|
|
111
|
+
"reg_info": RegisteredInfo,
|
|
112
|
+
"runtime": RuntimeManager,
|
|
113
|
+
"schema_maker": SchemaMaker,
|
|
114
|
+
"server_ops": ServerOps,
|
|
115
|
+
"sol_arch": SolutionArchitect,
|
|
116
|
+
"specification_properties": SpecificationProperties,
|
|
117
|
+
"subject_area": SubjectArea,
|
|
118
|
+
"templates": TemplateManager,
|
|
119
|
+
"template_manager": TemplateManager,
|
|
120
|
+
"time_keeper": TimeKeeper,
|
|
121
|
+
"valid": ValidMetadataManager,
|
|
122
|
+
"valid_metadata": ValidMetadataManager,
|
|
123
|
+
"valid_metadata_lists": ValidMetadataLists,
|
|
124
|
+
"valid_type_lists": ValidTypeLists,
|
|
125
|
+
}
|
|
126
|
+
self._instantiated_clients = {}
|
|
127
|
+
|
|
128
|
+
def _get_subclient(self, attr_name: str):
|
|
129
|
+
if attr_name not in self._instantiated_clients:
|
|
130
|
+
client_cls = self._subclient_map[attr_name]
|
|
131
|
+
self._instantiated_clients[attr_name] = client_cls(
|
|
132
|
+
self.view_server, self.platform_url, self.user_id, self.user_pwd, self.token
|
|
133
|
+
)
|
|
134
|
+
return self._instantiated_clients[attr_name]
|
|
106
135
|
|
|
107
136
|
def __getattr__(self, name):
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
137
|
+
"""Resolves attributes via instantiated or mapped subclients"""
|
|
138
|
+
# Allow direct access to sub-clients if the name matches a key in the map
|
|
139
|
+
if name in self._subclient_map:
|
|
140
|
+
return self._get_subclient(name)
|
|
141
|
+
|
|
142
|
+
for inst in self._instantiated_clients.values():
|
|
143
|
+
if hasattr(inst, name):
|
|
144
|
+
return getattr(inst, name)
|
|
145
|
+
for attr_name, client_cls in self._subclient_map.items():
|
|
146
|
+
if hasattr(client_cls, name):
|
|
147
|
+
return getattr(self._get_subclient(attr_name), name)
|
|
148
|
+
raise AttributeError(f"{self.__class__.__name__} object has no attribute {name}")
|
|
112
149
|
|
|
113
150
|
def create_egeria_bearer_token(self, user_id: str = None, user_pwd: str = None):
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
151
|
+
# Use server_ops as a reliable helper for token generation
|
|
152
|
+
helper = self._get_subclient("server_ops")
|
|
153
|
+
token_val = helper.create_egeria_bearer_token(user_id, user_pwd)
|
|
154
|
+
self.set_bearer_token(token_val)
|
|
118
155
|
return token_val
|
|
119
156
|
|
|
120
157
|
def set_bearer_token(self, token: str) -> None:
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
158
|
+
self.token = token
|
|
159
|
+
for sub in self._instantiated_clients.values():
|
|
160
|
+
sub.set_bearer_token(token)
|
|
124
161
|
|
|
125
162
|
def get_token(self) -> str:
|
|
126
|
-
|
|
163
|
+
if self.token: return self.token
|
|
164
|
+
for sub in self._instantiated_clients.values():
|
|
127
165
|
if hasattr(sub, "get_token"):
|
|
128
166
|
return sub.get_token()
|
|
129
167
|
return None
|
|
130
168
|
|
|
131
169
|
def close_session(self) -> None:
|
|
132
|
-
for sub in self.
|
|
170
|
+
for sub in self._instantiated_clients.values():
|
|
133
171
|
if hasattr(sub, "close_session"):
|
|
134
|
-
try:
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
pass
|
|
172
|
+
try: sub.close_session()
|
|
173
|
+
except Exception: pass
|
|
174
|
+
self._instantiated_clients.clear()
|
pyegeria/egeria_config_client.py
CHANGED
|
@@ -5,71 +5,65 @@ Copyright Contributors to the ODPi Egeria project.
|
|
|
5
5
|
Client to configure the Egeria platform and servers
|
|
6
6
|
|
|
7
7
|
"""
|
|
8
|
-
|
|
9
|
-
from pyegeria.full_omag_server_config import FullServerConfig
|
|
10
|
-
from pyegeria.server_operations import ServerOps
|
|
8
|
+
from pyegeria.omvs.core_omag_server_config import CoreServerConfig
|
|
9
|
+
from pyegeria.omvs.full_omag_server_config import FullServerConfig
|
|
10
|
+
from pyegeria.omvs.server_operations import ServerOps
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class EgeriaConfig:
|
|
14
14
|
"""
|
|
15
|
-
Client for
|
|
16
|
-
|
|
17
|
-
Attributes:
|
|
18
|
-
server_name: str
|
|
19
|
-
Name of the server to use.
|
|
20
|
-
platform_url : str
|
|
21
|
-
URL of the server platform to connect to
|
|
22
|
-
user_id : str
|
|
23
|
-
The identity of the user calling the method - this sets a default optionally used by the methods
|
|
24
|
-
when the user doesn't pass the user_id on a method call.
|
|
25
|
-
user_pwd: str
|
|
26
|
-
The password associated with the user_id. Defaults to None
|
|
27
|
-
|
|
28
|
-
Methods:
|
|
29
|
-
Methods are provided by composed sub-clients via delegation.
|
|
15
|
+
Client for managing Egeria configuration using lazy loading.
|
|
30
16
|
"""
|
|
31
17
|
|
|
32
18
|
def __init__(
|
|
33
|
-
self,
|
|
19
|
+
self,
|
|
20
|
+
view_server: str,
|
|
21
|
+
platform_url: str,
|
|
22
|
+
user_id: str,
|
|
23
|
+
user_pwd: str = None,
|
|
24
|
+
token: str = None,
|
|
34
25
|
):
|
|
35
|
-
self.
|
|
26
|
+
self.view_server = view_server
|
|
36
27
|
self.platform_url = platform_url
|
|
37
28
|
self.user_id = user_id
|
|
38
29
|
self.user_pwd = user_pwd
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
self.
|
|
42
|
-
|
|
30
|
+
self.token = token
|
|
31
|
+
|
|
32
|
+
self._subclient_map = {
|
|
33
|
+
"core_config": CoreServerConfig,
|
|
34
|
+
"full_config": FullServerConfig,
|
|
35
|
+
}
|
|
36
|
+
self._instantiated_clients = {}
|
|
37
|
+
|
|
38
|
+
def _get_subclient(self, attr_name: str):
|
|
39
|
+
if attr_name not in self._instantiated_clients:
|
|
40
|
+
client_cls = self._subclient_map[attr_name]
|
|
41
|
+
self._instantiated_clients[attr_name] = client_cls(
|
|
42
|
+
self.view_server, self.platform_url, self.user_id, self.user_pwd, self.token
|
|
43
|
+
)
|
|
44
|
+
return self._instantiated_clients[attr_name]
|
|
43
45
|
|
|
44
46
|
def __getattr__(self, name):
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
token_val = sub.create_egeria_bearer_token(user_id, user_pwd)
|
|
54
|
-
return token_val
|
|
47
|
+
"""Resolves attribute via instantiated or mapped subclients"""
|
|
48
|
+
for inst in self._instantiated_clients.values():
|
|
49
|
+
if hasattr(inst, name):
|
|
50
|
+
return getattr(inst, name)
|
|
51
|
+
for attr_name, client_cls in self._subclient_map.items():
|
|
52
|
+
if hasattr(client_cls, name):
|
|
53
|
+
return getattr(self._get_subclient(attr_name), name)
|
|
54
|
+
raise AttributeError(f"{self.__class__.__name__} object has no attribute {name}")
|
|
55
55
|
|
|
56
56
|
def set_bearer_token(self, token: str) -> None:
|
|
57
|
-
|
|
57
|
+
self.token = token
|
|
58
|
+
for sub in self._instantiated_clients.values():
|
|
58
59
|
sub.set_bearer_token(token)
|
|
59
60
|
|
|
60
|
-
def get_token(self) -> str:
|
|
61
|
-
for sub in self._subclients:
|
|
62
|
-
if hasattr(sub, "get_token"):
|
|
63
|
-
return sub.get_token()
|
|
64
|
-
return None
|
|
65
|
-
|
|
66
61
|
def close_session(self) -> None:
|
|
67
|
-
for sub in self.
|
|
62
|
+
for sub in self._instantiated_clients.values():
|
|
68
63
|
if hasattr(sub, "close_session"):
|
|
69
|
-
try:
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
pass
|
|
64
|
+
try: sub.close_session()
|
|
65
|
+
except Exception: pass
|
|
66
|
+
self._instantiated_clients.clear()
|
|
73
67
|
|
|
74
68
|
|
|
75
69
|
if __name__ == "__main__":
|