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
|
@@ -1,63 +1,37 @@
|
|
|
1
1
|
"""
|
|
2
|
-
|
|
2
|
+
SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
Copyright Contributors to the ODPi Egeria project.
|
|
4
4
|
|
|
5
|
-
This module contains an initial version of the glossary_manager
|
|
6
|
-
added in subsequent versions of the glossary_omvs module.
|
|
5
|
+
This module contains an initial version of the glossary_manager module.
|
|
7
6
|
|
|
8
7
|
"""
|
|
9
8
|
|
|
10
9
|
import asyncio
|
|
11
10
|
import csv
|
|
12
11
|
import os
|
|
13
|
-
import
|
|
14
|
-
from typing import List, Annotated, Literal
|
|
12
|
+
from typing import List, Annotated, Literal, Optional
|
|
15
13
|
|
|
16
14
|
from loguru import logger
|
|
17
15
|
from pydantic import Field
|
|
18
16
|
|
|
19
|
-
from pyegeria.
|
|
20
|
-
from pyegeria.
|
|
21
|
-
from pyegeria.
|
|
22
|
-
from pyegeria.
|
|
23
|
-
from pyegeria.
|
|
24
|
-
from pyegeria.
|
|
25
|
-
|
|
26
|
-
from pyegeria.models import (NewElementRequestBody,
|
|
27
|
-
ReferenceableProperties, UpdateElementRequestBody, DeleteRequestBody, TemplateRequestBody,
|
|
17
|
+
from pyegeria.core._exceptions import PyegeriaInvalidParameterException
|
|
18
|
+
from pyegeria.core._globals import NO_GUID_RETURNED
|
|
19
|
+
from pyegeria.core._validators import validate_guid
|
|
20
|
+
from pyegeria.omvs.collection_manager import CollectionManager
|
|
21
|
+
from pyegeria.core.config import settings as app_settings
|
|
22
|
+
from pyegeria.models import (NewElementRequestBody, DeleteElementRequestBody, DeleteRelationshipRequestBody,
|
|
23
|
+
ReferenceableProperties, UpdateElementRequestBody, TemplateRequestBody,
|
|
28
24
|
NewRelationshipRequestBody, UpdateRelationshipRequestBody, NewClassificationRequestBody,
|
|
29
|
-
FilterRequestBody, GetRequestBody, SearchStringRequestBody,
|
|
30
|
-
|
|
31
|
-
from pyegeria.output_formatter import (generate_output,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
from pyegeria.utils import body_slimmer, dynamic_catch
|
|
25
|
+
FilterRequestBody, GetRequestBody, SearchStringRequestBody,
|
|
26
|
+
DeleteClassificationRequestBody)
|
|
27
|
+
from pyegeria.view.output_formatter import (generate_output,
|
|
28
|
+
_extract_referenceable_properties, populate_common_columns,
|
|
29
|
+
overlay_additional_values, resolve_output_formats)
|
|
30
|
+
from pyegeria.core.utils import body_slimmer, dynamic_catch
|
|
35
31
|
|
|
36
32
|
EGERIA_LOCAL_QUALIFIER = app_settings.User_Profile.egeria_local_qualifier
|
|
37
33
|
|
|
38
34
|
|
|
39
|
-
def query_seperator(current_string):
|
|
40
|
-
if current_string == "":
|
|
41
|
-
return "?"
|
|
42
|
-
else:
|
|
43
|
-
return "&"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
("params are in the form of [(paramName, value), (param2Name, value)] if the value is not None, it will be added to "
|
|
47
|
-
"the query string")
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
def query_string(params):
|
|
51
|
-
result = ""
|
|
52
|
-
for i in range(len(params)):
|
|
53
|
-
if params[i][1] is not None:
|
|
54
|
-
result = f"{result}{query_seperator(result)}{params[i][0]}={params[i][1]}"
|
|
55
|
-
return result
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
def base_path(client, view_server: str):
|
|
59
|
-
return f"{client.platform_url}/servers/{view_server}/api/open-metadata/classification-manager"
|
|
60
|
-
|
|
61
35
|
|
|
62
36
|
class GlossaryProperties(ReferenceableProperties):
|
|
63
37
|
class_: Annotated[Literal["GlossaryProperties"], Field(alias="class")]
|
|
@@ -78,22 +52,21 @@ class GlossaryTermProperties(ReferenceableProperties):
|
|
|
78
52
|
|
|
79
53
|
class GlossaryManager(CollectionManager):
|
|
80
54
|
"""
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
55
|
+
Client for the Glossary Manager View Service.
|
|
56
|
+
|
|
57
|
+
The Glossary Manager View Service provides methods to create and manage glossaries,
|
|
58
|
+
terms, and categories.
|
|
59
|
+
|
|
60
|
+
Attributes
|
|
61
|
+
----------
|
|
62
|
+
view_server : str
|
|
63
|
+
The name of the View Server to connect to.
|
|
64
|
+
platform_url : str
|
|
65
|
+
URL of the server platform to connect to.
|
|
66
|
+
user_id : str
|
|
67
|
+
The identity of the user calling the method.
|
|
68
|
+
user_pwd : str
|
|
69
|
+
The password associated with the user_id. Defaults to None.
|
|
97
70
|
"""
|
|
98
71
|
|
|
99
72
|
def __init__(
|
|
@@ -101,17 +74,20 @@ class GlossaryManager(CollectionManager):
|
|
|
101
74
|
view_server: str,
|
|
102
75
|
platform_url: str,
|
|
103
76
|
user_id: str,
|
|
104
|
-
user_pwd: str = None,
|
|
105
|
-
token: str = None,
|
|
77
|
+
user_pwd: Optional[str] = None,
|
|
78
|
+
token: Optional[str] = None,
|
|
106
79
|
):
|
|
107
|
-
self.gl_mgr_command_root: str
|
|
108
80
|
self.view_server = view_server
|
|
109
81
|
self.platform_url = platform_url
|
|
110
82
|
self.user_id = user_id
|
|
111
83
|
self.user_pwd = user_pwd
|
|
84
|
+
self.url_marker = "glossary-manager"
|
|
112
85
|
|
|
113
|
-
CollectionManager.__init__(self, view_server, platform_url, user_id, user_pwd, token)
|
|
114
86
|
|
|
87
|
+
CollectionManager.__init__(self, view_server, platform_url, user_id, user_pwd, token)
|
|
88
|
+
# result = self.get_platform_origin()
|
|
89
|
+
# logger.info(f"GlossaryManager initialized, platform origin is: {result}")
|
|
90
|
+
self.glossary_command_root = f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/glossary-manager"
|
|
115
91
|
#
|
|
116
92
|
# Get Valid Values for Enumerations
|
|
117
93
|
#
|
|
@@ -128,9 +104,35 @@ class GlossaryManager(CollectionManager):
|
|
|
128
104
|
|
|
129
105
|
|
|
130
106
|
@dynamic_catch
|
|
131
|
-
async def _async_create_glossary(self, display_name: str, description: str = None, language: str = "English", usage: str = None,
|
|
132
|
-
category: str = None, body: dict | NewElementRequestBody = None) -> str:
|
|
133
|
-
"""Create a new glossary
|
|
107
|
+
async def _async_create_glossary(self, display_name: str, description: Optional[str] = None, language: str = "English", usage: Optional[str] = None,
|
|
108
|
+
category: Optional[str] = None, body: Optional[dict | NewElementRequestBody] = None) -> str:
|
|
109
|
+
"""Create a new glossary. Async version.
|
|
110
|
+
|
|
111
|
+
Parameters
|
|
112
|
+
----------
|
|
113
|
+
display_name : str
|
|
114
|
+
The name of the glossary.
|
|
115
|
+
description : str, optional
|
|
116
|
+
The description of the glossary.
|
|
117
|
+
language : str, optional
|
|
118
|
+
The language of the glossary (default is "English").
|
|
119
|
+
usage : str, optional
|
|
120
|
+
The usage information for the glossary.
|
|
121
|
+
category : str, optional
|
|
122
|
+
The category for the glossary.
|
|
123
|
+
body : dict | NewElementRequestBody, optional
|
|
124
|
+
If provided, the request body for creating the glossary.
|
|
125
|
+
|
|
126
|
+
Returns
|
|
127
|
+
-------
|
|
128
|
+
str
|
|
129
|
+
The GUID of the newly created glossary.
|
|
130
|
+
|
|
131
|
+
Raises
|
|
132
|
+
------
|
|
133
|
+
PyegeriaException
|
|
134
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
135
|
+
"""
|
|
134
136
|
if body is None:
|
|
135
137
|
qualified_name = self.__create_qualified_name__("Glossary", display_name, EGERIA_LOCAL_QUALIFIER)
|
|
136
138
|
body = {
|
|
@@ -149,17 +151,43 @@ class GlossaryManager(CollectionManager):
|
|
|
149
151
|
response = await self._async_create_collection(body=body)
|
|
150
152
|
return response
|
|
151
153
|
|
|
152
|
-
def create_glossary(self, display_name: str, description: str = None, language: str = "English",
|
|
153
|
-
usage: str = None,
|
|
154
|
-
category: str = None, body: dict | NewElementRequestBody = None) -> str:
|
|
155
|
-
"""Create a new glossary
|
|
154
|
+
def create_glossary(self, display_name: str, description: Optional[str] = None, language: str = "English",
|
|
155
|
+
usage: Optional[str] = None,
|
|
156
|
+
category: Optional[str] = None, body: Optional[dict | NewElementRequestBody] = None) -> str:
|
|
157
|
+
"""Create a new glossary.
|
|
158
|
+
|
|
159
|
+
Parameters
|
|
160
|
+
----------
|
|
161
|
+
display_name : str
|
|
162
|
+
The name of the glossary.
|
|
163
|
+
description : str, optional
|
|
164
|
+
The description of the glossary.
|
|
165
|
+
language : str, optional
|
|
166
|
+
The language of the glossary (default is "English").
|
|
167
|
+
usage : str, optional
|
|
168
|
+
The usage information for the glossary.
|
|
169
|
+
category : str, optional
|
|
170
|
+
The category for the glossary.
|
|
171
|
+
body : dict | NewElementRequestBody, optional
|
|
172
|
+
If provided, the request body for creating the glossary.
|
|
173
|
+
|
|
174
|
+
Returns
|
|
175
|
+
-------
|
|
176
|
+
str
|
|
177
|
+
The GUID of the newly created glossary.
|
|
178
|
+
|
|
179
|
+
Raises
|
|
180
|
+
------
|
|
181
|
+
PyegeriaException
|
|
182
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
183
|
+
"""
|
|
156
184
|
loop = asyncio.get_event_loop()
|
|
157
185
|
response = loop.run_until_complete(
|
|
158
186
|
self._async_create_glossary(display_name, description, language, usage, category, body)
|
|
159
187
|
)
|
|
160
188
|
return response
|
|
161
189
|
|
|
162
|
-
async def _async_delete_glossary(self, glossary_guid: str, body: dict |
|
|
190
|
+
async def _async_delete_glossary(self, glossary_guid: str, body: Optional[dict | DeleteElementRequestBody] = None,
|
|
163
191
|
cascade: bool = False) -> None:
|
|
164
192
|
"""Delete glossary. Async version.
|
|
165
193
|
|
|
@@ -180,7 +208,7 @@ class GlossaryManager(CollectionManager):
|
|
|
180
208
|
|
|
181
209
|
logger.info(f"Deleted glossary {glossary_guid} with cascade {cascade}")
|
|
182
210
|
|
|
183
|
-
def delete_glossary(self, glossary_guid: str, body: dict |
|
|
211
|
+
def delete_glossary(self, glossary_guid: str, body: Optional[dict | DeleteElementRequestBody] = None, cascade: bool = False) -> None:
|
|
184
212
|
"""Delete a new glossary.
|
|
185
213
|
|
|
186
214
|
Parameters
|
|
@@ -229,8 +257,8 @@ class GlossaryManager(CollectionManager):
|
|
|
229
257
|
|
|
230
258
|
|
|
231
259
|
|
|
232
|
-
await self._async_update_collection(glossary_guid, body
|
|
233
|
-
logger.info(f"Updated
|
|
260
|
+
await self._async_update_collection(glossary_guid, body)
|
|
261
|
+
logger.info(f"Updated glossary {glossary_guid}")
|
|
234
262
|
|
|
235
263
|
def update_glossary(
|
|
236
264
|
self,
|
|
@@ -282,64 +310,22 @@ class GlossaryManager(CollectionManager):
|
|
|
282
310
|
async def _async_create_glossary_term(
|
|
283
311
|
self, body: dict | NewElementRequestBody
|
|
284
312
|
) -> str:
|
|
285
|
-
"""Create a term for a
|
|
286
|
-
See also: https://egeria-project.org/types/3/0385-Controlled-Glossary-Development/?h=controlled
|
|
287
|
-
The request body also supports the specification of an effective time for the query.
|
|
288
|
-
|
|
289
|
-
Async Version.
|
|
313
|
+
"""Create a term for a glossary. Async version.
|
|
290
314
|
|
|
291
315
|
Parameters
|
|
292
316
|
----------
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
317
|
+
body : dict | NewElementRequestBody
|
|
318
|
+
The request body for creating the glossary term.
|
|
296
319
|
|
|
297
320
|
Returns
|
|
298
321
|
-------
|
|
299
|
-
str
|
|
300
|
-
The unique
|
|
322
|
+
str
|
|
323
|
+
The unique GUID for the created term.
|
|
301
324
|
|
|
302
325
|
Raises
|
|
303
326
|
------
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
PropertyServerException
|
|
307
|
-
Raised by the server when an issue arises in processing a valid request.
|
|
308
|
-
NotAuthorizedException
|
|
309
|
-
The principle specified by the user_id does not have authorization for the requested action.
|
|
310
|
-
Notes
|
|
311
|
-
-----
|
|
312
|
-
|
|
313
|
-
Sample body like:
|
|
314
|
-
{
|
|
315
|
-
"class" : "NewElementRequestBody",
|
|
316
|
-
"parentGUID" : "Glossary GUID here",
|
|
317
|
-
"isOwnAnchor" : true,
|
|
318
|
-
"anchorScopeGUID" : "Glossary GUID here",
|
|
319
|
-
"parentRelationshipTypeName" : "ParentGlossary",
|
|
320
|
-
"parentAtEnd1": true,
|
|
321
|
-
"properties" :
|
|
322
|
-
{
|
|
323
|
-
"class" : "GlossaryTermProperties",
|
|
324
|
-
"qualifiedName" : "GlossaryTerm::term name",
|
|
325
|
-
"displayName" : "term name",
|
|
326
|
-
"aliases": []
|
|
327
|
-
"summary" : "This is the short description.",
|
|
328
|
-
"description" : "This is the long description of the term.",
|
|
329
|
-
"abbreviation" : "aabrev",
|
|
330
|
-
"examples" : "Add examples and descriptions here.",
|
|
331
|
-
"usage" : "This is how the concept described by the glossary term is used.",
|
|
332
|
-
"versionIdentifier" : "V1.0",
|
|
333
|
-
"category" : "A user defined category",
|
|
334
|
-
"additionalProperties" :
|
|
335
|
-
{
|
|
336
|
-
"propertyName1" : "xxxx",
|
|
337
|
-
"propertyName2" : "xxxx"
|
|
338
|
-
}
|
|
339
|
-
},
|
|
340
|
-
"initialStatus" : "DRAFT"
|
|
341
|
-
}
|
|
342
|
-
|
|
327
|
+
PyegeriaException
|
|
328
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
343
329
|
"""
|
|
344
330
|
|
|
345
331
|
url = (
|
|
@@ -348,63 +334,22 @@ class GlossaryManager(CollectionManager):
|
|
|
348
334
|
return await self._async_create_element_body_request(url, "GlossaryTermProperties", body)
|
|
349
335
|
|
|
350
336
|
def create_glossary_term(self, body: dict | NewElementRequestBody) -> str:
|
|
351
|
-
"""Create a term for a
|
|
352
|
-
See also: https://egeria-project.org/types/3/0385-Controlled-Glossary-Development/?h=controlled
|
|
353
|
-
The request body also supports the specification of an effective time for the query.
|
|
337
|
+
"""Create a term for a glossary.
|
|
354
338
|
|
|
355
339
|
Parameters
|
|
356
340
|
----------
|
|
357
|
-
|
|
358
|
-
body
|
|
359
|
-
The dictionary to create glossary term for. Example below.
|
|
360
|
-
|
|
341
|
+
body : dict | NewElementRequestBody
|
|
342
|
+
The request body for creating the glossary term.
|
|
361
343
|
|
|
362
344
|
Returns
|
|
363
345
|
-------
|
|
364
|
-
str
|
|
365
|
-
The unique
|
|
346
|
+
str
|
|
347
|
+
The unique GUID for the created term.
|
|
366
348
|
|
|
367
349
|
Raises
|
|
368
350
|
------
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
PropertyServerException
|
|
372
|
-
Raised by the server when an issue arises in processing a valid request.
|
|
373
|
-
NotAuthorizedException
|
|
374
|
-
The principle specified by the user_id does not have authorization for the requested action.
|
|
375
|
-
Notes
|
|
376
|
-
-----
|
|
377
|
-
|
|
378
|
-
Sample body like:
|
|
379
|
-
{
|
|
380
|
-
"class" : "NewElementRequestBody",
|
|
381
|
-
"parentGUID" : "Glossary GUID here",
|
|
382
|
-
"isOwnAnchor" : true,
|
|
383
|
-
"anchorScopeGUID" : "Glossary GUID here",
|
|
384
|
-
"parentRelationshipTypeName" : "ParentGlossary",
|
|
385
|
-
"parentAtEnd1": true,
|
|
386
|
-
"properties" :
|
|
387
|
-
{
|
|
388
|
-
"class" : "GlossaryTermProperties",
|
|
389
|
-
"qualifiedName" : "GlossaryTerm::term name",
|
|
390
|
-
"displayName" : "term name",
|
|
391
|
-
"aliases": []
|
|
392
|
-
"summary" : "This is the short description.",
|
|
393
|
-
"description" : "This is the long description of the term.",
|
|
394
|
-
"abbreviation" : "aabrev",
|
|
395
|
-
"examples" : "Add examples and descriptions here.",
|
|
396
|
-
"usage" : "This is how the concept described by the glossary term is used.",
|
|
397
|
-
"versionIdentifier" : "V1.0",
|
|
398
|
-
"category" : "A user defined category",
|
|
399
|
-
"additionalProperties" :
|
|
400
|
-
{
|
|
401
|
-
"propertyName1" : "xxxx",
|
|
402
|
-
"propertyName2" : "xxxx"
|
|
403
|
-
}
|
|
404
|
-
},
|
|
405
|
-
"initialStatus" : "DRAFT"
|
|
406
|
-
}
|
|
407
|
-
|
|
351
|
+
PyegeriaException
|
|
352
|
+
If there are issues in communications, message format, or Egeria errors.
|
|
408
353
|
"""
|
|
409
354
|
loop = asyncio.get_event_loop()
|
|
410
355
|
response = loop.run_until_complete(
|
|
@@ -452,9 +397,9 @@ class GlossaryManager(CollectionManager):
|
|
|
452
397
|
|
|
453
398
|
Raises
|
|
454
399
|
------
|
|
455
|
-
|
|
400
|
+
PyegeriaInvalidParameterException
|
|
456
401
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
457
|
-
|
|
402
|
+
PyegeriaAPIException
|
|
458
403
|
Raised by the server when an issue arises in processing a valid request.
|
|
459
404
|
NotAuthorizedException
|
|
460
405
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -513,7 +458,11 @@ class GlossaryManager(CollectionManager):
|
|
|
513
458
|
term_info = []
|
|
514
459
|
# check that the column headers are known
|
|
515
460
|
if all(header in term_properties for header in headers) is False:
|
|
516
|
-
raise
|
|
461
|
+
raise PyegeriaInvalidParameterException(
|
|
462
|
+
None,
|
|
463
|
+
context={"caller_method": "load_terms_from_csv"},
|
|
464
|
+
additional_info={"reason": "Invalid headers in CSV File"},
|
|
465
|
+
)
|
|
517
466
|
|
|
518
467
|
# process each row and validate values
|
|
519
468
|
for row in csv_reader:
|
|
@@ -760,9 +709,9 @@ class GlossaryManager(CollectionManager):
|
|
|
760
709
|
glossary_guid: str,
|
|
761
710
|
glossary_term_guid: str,
|
|
762
711
|
new_display_name: str,
|
|
763
|
-
version_id: str = None,
|
|
712
|
+
version_id: Optional[str] = None,
|
|
764
713
|
term_status: str = "PROPOSED",
|
|
765
|
-
body: dict | TemplateRequestBody = None,
|
|
714
|
+
body: Optional[dict | TemplateRequestBody] = None,
|
|
766
715
|
) -> str:
|
|
767
716
|
"""Create a new term from an existing term.
|
|
768
717
|
|
|
@@ -789,9 +738,9 @@ class GlossaryManager(CollectionManager):
|
|
|
789
738
|
|
|
790
739
|
Raises
|
|
791
740
|
------
|
|
792
|
-
|
|
741
|
+
PyegeriaInvalidParameterException
|
|
793
742
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
794
|
-
|
|
743
|
+
PyegeriaAPIException
|
|
795
744
|
Raised by the server when an issue arises in processing a valid request.
|
|
796
745
|
NotAuthorizedException
|
|
797
746
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -810,37 +759,22 @@ class GlossaryManager(CollectionManager):
|
|
|
810
759
|
body = {
|
|
811
760
|
"class" : "TemplateRequestBody",
|
|
812
761
|
"templateGUID": glossary_term_guid,
|
|
813
|
-
"
|
|
814
|
-
|
|
815
|
-
"propertyValueMap": {
|
|
816
|
-
"qualifiedName": {
|
|
817
|
-
"class": "PrimitiveTypePropertyValue",
|
|
818
|
-
"typeName": "string",
|
|
819
|
-
"primitiveValue": qualified_name,
|
|
820
|
-
},
|
|
821
|
-
|
|
822
|
-
"displayName": {
|
|
823
|
-
"class": "PrimitiveTypePropertyValue",
|
|
824
|
-
"typeName": "string",
|
|
825
|
-
"primitiveValue": new_display_name,
|
|
826
|
-
},
|
|
827
|
-
|
|
828
|
-
# "publishVersionIdentifier": {
|
|
829
|
-
# "class": "PrimitiveTypePropertyValue",
|
|
830
|
-
# "typeName": "string",
|
|
831
|
-
# "primitiveValue": version_id,
|
|
832
|
-
# },
|
|
762
|
+
"parentGuid": glossary_guid,
|
|
763
|
+
"parentAtEnd1": True,
|
|
833
764
|
|
|
834
|
-
|
|
765
|
+
"replacementProperties": {
|
|
766
|
+
"class": "GlossaryTermProperties",
|
|
767
|
+
"qualifiedName": qualified_name,
|
|
768
|
+
"displayName": new_display_name,
|
|
769
|
+
"status": term_status,
|
|
770
|
+
"versionIdentifier": version_id
|
|
835
771
|
},
|
|
836
|
-
"initialStatus": term_status,
|
|
837
772
|
}
|
|
838
773
|
validated_body = self._template_request_adapter.validate_python(body)
|
|
839
|
-
|
|
774
|
+
validated_body._templateGUID = glossary_term_guid
|
|
840
775
|
v_body = body_slimmer(validated_body.model_dump(exclude_none=True))
|
|
841
776
|
logger.info(v_body)
|
|
842
777
|
|
|
843
|
-
|
|
844
778
|
url = (
|
|
845
779
|
f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/glossary-manager/glossaries/"
|
|
846
780
|
f"terms/from-template/{glossary_term_guid}"
|
|
@@ -856,9 +790,9 @@ class GlossaryManager(CollectionManager):
|
|
|
856
790
|
glossary_guid: str,
|
|
857
791
|
glossary_term_guid: str,
|
|
858
792
|
new_display_name: str,
|
|
859
|
-
version_id: str = None,
|
|
793
|
+
version_id: Optional[str] = None,
|
|
860
794
|
term_status: str = "PROPOSED",
|
|
861
|
-
body: dict | TemplateRequestBody = None,
|
|
795
|
+
body: Optional[dict | TemplateRequestBody] = None,
|
|
862
796
|
) -> str:
|
|
863
797
|
"""Create a new term from an existing term.
|
|
864
798
|
|
|
@@ -883,9 +817,9 @@ class GlossaryManager(CollectionManager):
|
|
|
883
817
|
|
|
884
818
|
Raises
|
|
885
819
|
------
|
|
886
|
-
|
|
820
|
+
PyegeriaInvalidParameterException
|
|
887
821
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
888
|
-
|
|
822
|
+
PyegeriaAPIException
|
|
889
823
|
Raised by the server when an issue arises in processing a valid request.
|
|
890
824
|
NotAuthorizedException
|
|
891
825
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -907,6 +841,7 @@ class GlossaryManager(CollectionManager):
|
|
|
907
841
|
|
|
908
842
|
return response
|
|
909
843
|
|
|
844
|
+
@dynamic_catch
|
|
910
845
|
async def _async_update_glossary_term(
|
|
911
846
|
self,
|
|
912
847
|
glossary_term_guid: str,
|
|
@@ -928,9 +863,9 @@ class GlossaryManager(CollectionManager):
|
|
|
928
863
|
|
|
929
864
|
Raises
|
|
930
865
|
------
|
|
931
|
-
|
|
866
|
+
PyegeriaInvalidParameterException
|
|
932
867
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
933
|
-
|
|
868
|
+
PyegeriaAPIException
|
|
934
869
|
Raised by the server when an issue arises in processing a valid request.
|
|
935
870
|
NotAuthorizedException
|
|
936
871
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -948,7 +883,7 @@ class GlossaryManager(CollectionManager):
|
|
|
948
883
|
)
|
|
949
884
|
await self._async_update_element_body_request(url, ["GlossaryTermProperties"], body)
|
|
950
885
|
logger.info(f"Updated digital subscription {glossary_term_guid}")
|
|
951
|
-
|
|
886
|
+
@dynamic_catch
|
|
952
887
|
def update_glossary_term(
|
|
953
888
|
self,
|
|
954
889
|
glossary_term_guid: str,
|
|
@@ -975,9 +910,9 @@ class GlossaryManager(CollectionManager):
|
|
|
975
910
|
|
|
976
911
|
Raises
|
|
977
912
|
------
|
|
978
|
-
|
|
913
|
+
PyegeriaInvalidParameterException
|
|
979
914
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
980
|
-
|
|
915
|
+
PyegeriaAPIException
|
|
981
916
|
Raised by the server when an issue arises in processing a valid request.
|
|
982
917
|
NotAuthorizedException
|
|
983
918
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -1004,103 +939,101 @@ class GlossaryManager(CollectionManager):
|
|
|
1004
939
|
)
|
|
1005
940
|
)
|
|
1006
941
|
|
|
1007
|
-
|
|
1008
942
|
@dynamic_catch
|
|
1009
|
-
async def
|
|
1010
|
-
|
|
1011
|
-
|
|
943
|
+
async def _async_update_glossary_term_status(
|
|
944
|
+
self,
|
|
945
|
+
glossary_term_guid: str,
|
|
946
|
+
term_status: str = "DRAFT",
|
|
947
|
+
body: Optional[dict | UpdateElementRequestBody] = None,
|
|
948
|
+
) -> None:
|
|
949
|
+
"""Update the status of a term. Async version.
|
|
1012
950
|
|
|
1013
951
|
Parameters
|
|
1014
952
|
----------
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
supersede the status parameter provided.
|
|
953
|
+
glossary_term_guid: str
|
|
954
|
+
Unique identifier for the source glossary term.
|
|
955
|
+
term_status: str
|
|
956
|
+
new status of the term.
|
|
957
|
+
body: dict | UpdateElementRequestBody
|
|
958
|
+
Body containing information about the status change. Supersedes other parameters.
|
|
1022
959
|
|
|
1023
960
|
Returns
|
|
1024
961
|
-------
|
|
1025
|
-
|
|
962
|
+
None
|
|
1026
963
|
|
|
1027
964
|
Raises
|
|
1028
965
|
------
|
|
1029
|
-
|
|
1030
|
-
If the client passes incorrect parameters on the request - such as bad URLs or invalid values
|
|
1031
|
-
PropertyServerException
|
|
1032
|
-
Raised by the server when an issue arises in processing a valid request
|
|
1033
|
-
NotAuthorizedException
|
|
1034
|
-
The principle specified by the user_id does not have authorization for the requested action
|
|
966
|
+
PyegeriaException
|
|
1035
967
|
|
|
1036
|
-
Notes
|
|
1037
|
-
-----
|
|
1038
|
-
JSON Structure looks like:
|
|
1039
|
-
{
|
|
1040
|
-
"class": "UpdateStatusRequestBody",
|
|
1041
|
-
"status": "APPROVED",
|
|
1042
|
-
"externalSourceGUID": "add guid here",
|
|
1043
|
-
"externalSourceName": "add qualified name here",
|
|
1044
|
-
"effectiveTime": "{{$isoTimestamp}}",
|
|
1045
|
-
"forLineage": false,
|
|
1046
|
-
"forDuplicateProcessing": false
|
|
1047
|
-
}
|
|
1048
968
|
"""
|
|
1049
969
|
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
970
|
+
validate_guid(glossary_term_guid)
|
|
971
|
+
|
|
972
|
+
if body is None:
|
|
973
|
+
body = {
|
|
974
|
+
"class": "UpdateElementRequestBody",
|
|
975
|
+
"contentStatus": term_status,
|
|
976
|
+
"mergeUpdate": True,
|
|
977
|
+
}
|
|
978
|
+
await self._async_update_glossary_term( glossary_term_guid, body)
|
|
979
|
+
logger.info(f"Updated term status {glossary_term_guid}")
|
|
980
|
+
|
|
1053
981
|
|
|
1054
982
|
@dynamic_catch
|
|
1055
|
-
def
|
|
1056
|
-
|
|
1057
|
-
|
|
983
|
+
def update_glossary_term_status(
|
|
984
|
+
self,
|
|
985
|
+
glossary_term_guid: str, term_status: str = "DRAFT",
|
|
986
|
+
body: Optional[dict | UpdateElementRequestBody] = None,
|
|
987
|
+
) -> None:
|
|
988
|
+
"""Add the data field values classification to a glossary term
|
|
989
|
+
|
|
990
|
+
Async Version.
|
|
1058
991
|
|
|
1059
992
|
Parameters
|
|
1060
993
|
----------
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
supersede the status parameter provided.
|
|
994
|
+
glossary_term_guid: str
|
|
995
|
+
Unique identifier for the source glossary term.
|
|
996
|
+
term_status: str
|
|
997
|
+
new status of the term.
|
|
998
|
+
body: dict | UpdateStatusRequestBody
|
|
999
|
+
Body containing information about the status change. Supersedes other parameters.
|
|
1068
1000
|
|
|
1069
1001
|
Returns
|
|
1070
1002
|
-------
|
|
1071
|
-
|
|
1003
|
+
None
|
|
1072
1004
|
|
|
1073
1005
|
Raises
|
|
1074
1006
|
------
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1007
|
+
PyegeriaException
|
|
1008
|
+
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
1009
|
+
PyegeriaAPIException
|
|
1010
|
+
Raised by the server when an issue arises in processing a valid request.
|
|
1011
|
+
NotAuthoclearizedException
|
|
1012
|
+
The principle specified by the user_id does not have authorization for the requested action.
|
|
1082
1013
|
Notes
|
|
1083
1014
|
-----
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
"externalSourceName": "add qualified name here",
|
|
1090
|
-
"effectiveTime": "{{$isoTimestamp}}",
|
|
1091
|
-
"forLineage": false,
|
|
1092
|
-
"forDuplicateProcessing": false
|
|
1015
|
+
An example body is:
|
|
1016
|
+
|
|
1017
|
+
{
|
|
1018
|
+
"class" : "UpdateStatusRequestBody",
|
|
1019
|
+
"newStatus" : "DRAFT"
|
|
1093
1020
|
}
|
|
1021
|
+
|
|
1094
1022
|
"""
|
|
1095
1023
|
loop = asyncio.get_event_loop()
|
|
1096
|
-
loop.run_until_complete(
|
|
1097
|
-
|
|
1024
|
+
loop.run_until_complete(
|
|
1025
|
+
self._async_update_glossary_term_status(
|
|
1026
|
+
glossary_term_guid,
|
|
1027
|
+
body,
|
|
1028
|
+
)
|
|
1029
|
+
)
|
|
1098
1030
|
|
|
1031
|
+
@dynamic_catch
|
|
1099
1032
|
async def _async_delete_term(
|
|
1100
1033
|
self,
|
|
1101
1034
|
term_guid: str,
|
|
1102
1035
|
cascade: bool = False,
|
|
1103
|
-
body: dict |
|
|
1036
|
+
body: Optional[dict | DeleteElementRequestBody] = None
|
|
1104
1037
|
) -> None:
|
|
1105
1038
|
"""Delete the glossary terms associated with the specified glossary. Async version.
|
|
1106
1039
|
|
|
@@ -1119,9 +1052,9 @@ class GlossaryManager(CollectionManager):
|
|
|
1119
1052
|
|
|
1120
1053
|
Raises
|
|
1121
1054
|
------
|
|
1122
|
-
|
|
1055
|
+
PyegeriaInvalidParameterException
|
|
1123
1056
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
1124
|
-
|
|
1057
|
+
PyegeriaAPIException
|
|
1125
1058
|
Raised by the server when an issue arises in processing a valid request.
|
|
1126
1059
|
NotAuthorizedException
|
|
1127
1060
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -1135,7 +1068,7 @@ class GlossaryManager(CollectionManager):
|
|
|
1135
1068
|
f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/glossary-manager/glossaries/"
|
|
1136
1069
|
f"terms/{term_guid}/delete"
|
|
1137
1070
|
)
|
|
1138
|
-
await self.
|
|
1071
|
+
await self._async_delete_element_request(url, body, cascade)
|
|
1139
1072
|
logger.info(f"Deleted collection {term_guid} with cascade {cascade}")
|
|
1140
1073
|
|
|
1141
1074
|
|
|
@@ -1143,7 +1076,7 @@ class GlossaryManager(CollectionManager):
|
|
|
1143
1076
|
self,
|
|
1144
1077
|
term_guid: str,
|
|
1145
1078
|
cascade: bool = False,
|
|
1146
|
-
body: dict |
|
|
1079
|
+
body: Optional[dict | DeleteElementRequestBody] = None
|
|
1147
1080
|
) -> None:
|
|
1148
1081
|
"""Delete the glossary terms associated with the specified glossary.
|
|
1149
1082
|
|
|
@@ -1162,9 +1095,9 @@ class GlossaryManager(CollectionManager):
|
|
|
1162
1095
|
|
|
1163
1096
|
Raises
|
|
1164
1097
|
------
|
|
1165
|
-
|
|
1098
|
+
PyegeriaInvalidParameterException
|
|
1166
1099
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
1167
|
-
|
|
1100
|
+
PyegeriaAPIException
|
|
1168
1101
|
Raised by the server when an issue arises in processing a valid request.
|
|
1169
1102
|
NotAuthorizedException
|
|
1170
1103
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -1180,7 +1113,7 @@ class GlossaryManager(CollectionManager):
|
|
|
1180
1113
|
self,
|
|
1181
1114
|
term_guid: str,
|
|
1182
1115
|
glossary_guid: str,
|
|
1183
|
-
body: dict |
|
|
1116
|
+
body: Optional[dict | DeleteRelationshipRequestBody] = None
|
|
1184
1117
|
) -> None:
|
|
1185
1118
|
"""Move the glossary terms to the specified glossary. Async version.
|
|
1186
1119
|
|
|
@@ -1196,9 +1129,9 @@ class GlossaryManager(CollectionManager):
|
|
|
1196
1129
|
|
|
1197
1130
|
Raises
|
|
1198
1131
|
------
|
|
1199
|
-
|
|
1132
|
+
PyegeriaInvalidParameterException
|
|
1200
1133
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
1201
|
-
|
|
1134
|
+
PyegeriaAPIException
|
|
1202
1135
|
Raised by the server when an issue arises in processing a valid request.
|
|
1203
1136
|
NotAuthorizedException
|
|
1204
1137
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -1212,7 +1145,7 @@ class GlossaryManager(CollectionManager):
|
|
|
1212
1145
|
f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/glossary-manager/glossaries/"
|
|
1213
1146
|
f"terms/{term_guid}/move-to/{glossary_guid}"
|
|
1214
1147
|
)
|
|
1215
|
-
await self.
|
|
1148
|
+
await self._async_delete_relationship_request(url, body)
|
|
1216
1149
|
logger.info(f"Moved collection {term_guid} to glossary {glossary_guid}")
|
|
1217
1150
|
|
|
1218
1151
|
|
|
@@ -1220,7 +1153,7 @@ class GlossaryManager(CollectionManager):
|
|
|
1220
1153
|
self,
|
|
1221
1154
|
term_guid: str,
|
|
1222
1155
|
glossary_guid: str,
|
|
1223
|
-
body: dict |
|
|
1156
|
+
body: Optional[dict | DeleteRelationshipRequestBody] = None
|
|
1224
1157
|
) -> None:
|
|
1225
1158
|
"""Move the glossary terms to the specified glossary.
|
|
1226
1159
|
|
|
@@ -1236,9 +1169,9 @@ class GlossaryManager(CollectionManager):
|
|
|
1236
1169
|
|
|
1237
1170
|
Raises
|
|
1238
1171
|
------
|
|
1239
|
-
|
|
1172
|
+
PyegeriaInvalidParameterException
|
|
1240
1173
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
1241
|
-
|
|
1174
|
+
PyegeriaAPIException
|
|
1242
1175
|
Raised by the server when an issue arises in processing a valid request.
|
|
1243
1176
|
NotAuthorizedException
|
|
1244
1177
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -1257,16 +1190,16 @@ class GlossaryManager(CollectionManager):
|
|
|
1257
1190
|
#
|
|
1258
1191
|
|
|
1259
1192
|
|
|
1193
|
+
|
|
1194
|
+
|
|
1260
1195
|
#
|
|
1261
1196
|
# From glossary browser
|
|
1262
1197
|
#
|
|
1263
1198
|
|
|
1264
1199
|
|
|
1265
1200
|
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
1201
|
async def _async_add_is_abstract_concepts(
|
|
1269
|
-
self, term_guid: str, body: dict | NewClassificationRequestBody = None,
|
|
1202
|
+
self, term_guid: str, body: Optional[dict | NewClassificationRequestBody] = None,
|
|
1270
1203
|
) -> None:
|
|
1271
1204
|
"""Add a relationship between terms. Async Version.
|
|
1272
1205
|
|
|
@@ -1288,9 +1221,9 @@ class GlossaryManager(CollectionManager):
|
|
|
1288
1221
|
|
|
1289
1222
|
Raises
|
|
1290
1223
|
------
|
|
1291
|
-
|
|
1224
|
+
PyegeriaInvalidParameterException
|
|
1292
1225
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
1293
|
-
|
|
1226
|
+
PyegeriaAPIException
|
|
1294
1227
|
Raised by the server when an issue arises in processing a valid request.
|
|
1295
1228
|
NotAuthorizedException
|
|
1296
1229
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -1326,12 +1259,12 @@ class GlossaryManager(CollectionManager):
|
|
|
1326
1259
|
}
|
|
1327
1260
|
}
|
|
1328
1261
|
|
|
1329
|
-
await self._async_new_classification_request(url, "AbstractConceptProperties",body)
|
|
1262
|
+
await self._async_new_classification_request(url, "AbstractConceptProperties", body)
|
|
1330
1263
|
logger.info(f"Added AbstractConcept classification to {term_guid}")
|
|
1331
1264
|
|
|
1332
1265
|
|
|
1333
1266
|
def add_is_abstract_concept(
|
|
1334
|
-
self, term_guid: str, body: dict | NewClassificationRequestBody = None,
|
|
1267
|
+
self, term_guid: str, body: Optional[dict | NewClassificationRequestBody] = None,
|
|
1335
1268
|
) -> None:
|
|
1336
1269
|
"""Add a relationship between terms.
|
|
1337
1270
|
|
|
@@ -1352,9 +1285,9 @@ class GlossaryManager(CollectionManager):
|
|
|
1352
1285
|
|
|
1353
1286
|
Raises
|
|
1354
1287
|
------
|
|
1355
|
-
|
|
1288
|
+
PyegeriaInvalidParameterException
|
|
1356
1289
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
1357
|
-
|
|
1290
|
+
PyegeriaAPIException
|
|
1358
1291
|
Raised by the server when an issue arises in processing a valid request.
|
|
1359
1292
|
NotAuthorizedException
|
|
1360
1293
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -1387,7 +1320,7 @@ class GlossaryManager(CollectionManager):
|
|
|
1387
1320
|
)
|
|
1388
1321
|
|
|
1389
1322
|
async def _async_remove_is_abstract_concepts(
|
|
1390
|
-
self, term_guid: str, body: dict |
|
|
1323
|
+
self, term_guid: str, body: Optional[dict | DeleteClassificationRequestBody] = None,
|
|
1391
1324
|
) -> None:
|
|
1392
1325
|
"""Add a relationship between terms. Async Version.
|
|
1393
1326
|
|
|
@@ -1409,9 +1342,9 @@ class GlossaryManager(CollectionManager):
|
|
|
1409
1342
|
|
|
1410
1343
|
Raises
|
|
1411
1344
|
------
|
|
1412
|
-
|
|
1345
|
+
PyegeriaInvalidParameterException
|
|
1413
1346
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
1414
|
-
|
|
1347
|
+
PyegeriaAPIException
|
|
1415
1348
|
Raised by the server when an issue arises in processing a valid request.
|
|
1416
1349
|
NotAuthorizedException
|
|
1417
1350
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -1438,11 +1371,11 @@ class GlossaryManager(CollectionManager):
|
|
|
1438
1371
|
f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/glossary-manager/glossaries/"
|
|
1439
1372
|
f"terms/{term_guid}/is-abstract-concept/remove"
|
|
1440
1373
|
)
|
|
1441
|
-
await self.
|
|
1374
|
+
await self._async_delete_classification_request(url, body)
|
|
1442
1375
|
logger.info(f"Removed AbstractConcept classification to {term_guid}")
|
|
1443
1376
|
|
|
1444
1377
|
def remove_is_abstract_concept(
|
|
1445
|
-
self, term_guid: str, body: dict |
|
|
1378
|
+
self, term_guid: str, body: Optional[dict | DeleteClassificationRequestBody] = None,
|
|
1446
1379
|
) -> None:
|
|
1447
1380
|
"""Add a relationship between terms.
|
|
1448
1381
|
|
|
@@ -1463,9 +1396,9 @@ class GlossaryManager(CollectionManager):
|
|
|
1463
1396
|
|
|
1464
1397
|
Raises
|
|
1465
1398
|
------
|
|
1466
|
-
|
|
1399
|
+
PyegeriaInvalidParameterException
|
|
1467
1400
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
1468
|
-
|
|
1401
|
+
PyegeriaAPIException
|
|
1469
1402
|
Raised by the server when an issue arises in processing a valid request.
|
|
1470
1403
|
NotAuthorizedException
|
|
1471
1404
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -1499,7 +1432,7 @@ class GlossaryManager(CollectionManager):
|
|
|
1499
1432
|
|
|
1500
1433
|
|
|
1501
1434
|
async def _async_add_is_context_definition(
|
|
1502
|
-
self, term_guid: str, body: dict | NewClassificationRequestBody = None,
|
|
1435
|
+
self, term_guid: str, body: Optional[dict | NewClassificationRequestBody] = None,
|
|
1503
1436
|
) -> None:
|
|
1504
1437
|
"""Add a relationship between terms. Async Version.
|
|
1505
1438
|
|
|
@@ -1521,9 +1454,9 @@ class GlossaryManager(CollectionManager):
|
|
|
1521
1454
|
|
|
1522
1455
|
Raises
|
|
1523
1456
|
------
|
|
1524
|
-
|
|
1457
|
+
PyegeriaInvalidParameterException
|
|
1525
1458
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
1526
|
-
|
|
1459
|
+
PyegeriaAPIException
|
|
1527
1460
|
Raised by the server when an issue arises in processing a valid request.
|
|
1528
1461
|
NotAuthorizedException
|
|
1529
1462
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -1559,13 +1492,13 @@ class GlossaryManager(CollectionManager):
|
|
|
1559
1492
|
}
|
|
1560
1493
|
}
|
|
1561
1494
|
|
|
1562
|
-
await self._async_new_classification_request(url, "ContextDefinitionProperties",body)
|
|
1495
|
+
await self._async_new_classification_request(url, "ContextDefinitionProperties", body)
|
|
1563
1496
|
logger.info(f"Added AbstractConcept classification to {term_guid}")
|
|
1564
1497
|
|
|
1565
1498
|
|
|
1566
1499
|
|
|
1567
1500
|
def add_is_context_definition(
|
|
1568
|
-
self, term_guid: str, body: dict | NewClassificationRequestBody = None,
|
|
1501
|
+
self, term_guid: str, body: Optional[dict | NewClassificationRequestBody] = None,
|
|
1569
1502
|
) -> None:
|
|
1570
1503
|
"""Add a relationship between terms.
|
|
1571
1504
|
|
|
@@ -1586,9 +1519,9 @@ class GlossaryManager(CollectionManager):
|
|
|
1586
1519
|
|
|
1587
1520
|
Raises
|
|
1588
1521
|
------
|
|
1589
|
-
|
|
1522
|
+
PyegeriaInvalidParameterException
|
|
1590
1523
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
1591
|
-
|
|
1524
|
+
PyegeriaAPIException
|
|
1592
1525
|
Raised by the server when an issue arises in processing a valid request.
|
|
1593
1526
|
NotAuthorizedException
|
|
1594
1527
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -1621,7 +1554,7 @@ class GlossaryManager(CollectionManager):
|
|
|
1621
1554
|
)
|
|
1622
1555
|
|
|
1623
1556
|
async def _async_remove_is_context_definition(
|
|
1624
|
-
self, term_guid: str, body: dict |
|
|
1557
|
+
self, term_guid: str, body: Optional[dict | DeleteClassificationRequestBody] = None,
|
|
1625
1558
|
) -> None:
|
|
1626
1559
|
"""Add a relationship between terms. Async Version.
|
|
1627
1560
|
|
|
@@ -1643,9 +1576,9 @@ class GlossaryManager(CollectionManager):
|
|
|
1643
1576
|
|
|
1644
1577
|
Raises
|
|
1645
1578
|
------
|
|
1646
|
-
|
|
1579
|
+
PyegeriaInvalidParameterException
|
|
1647
1580
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
1648
|
-
|
|
1581
|
+
PyegeriaAPIException
|
|
1649
1582
|
Raised by the server when an issue arises in processing a valid request.
|
|
1650
1583
|
NotAuthorizedException
|
|
1651
1584
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -1672,11 +1605,11 @@ class GlossaryManager(CollectionManager):
|
|
|
1672
1605
|
f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/glossary-manager/glossaries/"
|
|
1673
1606
|
f"terms/{term_guid}/is-context-definition/remove"
|
|
1674
1607
|
)
|
|
1675
|
-
await self.
|
|
1608
|
+
await self._async_delete_classification_request(url, body)
|
|
1676
1609
|
logger.info(f"Removed ContextDefinition classification to {term_guid}")
|
|
1677
1610
|
|
|
1678
1611
|
def remove_is_context_definition(
|
|
1679
|
-
self, term_guid: str, body: dict |
|
|
1612
|
+
self, term_guid: str, body: Optional[dict | DeleteClassificationRequestBody] = None,
|
|
1680
1613
|
) -> None:
|
|
1681
1614
|
"""Add a relationship between terms.
|
|
1682
1615
|
|
|
@@ -1697,9 +1630,9 @@ class GlossaryManager(CollectionManager):
|
|
|
1697
1630
|
|
|
1698
1631
|
Raises
|
|
1699
1632
|
------
|
|
1700
|
-
|
|
1633
|
+
PyegeriaInvalidParameterException
|
|
1701
1634
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
1702
|
-
|
|
1635
|
+
PyegeriaAPIException
|
|
1703
1636
|
Raised by the server when an issue arises in processing a valid request.
|
|
1704
1637
|
NotAuthorizedException
|
|
1705
1638
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -1733,7 +1666,7 @@ class GlossaryManager(CollectionManager):
|
|
|
1733
1666
|
|
|
1734
1667
|
|
|
1735
1668
|
async def _async_add_is_data_value(
|
|
1736
|
-
self, term_guid: str, body: dict | NewClassificationRequestBody = None,
|
|
1669
|
+
self, term_guid: str, body: Optional[dict | NewClassificationRequestBody] = None,
|
|
1737
1670
|
) -> None:
|
|
1738
1671
|
"""Add a relationship between terms. Async Version.
|
|
1739
1672
|
|
|
@@ -1755,9 +1688,9 @@ class GlossaryManager(CollectionManager):
|
|
|
1755
1688
|
|
|
1756
1689
|
Raises
|
|
1757
1690
|
------
|
|
1758
|
-
|
|
1691
|
+
PyegeriaInvalidParameterException
|
|
1759
1692
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
1760
|
-
|
|
1693
|
+
PyegeriaAPIException
|
|
1761
1694
|
Raised by the server when an issue arises in processing a valid request.
|
|
1762
1695
|
NotAuthorizedException
|
|
1763
1696
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -1793,13 +1726,13 @@ class GlossaryManager(CollectionManager):
|
|
|
1793
1726
|
}
|
|
1794
1727
|
}
|
|
1795
1728
|
|
|
1796
|
-
await self._async_new_classification_request(url, "DataValueProperties",body)
|
|
1729
|
+
await self._async_new_classification_request(url, "DataValueProperties", body)
|
|
1797
1730
|
logger.info(f"Added DataValue classification to {term_guid}")
|
|
1798
1731
|
|
|
1799
1732
|
|
|
1800
1733
|
|
|
1801
1734
|
def add_is_data_value(
|
|
1802
|
-
self, term_guid: str, body: dict | NewClassificationRequestBody = None,
|
|
1735
|
+
self, term_guid: str, body: Optional[dict | NewClassificationRequestBody] = None,
|
|
1803
1736
|
) -> None:
|
|
1804
1737
|
"""Add a relationship between terms.
|
|
1805
1738
|
|
|
@@ -1820,9 +1753,9 @@ class GlossaryManager(CollectionManager):
|
|
|
1820
1753
|
|
|
1821
1754
|
Raises
|
|
1822
1755
|
------
|
|
1823
|
-
|
|
1756
|
+
PyegeriaInvalidParameterException
|
|
1824
1757
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
1825
|
-
|
|
1758
|
+
PyegeriaAPIException
|
|
1826
1759
|
Raised by the server when an issue arises in processing a valid request.
|
|
1827
1760
|
NotAuthorizedException
|
|
1828
1761
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -1855,7 +1788,7 @@ class GlossaryManager(CollectionManager):
|
|
|
1855
1788
|
)
|
|
1856
1789
|
|
|
1857
1790
|
async def _async_remove_is_data_value(
|
|
1858
|
-
self, term_guid: str, body: dict |
|
|
1791
|
+
self, term_guid: str, body: Optional[dict | DeleteClassificationRequestBody] = None,
|
|
1859
1792
|
) -> None:
|
|
1860
1793
|
"""Add a relationship between terms. Async Version.
|
|
1861
1794
|
|
|
@@ -1877,9 +1810,9 @@ class GlossaryManager(CollectionManager):
|
|
|
1877
1810
|
|
|
1878
1811
|
Raises
|
|
1879
1812
|
------
|
|
1880
|
-
|
|
1813
|
+
PyegeriaInvalidParameterException
|
|
1881
1814
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
1882
|
-
|
|
1815
|
+
PyegeriaAPIException
|
|
1883
1816
|
Raised by the server when an issue arises in processing a valid request.
|
|
1884
1817
|
NotAuthorizedException
|
|
1885
1818
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -1906,11 +1839,11 @@ class GlossaryManager(CollectionManager):
|
|
|
1906
1839
|
f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/glossary-manager/glossaries/"
|
|
1907
1840
|
f"terms/{term_guid}/is-data-value/remove"
|
|
1908
1841
|
)
|
|
1909
|
-
await self.
|
|
1842
|
+
await self._async_delete_classification_request(url, body)
|
|
1910
1843
|
logger.info(f"Removed DataValue classification to {term_guid}")
|
|
1911
1844
|
|
|
1912
1845
|
def remove_is_data_value(
|
|
1913
|
-
self, term_guid: str, body: dict |
|
|
1846
|
+
self, term_guid: str, body: Optional[dict | DeleteClassificationRequestBody] = None,
|
|
1914
1847
|
) -> None:
|
|
1915
1848
|
"""Add a relationship between terms.
|
|
1916
1849
|
|
|
@@ -1931,9 +1864,9 @@ class GlossaryManager(CollectionManager):
|
|
|
1931
1864
|
|
|
1932
1865
|
Raises
|
|
1933
1866
|
------
|
|
1934
|
-
|
|
1867
|
+
PyegeriaInvalidParameterException
|
|
1935
1868
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
1936
|
-
|
|
1869
|
+
PyegeriaAPIException
|
|
1937
1870
|
Raised by the server when an issue arises in processing a valid request.
|
|
1938
1871
|
NotAuthorizedException
|
|
1939
1872
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -1967,7 +1900,7 @@ class GlossaryManager(CollectionManager):
|
|
|
1967
1900
|
|
|
1968
1901
|
|
|
1969
1902
|
async def _async_add_activity_description(
|
|
1970
|
-
self, term_guid: str, activity_type: int = None, body: dict | NewClassificationRequestBody = None,
|
|
1903
|
+
self, term_guid: str, activity_type: int = None, body: Optional[dict | NewClassificationRequestBody] = None,
|
|
1971
1904
|
) -> None:
|
|
1972
1905
|
"""Add a relationship between terms. Async Version.
|
|
1973
1906
|
|
|
@@ -1989,9 +1922,9 @@ class GlossaryManager(CollectionManager):
|
|
|
1989
1922
|
|
|
1990
1923
|
Raises
|
|
1991
1924
|
------
|
|
1992
|
-
|
|
1925
|
+
PyegeriaInvalidParameterException
|
|
1993
1926
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
1994
|
-
|
|
1927
|
+
PyegeriaAPIException
|
|
1995
1928
|
Raised by the server when an issue arises in processing a valid request.
|
|
1996
1929
|
NotAuthorizedException
|
|
1997
1930
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -2027,13 +1960,13 @@ class GlossaryManager(CollectionManager):
|
|
|
2027
1960
|
f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/glossary-manager/glossaries/"
|
|
2028
1961
|
f"terms/{term_guid}/is-activity"
|
|
2029
1962
|
)
|
|
2030
|
-
await self._async_new_classification_request(url, "ActivityDescriptionProperties",body)
|
|
1963
|
+
await self._async_new_classification_request(url, "ActivityDescriptionProperties", body)
|
|
2031
1964
|
logger.info(f"Added DataValue classification to {term_guid}")
|
|
2032
1965
|
|
|
2033
1966
|
|
|
2034
1967
|
|
|
2035
1968
|
def add_activity_description(
|
|
2036
|
-
self, term_guid: str, activity_type: int = None, body: dict | NewClassificationRequestBody = None,
|
|
1969
|
+
self, term_guid: str, activity_type: int = None, body: Optional[dict | NewClassificationRequestBody] = None,
|
|
2037
1970
|
) -> None:
|
|
2038
1971
|
"""Add a relationship between terms.
|
|
2039
1972
|
|
|
@@ -2054,9 +1987,9 @@ class GlossaryManager(CollectionManager):
|
|
|
2054
1987
|
|
|
2055
1988
|
Raises
|
|
2056
1989
|
------
|
|
2057
|
-
|
|
1990
|
+
PyegeriaInvalidParameterException
|
|
2058
1991
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
2059
|
-
|
|
1992
|
+
PyegeriaAPIException
|
|
2060
1993
|
Raised by the server when an issue arises in processing a valid request.
|
|
2061
1994
|
NotAuthorizedException
|
|
2062
1995
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -2089,7 +2022,7 @@ class GlossaryManager(CollectionManager):
|
|
|
2089
2022
|
)
|
|
2090
2023
|
|
|
2091
2024
|
async def _async_remove_activity_description(
|
|
2092
|
-
self, term_guid: str, body: dict |
|
|
2025
|
+
self, term_guid: str, body: Optional[dict | DeleteClassificationRequestBody] = None,
|
|
2093
2026
|
) -> None:
|
|
2094
2027
|
"""Add a relationship between terms. Async Version.
|
|
2095
2028
|
|
|
@@ -2111,9 +2044,9 @@ class GlossaryManager(CollectionManager):
|
|
|
2111
2044
|
|
|
2112
2045
|
Raises
|
|
2113
2046
|
------
|
|
2114
|
-
|
|
2047
|
+
PyegeriaInvalidParameterException
|
|
2115
2048
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
2116
|
-
|
|
2049
|
+
PyegeriaAPIException
|
|
2117
2050
|
Raised by the server when an issue arises in processing a valid request.
|
|
2118
2051
|
NotAuthorizedException
|
|
2119
2052
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -2140,11 +2073,11 @@ class GlossaryManager(CollectionManager):
|
|
|
2140
2073
|
f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/glossary-manager/glossaries/"
|
|
2141
2074
|
f"terms/{term_guid}/is-activity/remove"
|
|
2142
2075
|
)
|
|
2143
|
-
await self.
|
|
2076
|
+
await self._async_delete_classification_request(url, body)
|
|
2144
2077
|
logger.info(f"Removed ActivityDescription classification to {term_guid}")
|
|
2145
2078
|
|
|
2146
2079
|
def remove_activity_description(
|
|
2147
|
-
self, term_guid: str, body: dict |
|
|
2080
|
+
self, term_guid: str, body: Optional[dict | DeleteClassificationRequestBody] = None,
|
|
2148
2081
|
) -> None:
|
|
2149
2082
|
"""Add a relationship between terms.
|
|
2150
2083
|
|
|
@@ -2165,9 +2098,9 @@ class GlossaryManager(CollectionManager):
|
|
|
2165
2098
|
|
|
2166
2099
|
Raises
|
|
2167
2100
|
------
|
|
2168
|
-
|
|
2101
|
+
PyegeriaInvalidParameterException
|
|
2169
2102
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
2170
|
-
|
|
2103
|
+
PyegeriaAPIException
|
|
2171
2104
|
Raised by the server when an issue arises in processing a valid request.
|
|
2172
2105
|
NotAuthorizedException
|
|
2173
2106
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -2204,7 +2137,7 @@ class GlossaryManager(CollectionManager):
|
|
|
2204
2137
|
#
|
|
2205
2138
|
|
|
2206
2139
|
async def _async_add_relationship_between_terms(
|
|
2207
|
-
self, term1_guid: str, term2_guid: str, relationship_type: str, body: dict | NewRelationshipRequestBody = None,
|
|
2140
|
+
self, term1_guid: str, term2_guid: str, relationship_type: str, body: Optional[dict | NewRelationshipRequestBody] = None,
|
|
2208
2141
|
) -> None:
|
|
2209
2142
|
"""Add a relationship between terms. Async Version.
|
|
2210
2143
|
|
|
@@ -2226,9 +2159,9 @@ class GlossaryManager(CollectionManager):
|
|
|
2226
2159
|
|
|
2227
2160
|
Raises
|
|
2228
2161
|
------
|
|
2229
|
-
|
|
2162
|
+
PyegeriaInvalidParameterException
|
|
2230
2163
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
2231
|
-
|
|
2164
|
+
PyegeriaAPIException
|
|
2232
2165
|
Raised by the server when an issue arises in processing a valid request.
|
|
2233
2166
|
NotAuthorizedException
|
|
2234
2167
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -2261,9 +2194,9 @@ class GlossaryManager(CollectionManager):
|
|
|
2261
2194
|
|
|
2262
2195
|
if body is None:
|
|
2263
2196
|
body = {
|
|
2264
|
-
"class": "
|
|
2197
|
+
"class": "NewRelationshipRequestBody",
|
|
2265
2198
|
"properties":
|
|
2266
|
-
{"class": "GlossaryTermRelationship"
|
|
2199
|
+
{"class": "GlossaryTermRelationship" }
|
|
2267
2200
|
}
|
|
2268
2201
|
|
|
2269
2202
|
|
|
@@ -2276,7 +2209,7 @@ class GlossaryManager(CollectionManager):
|
|
|
2276
2209
|
logger.info(f"Added relationship between {term1_guid} and {term2_guid} of type {relationship_type}")
|
|
2277
2210
|
|
|
2278
2211
|
def add_relationship_between_terms(
|
|
2279
|
-
self, term1_guid: str, term2_guid: str, relationship_type: str, body: dict | NewRelationshipRequestBody = None,
|
|
2212
|
+
self, term1_guid: str, term2_guid: str, relationship_type: str, body: Optional[dict | NewRelationshipRequestBody] = None,
|
|
2280
2213
|
) -> None:
|
|
2281
2214
|
"""Add a relationship between terms.
|
|
2282
2215
|
|
|
@@ -2297,9 +2230,9 @@ class GlossaryManager(CollectionManager):
|
|
|
2297
2230
|
|
|
2298
2231
|
Raises
|
|
2299
2232
|
------
|
|
2300
|
-
|
|
2233
|
+
PyegeriaInvalidParameterException
|
|
2301
2234
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
2302
|
-
|
|
2235
|
+
PyegeriaAPIException
|
|
2303
2236
|
Raised by the server when an issue arises in processing a valid request.
|
|
2304
2237
|
NotAuthorizedException
|
|
2305
2238
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -2333,7 +2266,7 @@ class GlossaryManager(CollectionManager):
|
|
|
2333
2266
|
)
|
|
2334
2267
|
|
|
2335
2268
|
async def _async_update_relationship_between_terms(
|
|
2336
|
-
self, term1_guid: str, term2_guid: str, relationship_type: str, body: dict | UpdateRelationshipRequestBody = None
|
|
2269
|
+
self, term1_guid: str, term2_guid: str, relationship_type: str, body: Optional[dict | UpdateRelationshipRequestBody] = None
|
|
2337
2270
|
) -> None:
|
|
2338
2271
|
|
|
2339
2272
|
"""Update a relationship between terms. Async Version.
|
|
@@ -2355,9 +2288,9 @@ class GlossaryManager(CollectionManager):
|
|
|
2355
2288
|
|
|
2356
2289
|
Raises
|
|
2357
2290
|
------
|
|
2358
|
-
|
|
2291
|
+
PyegeriaInvalidParameterException
|
|
2359
2292
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
2360
|
-
|
|
2293
|
+
PyegeriaAPIException
|
|
2361
2294
|
Raised by the server when an issue arises in processing a valid request.
|
|
2362
2295
|
NotAuthorizedException
|
|
2363
2296
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -2398,7 +2331,7 @@ class GlossaryManager(CollectionManager):
|
|
|
2398
2331
|
logger.info(f"Updated relationship between {term1_guid} and {term2_guid} of type {relationship_type}")
|
|
2399
2332
|
|
|
2400
2333
|
def update_relationship_between_terms(
|
|
2401
|
-
self, term1_guid: str, term2_guid: str, relationship_type: str, body: dict | UpdateRelationshipRequestBody = None
|
|
2334
|
+
self, term1_guid: str, term2_guid: str, relationship_type: str, body: Optional[dict | UpdateRelationshipRequestBody] = None
|
|
2402
2335
|
) -> None:
|
|
2403
2336
|
"""Update a relationship between terms.
|
|
2404
2337
|
|
|
@@ -2420,9 +2353,9 @@ class GlossaryManager(CollectionManager):
|
|
|
2420
2353
|
|
|
2421
2354
|
Raises
|
|
2422
2355
|
------
|
|
2423
|
-
|
|
2356
|
+
PyegeriaInvalidParameterException
|
|
2424
2357
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
2425
|
-
|
|
2358
|
+
PyegeriaAPIException
|
|
2426
2359
|
Raised by the server when an issue arises in processing a valid request.
|
|
2427
2360
|
NotAuthorizedException
|
|
2428
2361
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -2456,7 +2389,7 @@ class GlossaryManager(CollectionManager):
|
|
|
2456
2389
|
)
|
|
2457
2390
|
|
|
2458
2391
|
async def _async_remove_relationship_between_terms(
|
|
2459
|
-
self, term1_guid: str, term2_guid: str, relationship_type: str, body: dict |
|
|
2392
|
+
self, term1_guid: str, term2_guid: str, relationship_type: str, body: Optional[dict | DeleteRelationshipRequestBody] = None,
|
|
2460
2393
|
) -> None:
|
|
2461
2394
|
"""Remove a relationship between terms. Async Version.
|
|
2462
2395
|
|
|
@@ -2481,9 +2414,9 @@ class GlossaryManager(CollectionManager):
|
|
|
2481
2414
|
|
|
2482
2415
|
Raises
|
|
2483
2416
|
------
|
|
2484
|
-
|
|
2417
|
+
PyegeriaInvalidParameterException
|
|
2485
2418
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
2486
|
-
|
|
2419
|
+
PyegeriaAPIException
|
|
2487
2420
|
Raised by the server when an issue arises in processing a valid request.
|
|
2488
2421
|
NotAuthorizedException
|
|
2489
2422
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -2500,10 +2433,10 @@ class GlossaryManager(CollectionManager):
|
|
|
2500
2433
|
f"terms/{term1_guid}/relationships/{relationship_type}/terms/{term2_guid}/remove"
|
|
2501
2434
|
)
|
|
2502
2435
|
|
|
2503
|
-
await self.
|
|
2436
|
+
await self._async_delete_relationship_request(url, body)
|
|
2504
2437
|
|
|
2505
2438
|
def remove_relationship_between_terms(
|
|
2506
|
-
self, term1_guid: str, term2_guid: str, relationship_type: str, body: dict |
|
|
2439
|
+
self, term1_guid: str, term2_guid: str, relationship_type: str, body: Optional[dict | DeleteRelationshipRequestBody] = None) -> None:
|
|
2507
2440
|
|
|
2508
2441
|
"""Remove a relationship between terms.
|
|
2509
2442
|
|
|
@@ -2524,9 +2457,9 @@ class GlossaryManager(CollectionManager):
|
|
|
2524
2457
|
|
|
2525
2458
|
Raises
|
|
2526
2459
|
------
|
|
2527
|
-
|
|
2460
|
+
PyegeriaInvalidParameterException
|
|
2528
2461
|
If the client passes incorrect parameters on the request - such as bad URLs or invalid values.
|
|
2529
|
-
|
|
2462
|
+
PyegeriaAPIException
|
|
2530
2463
|
Raised by the server when an issue arises in processing a valid request.
|
|
2531
2464
|
NotAuthorizedException
|
|
2532
2465
|
The principle specified by the user_id does not have authorization for the requested action.
|
|
@@ -2543,84 +2476,90 @@ class GlossaryManager(CollectionManager):
|
|
|
2543
2476
|
#
|
|
2544
2477
|
|
|
2545
2478
|
def _extract_glossary_properties(self, element: dict, columns_struct: dict) -> dict:
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
|
|
2551
|
-
|
|
2552
|
-
|
|
2479
|
+
"""Extract glossary columns for rendering.
|
|
2480
|
+
|
|
2481
|
+
This extractor uses `populate_common_columns` for standard fields (properties, header, relationships,
|
|
2482
|
+
subject area, mermaid). It then overlays glossary-specific values such as:
|
|
2483
|
+
- categories_names: comma/newline separated Display Names of categories in the glossary
|
|
2484
|
+
- categories_qualified_names: comma/newline separated Qualified Names of categories in the glossary
|
|
2485
|
+
|
|
2486
|
+
Parameters
|
|
2487
|
+
----------
|
|
2488
|
+
element : dict
|
|
2489
|
+
Raw element as returned by the OMVS.
|
|
2490
|
+
columns_struct : dict
|
|
2491
|
+
The selected output format structure (from _output_formats), whose columns' `value` fields will be filled.
|
|
2492
|
+
|
|
2493
|
+
Returns
|
|
2494
|
+
-------
|
|
2495
|
+
dict
|
|
2496
|
+
The same columns_struct with values populated. Non-empty values are not overwritten.
|
|
2497
|
+
"""
|
|
2498
|
+
# Common population first
|
|
2499
|
+
col_data = populate_common_columns(element, columns_struct)
|
|
2500
|
+
# Overlay glossary-specific extras: categories lists
|
|
2553
2501
|
header_props = _extract_referenceable_properties(element)
|
|
2554
2502
|
guid = header_props.get('GUID')
|
|
2555
|
-
|
|
2556
|
-
key = column.get('key')
|
|
2557
|
-
if key in header_props:
|
|
2558
|
-
column['value'] = header_props.get(key)
|
|
2559
|
-
elif isinstance(key, str) and key.lower() == 'guid':
|
|
2560
|
-
column['value'] = guid
|
|
2503
|
+
extra: dict = {}
|
|
2561
2504
|
if guid:
|
|
2562
|
-
categories = None
|
|
2563
2505
|
try:
|
|
2564
2506
|
categories = self.get_categories_for_glossary(guid)
|
|
2565
2507
|
except Exception:
|
|
2566
2508
|
categories = None
|
|
2567
|
-
cat_display_list = []
|
|
2568
|
-
cat_qn_list = []
|
|
2569
2509
|
if isinstance(categories, list):
|
|
2510
|
+
cat_display_list = []
|
|
2511
|
+
cat_qn_list = []
|
|
2570
2512
|
for category in categories:
|
|
2571
2513
|
gcp = category.get('glossaryCategoryProperties', {})
|
|
2572
|
-
dn = gcp.get('displayName'
|
|
2573
|
-
qn = gcp.get('qualifiedName'
|
|
2514
|
+
dn = (gcp.get('displayName') or '')
|
|
2515
|
+
qn = (gcp.get('qualifiedName') or '')
|
|
2574
2516
|
if dn:
|
|
2575
2517
|
cat_display_list.append(dn)
|
|
2576
2518
|
if qn:
|
|
2577
2519
|
cat_qn_list.append(qn)
|
|
2578
|
-
|
|
2579
|
-
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
if column.get('key') == 'categories_qualified_names' and not column.get('value'):
|
|
2584
|
-
column['value'] = cat_qn_md
|
|
2585
|
-
for column in columns_list:
|
|
2586
|
-
if column.get('key') == 'mermaid' and not column.get('value'):
|
|
2587
|
-
column['value'] = element.get('mermaidGraph', '') or ''
|
|
2588
|
-
break
|
|
2589
|
-
return col_data
|
|
2520
|
+
if cat_display_list:
|
|
2521
|
+
extra['categories_names'] = ", \n".join(cat_display_list)
|
|
2522
|
+
if cat_qn_list:
|
|
2523
|
+
extra['categories_qualified_names'] = ", \n".join(cat_qn_list)
|
|
2524
|
+
return overlay_additional_values(col_data, extra)
|
|
2590
2525
|
|
|
2591
2526
|
def _extract_term_properties(self, element: dict, columns_struct: dict) -> dict:
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
|
|
2595
|
-
|
|
2596
|
-
|
|
2597
|
-
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2602
|
-
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
if
|
|
2622
|
-
column
|
|
2623
|
-
|
|
2527
|
+
"""Extract glossary term columns for rendering.
|
|
2528
|
+
|
|
2529
|
+
Populates standard columns via `populate_common_columns`, and if requested by the
|
|
2530
|
+
selected columns, derives a classifications string (from `elementHeader.collectionCategories`)
|
|
2531
|
+
into the `classifications` column.
|
|
2532
|
+
|
|
2533
|
+
Parameters
|
|
2534
|
+
----------
|
|
2535
|
+
element : dict
|
|
2536
|
+
Raw term element returned by the OMVS.
|
|
2537
|
+
columns_struct : dict
|
|
2538
|
+
The chosen format-set structure whose column `value`s will be set.
|
|
2539
|
+
|
|
2540
|
+
Returns
|
|
2541
|
+
-------
|
|
2542
|
+
dict
|
|
2543
|
+
The same `columns_struct` with values populated.
|
|
2544
|
+
"""
|
|
2545
|
+
# Use centralized population
|
|
2546
|
+
col_data = populate_common_columns(element, columns_struct)
|
|
2547
|
+
# Term-specific classifications (collectionCategories) to 'classifications' column
|
|
2548
|
+
columns_list = col_data.get('formats', {}).get('attributes', [])
|
|
2549
|
+
try:
|
|
2550
|
+
classification_names = ""
|
|
2551
|
+
classifications = element.get('elementHeader', {}).get("collectionCategories", [])
|
|
2552
|
+
for classification in classifications:
|
|
2553
|
+
nm = classification.get('classificationName')
|
|
2554
|
+
if nm:
|
|
2555
|
+
classification_names += f"{nm}, "
|
|
2556
|
+
if classification_names:
|
|
2557
|
+
for column in columns_list:
|
|
2558
|
+
if column.get('key') == 'classifications' and column.get('value') in (None, ""):
|
|
2559
|
+
column['value'] = classification_names[:-2]
|
|
2560
|
+
break
|
|
2561
|
+
except Exception:
|
|
2562
|
+
pass
|
|
2624
2563
|
return col_data
|
|
2625
2564
|
|
|
2626
2565
|
def _get_term_additional_properties(self, element: dict, term_guid: str, output_format: str = None) -> dict:
|
|
@@ -2664,19 +2603,9 @@ class GlossaryManager(CollectionManager):
|
|
|
2664
2603
|
def _generate_glossary_output(self, elements: dict | list[dict], search_string: str,
|
|
2665
2604
|
element_type_name: str | None,
|
|
2666
2605
|
output_format: str = 'DICT',
|
|
2667
|
-
|
|
2606
|
+
report_spec: dict | str = None) -> str | list[dict]:
|
|
2668
2607
|
entity_type = 'Glossary'
|
|
2669
|
-
|
|
2670
|
-
if isinstance(output_format_set, str):
|
|
2671
|
-
output_formats = select_output_format_set(output_format_set, output_format)
|
|
2672
|
-
elif isinstance(output_format_set, dict):
|
|
2673
|
-
output_formats = get_output_format_type_match(output_format_set, output_format)
|
|
2674
|
-
else:
|
|
2675
|
-
output_formats = None
|
|
2676
|
-
else:
|
|
2677
|
-
output_formats = select_output_format_set(entity_type, output_format)
|
|
2678
|
-
if output_formats is None:
|
|
2679
|
-
output_formats = select_output_format_set('Default', output_format)
|
|
2608
|
+
output_formats = resolve_output_formats(entity_type, output_format, report_spec)
|
|
2680
2609
|
return generate_output(
|
|
2681
2610
|
elements=elements,
|
|
2682
2611
|
search_string=search_string,
|
|
@@ -2690,19 +2619,9 @@ class GlossaryManager(CollectionManager):
|
|
|
2690
2619
|
def _generate_term_output(self, elements: dict | list[dict], search_string: str,
|
|
2691
2620
|
element_type_name: str | None,
|
|
2692
2621
|
output_format: str = 'DICT',
|
|
2693
|
-
|
|
2622
|
+
report_spec: dict | str = None) -> str | list[dict]:
|
|
2694
2623
|
entity_type = 'GlossaryTerm'
|
|
2695
|
-
|
|
2696
|
-
if isinstance(output_format_set, str):
|
|
2697
|
-
output_formats = select_output_format_set(output_format_set, output_format)
|
|
2698
|
-
elif isinstance(output_format_set, dict):
|
|
2699
|
-
output_formats = get_output_format_type_match(output_format_set, output_format)
|
|
2700
|
-
else:
|
|
2701
|
-
output_formats = None
|
|
2702
|
-
else:
|
|
2703
|
-
output_formats = select_output_format_set(entity_type, output_format)
|
|
2704
|
-
if output_formats is None:
|
|
2705
|
-
output_formats = select_output_format_set('Default', output_format)
|
|
2624
|
+
output_formats = resolve_output_formats(entity_type, output_format, report_spec)
|
|
2706
2625
|
return generate_output(
|
|
2707
2626
|
elements=elements,
|
|
2708
2627
|
search_string=search_string,
|
|
@@ -2757,69 +2676,280 @@ class GlossaryManager(CollectionManager):
|
|
|
2757
2676
|
response = loop.run_until_complete(self._async_get_term_relationship_types())
|
|
2758
2677
|
return response
|
|
2759
2678
|
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
starts_with: bool =
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2679
|
+
@dynamic_catch
|
|
2680
|
+
async def _async_find_glossaries(self, search_string: str = "*",
|
|
2681
|
+
starts_with: bool = True, ends_with: bool = False,
|
|
2682
|
+
ignore_case: bool = False,
|
|
2683
|
+
anchor_domain: Optional[str] = None,
|
|
2684
|
+
metadata_element_type: str = "Glossary",
|
|
2685
|
+
metadata_element_subtypes: Optional[list[str]] = None,
|
|
2686
|
+
skip_relationships: Optional[list[str]] = None,
|
|
2687
|
+
include_only_relationships: Optional[list[str]] = None,
|
|
2688
|
+
skip_classified_elements: Optional[list[str]] = None,
|
|
2689
|
+
include_only_classified_elements: Optional[list[str]] = None,
|
|
2690
|
+
graph_query_depth: int = 3,
|
|
2691
|
+
governance_zone_filter: Optional[list[str]] = None, as_of_time: Optional[str] = None,
|
|
2692
|
+
effective_time: Optional[str] = None, relationship_page_size: int = 0,
|
|
2693
|
+
limit_results_by_status: Optional[list[str]] = None, sequencing_order: Optional[str] = None,
|
|
2694
|
+
sequencing_property: Optional[str] = None,
|
|
2695
|
+
output_format: str = "JSON",
|
|
2696
|
+
report_spec: str | dict = None,
|
|
2697
|
+
start_from: int = 0, page_size: int = 100,
|
|
2698
|
+
property_names: Optional[list[str]] = None,
|
|
2699
|
+
body: Optional[dict | SearchStringRequestBody] = None) -> list | str:
|
|
2700
|
+
""" Retrieve the list of glossary metadata elements that contain the search string. Async Version.
|
|
2766
2701
|
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
|
|
2702
|
+
Parameters
|
|
2703
|
+
----------
|
|
2704
|
+
search_string: str
|
|
2705
|
+
Search string to match against - None or '*' indicate match against all glossaries.
|
|
2706
|
+
starts_with : bool, [default=True], optional
|
|
2707
|
+
Starts with the supplied string.
|
|
2708
|
+
ends_with : bool, [default=False], optional
|
|
2709
|
+
Ends with the supplied string
|
|
2710
|
+
ignore_case : bool, [default=False], optional
|
|
2711
|
+
Ignore case when searching
|
|
2712
|
+
anchor_domain: str, optional
|
|
2713
|
+
The anchor domain to search in.
|
|
2714
|
+
metadata_element_type: str, optional, [default="Glossary"]
|
|
2715
|
+
The type of metadata element to search for.
|
|
2716
|
+
metadata_element_subtypes: list[str], optional
|
|
2717
|
+
The subtypes of metadata element to search for.
|
|
2718
|
+
skip_relationships: list[str], optional
|
|
2719
|
+
The types of relationships to skip.
|
|
2720
|
+
include_only_relationships: list[str], optional
|
|
2721
|
+
The types of relationships to include.
|
|
2722
|
+
skip_classified_elements: list[str], optional
|
|
2723
|
+
The types of classified elements to skip.
|
|
2724
|
+
include_only_classified_elements: list[str], optional
|
|
2725
|
+
The types of classified elements to include.
|
|
2726
|
+
graph_query_depth: int, [default=3], optional
|
|
2727
|
+
The depth of the graph query.
|
|
2728
|
+
governance_zone_filter: list[str], optional
|
|
2729
|
+
The governance zones to search in.
|
|
2730
|
+
as_of_time: str, optional
|
|
2731
|
+
The time to search as of.
|
|
2732
|
+
effective_time: str, optional
|
|
2733
|
+
The effective time to search at.
|
|
2734
|
+
relationship_page_size: int, [default=0], optional
|
|
2735
|
+
The page size for relationships.
|
|
2736
|
+
limit_results_by_status: list[str], optional
|
|
2737
|
+
The statuses to limit results by.
|
|
2738
|
+
sequencing_order: str, optional
|
|
2739
|
+
The order to sequence results by.
|
|
2740
|
+
sequencing_property: str, optional
|
|
2741
|
+
The property to sequence results by.
|
|
2742
|
+
output_format: str, default = "JSON"
|
|
2743
|
+
- one of "MD", "LIST", "FORM", "REPORT", "DICT", "MERMAID" or "JSON"
|
|
2744
|
+
report_spec: str | dict , optional, default = None
|
|
2745
|
+
- The desired output columns/fields to include.
|
|
2746
|
+
start_from: int, [default=0], optional
|
|
2747
|
+
When multiple pages of results are available, the page number to start from.
|
|
2748
|
+
page_size: int, [default=100]
|
|
2749
|
+
The number of items to return in a single page.
|
|
2750
|
+
property_names: list[str], optional
|
|
2751
|
+
The names of properties to search for.
|
|
2752
|
+
body: dict | SearchStringRequestBody, optional, default = None
|
|
2753
|
+
- if provided, the search parameters in the body will supercede other attributes, such as "search_string"
|
|
2771
2754
|
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2755
|
+
Returns
|
|
2756
|
+
-------
|
|
2757
|
+
List | str
|
|
2758
|
+
|
|
2759
|
+
Output depends on the output format specified.
|
|
2760
|
+
|
|
2761
|
+
Raises
|
|
2762
|
+
------
|
|
2763
|
+
|
|
2764
|
+
ValidationError
|
|
2765
|
+
If the client passes incorrect parameters on the request that don't conform to the data model.
|
|
2766
|
+
PyegeriaException
|
|
2767
|
+
Issues raised in communicating or server side processing.
|
|
2768
|
+
NotAuthorizedException
|
|
2769
|
+
The principle specified by the user_id does not have authorization for the requested action
|
|
2770
|
+
|
|
2771
|
+
"""
|
|
2772
|
+
response = await self._async_find_collections(search_string=search_string, starts_with=starts_with,
|
|
2773
|
+
ends_with=ends_with, ignore_case=ignore_case,
|
|
2774
|
+
anchor_domain=anchor_domain,
|
|
2775
|
+
metadata_element_type=metadata_element_type,
|
|
2776
|
+
metadata_element_subtypes=metadata_element_subtypes,
|
|
2777
|
+
skip_relationships=skip_relationships,
|
|
2778
|
+
include_only_relationships=include_only_relationships,
|
|
2779
|
+
skip_classified_elements=skip_classified_elements,
|
|
2780
|
+
include_only_classified_elements=include_only_classified_elements,
|
|
2781
|
+
graph_query_depth=graph_query_depth,
|
|
2782
|
+
governance_zone_filter=governance_zone_filter,
|
|
2783
|
+
as_of_time=as_of_time, effective_time=effective_time,
|
|
2784
|
+
relationship_page_size=relationship_page_size,
|
|
2785
|
+
limit_results_by_status=limit_results_by_status,
|
|
2786
|
+
sequencing_order=sequencing_order,
|
|
2787
|
+
sequencing_property=sequencing_property,
|
|
2788
|
+
output_format=output_format, report_spec=report_spec,
|
|
2789
|
+
start_from=start_from, page_size=page_size,
|
|
2790
|
+
property_names=property_names, body=body)
|
|
2781
2791
|
return response
|
|
2782
2792
|
|
|
2783
|
-
|
|
2784
|
-
|
|
2793
|
+
@dynamic_catch
|
|
2794
|
+
def find_glossaries(self, search_string: str = "*",
|
|
2795
|
+
starts_with: bool = True, ends_with: bool = False,
|
|
2796
|
+
ignore_case: bool = False,
|
|
2797
|
+
anchor_domain: Optional[str] = None,
|
|
2798
|
+
metadata_element_type: str = "Glossary",
|
|
2799
|
+
metadata_element_subtypes: Optional[list[str]] = None,
|
|
2800
|
+
skip_relationships: Optional[list[str]] = None,
|
|
2801
|
+
include_only_relationships: Optional[list[str]] = None,
|
|
2802
|
+
skip_classified_elements: Optional[list[str]] = None,
|
|
2803
|
+
include_only_classified_elements: Optional[list[str]] = None,
|
|
2804
|
+
graph_query_depth: int = 3,
|
|
2805
|
+
governance_zone_filter: Optional[list[str]] = None, as_of_time: Optional[str] = None,
|
|
2806
|
+
effective_time: Optional[str] = None, relationship_page_size: int = 0,
|
|
2807
|
+
limit_results_by_status: Optional[list[str]] = None, sequencing_order: Optional[str] = None,
|
|
2808
|
+
sequencing_property: Optional[str] = None,
|
|
2809
|
+
output_format: str = "JSON",
|
|
2810
|
+
report_spec: str | dict = None,
|
|
2811
|
+
start_from: int = 0, page_size: int = 100,
|
|
2812
|
+
property_names: Optional[list[str]] = None,
|
|
2813
|
+
body: Optional[dict | SearchStringRequestBody] = None) -> list | str:
|
|
2814
|
+
""" Retrieve the list of glossary metadata elements that contain the search string.
|
|
2815
|
+
|
|
2816
|
+
Parameters
|
|
2817
|
+
----------
|
|
2818
|
+
search_string: str
|
|
2819
|
+
Search string to match against - None or '*' indicate match against all glossaries.
|
|
2820
|
+
starts_with : bool, [default=True], optional
|
|
2821
|
+
Starts with the supplied string.
|
|
2822
|
+
ends_with : bool, [default=False], optional
|
|
2823
|
+
Ends with the supplied string
|
|
2824
|
+
ignore_case : bool, [default=False], optional
|
|
2825
|
+
Ignore case when searching
|
|
2826
|
+
anchor_domain: str, optional
|
|
2827
|
+
The anchor domain to search in.
|
|
2828
|
+
metadata_element_type: str, optional, [default="Glossary"]
|
|
2829
|
+
The type of metadata element to search for.
|
|
2830
|
+
metadata_element_subtypes: list[str], optional
|
|
2831
|
+
The subtypes of metadata element to search for.
|
|
2832
|
+
skip_relationships: list[str], optional
|
|
2833
|
+
The types of relationships to skip.
|
|
2834
|
+
include_only_relationships: list[str], optional
|
|
2835
|
+
The types of relationships to include.
|
|
2836
|
+
skip_classified_elements: list[str], optional
|
|
2837
|
+
The types of classified elements to skip.
|
|
2838
|
+
include_only_classified_elements: list[str], optional
|
|
2839
|
+
The types of classified elements to include.
|
|
2840
|
+
graph_query_depth: int, [default=3], optional
|
|
2841
|
+
The depth of the graph query.
|
|
2842
|
+
governance_zone_filter: list[str], optional
|
|
2843
|
+
The governance zones to search in.
|
|
2844
|
+
as_of_time: str, optional
|
|
2845
|
+
The time to search as of.
|
|
2846
|
+
effective_time: str, optional
|
|
2847
|
+
The effective time to search at.
|
|
2848
|
+
relationship_page_size: int, [default=0], optional
|
|
2849
|
+
The page size for relationships.
|
|
2850
|
+
limit_results_by_status: list[str], optional
|
|
2851
|
+
The statuses to limit results by.
|
|
2852
|
+
sequencing_order: str, optional
|
|
2853
|
+
The order to sequence results by.
|
|
2854
|
+
sequencing_property: str, optional
|
|
2855
|
+
The property to sequence results by.
|
|
2856
|
+
output_format: str, default = "JSON"
|
|
2857
|
+
- one of "MD", "LIST", "FORM", "REPORT", "DICT", "MERMAID" or "JSON"
|
|
2858
|
+
report_spec: str | dict , optional, default = None
|
|
2859
|
+
- The desired output columns/fields to include.
|
|
2860
|
+
start_from: int, [default=0], optional
|
|
2861
|
+
When multiple pages of results are available, the page number to start from.
|
|
2862
|
+
page_size: int, [default=100]
|
|
2863
|
+
The number of items to return in a single page.
|
|
2864
|
+
property_names: list[str], optional
|
|
2865
|
+
The names of properties to search for.
|
|
2866
|
+
body: dict | SearchStringRequestBody, optional, default = None
|
|
2867
|
+
- if provided, the search parameters in the body will supercede other attributes, such as "search_string"
|
|
2868
|
+
|
|
2869
|
+
Returns
|
|
2870
|
+
-------
|
|
2871
|
+
List | str
|
|
2872
|
+
|
|
2873
|
+
Output depends on the output format specified.
|
|
2874
|
+
|
|
2875
|
+
Raises
|
|
2876
|
+
-------
|
|
2877
|
+
|
|
2878
|
+
ValidationError
|
|
2879
|
+
If the client passes incorrect parameters on the request that don't conform to the data model.
|
|
2880
|
+
PyegeriaException
|
|
2881
|
+
Issues raised in communicating or server side processing.
|
|
2882
|
+
NotAuthorizedException
|
|
2883
|
+
The principle specified by the user_id does not have authorization for the requested action
|
|
2884
|
+
|
|
2885
|
+
"""
|
|
2886
|
+
loop = asyncio.get_event_loop()
|
|
2887
|
+
return loop.run_until_complete(self._async_find_glossaries(search_string=search_string,
|
|
2888
|
+
starts_with=starts_with,
|
|
2889
|
+
ends_with=ends_with,
|
|
2890
|
+
ignore_case=ignore_case,
|
|
2891
|
+
anchor_domain=anchor_domain,
|
|
2892
|
+
metadata_element_type=metadata_element_type,
|
|
2893
|
+
metadata_element_subtypes=metadata_element_subtypes,
|
|
2894
|
+
skip_relationships=skip_relationships,
|
|
2895
|
+
include_only_relationships=include_only_relationships,
|
|
2896
|
+
skip_classified_elements=skip_classified_elements,
|
|
2897
|
+
include_only_classified_elements=include_only_classified_elements,
|
|
2898
|
+
graph_query_depth=graph_query_depth,
|
|
2899
|
+
governance_zone_filter=governance_zone_filter,
|
|
2900
|
+
as_of_time=as_of_time,
|
|
2901
|
+
effective_time=effective_time,
|
|
2902
|
+
relationship_page_size=relationship_page_size,
|
|
2903
|
+
limit_results_by_status=limit_results_by_status,
|
|
2904
|
+
sequencing_order=sequencing_order,
|
|
2905
|
+
sequencing_property=sequencing_property,
|
|
2906
|
+
output_format=output_format,
|
|
2907
|
+
report_spec=report_spec,
|
|
2908
|
+
start_from=start_from,
|
|
2909
|
+
page_size=page_size,
|
|
2910
|
+
property_names=property_names,
|
|
2911
|
+
body=body))
|
|
2912
|
+
|
|
2913
|
+
async def _async_get_glossaries_by_name(self, filter_string: Optional[str] = None, classification_names: Optional[list[str]] = None,
|
|
2914
|
+
body: Optional[dict | FilterRequestBody] = None,
|
|
2785
2915
|
start_from: int = 0, page_size: int = 0,
|
|
2786
2916
|
output_format: str = 'JSON',
|
|
2787
|
-
|
|
2788
|
-
return await self._async_get_collections_by_name(filter_string, classification_names, body, start_from, page_size, output_format,
|
|
2917
|
+
report_spec: str | dict = None) -> dict | str:
|
|
2918
|
+
return await self._async_get_collections_by_name(filter_string, classification_names, body, start_from, page_size, output_format, report_spec)
|
|
2789
2919
|
|
|
2790
2920
|
|
|
2791
|
-
def get_glossaries_by_name(self, filter_string: str = None, classification_names: list[str] = None,
|
|
2792
|
-
body: dict | FilterRequestBody = None,
|
|
2921
|
+
def get_glossaries_by_name(self, filter_string: Optional[str] = None, classification_names: Optional[list[str]] = None,
|
|
2922
|
+
body: Optional[dict | FilterRequestBody] = None,
|
|
2793
2923
|
start_from: int = 0, page_size: int = 0,
|
|
2794
2924
|
output_format: str = 'JSON',
|
|
2795
|
-
|
|
2925
|
+
report_spec: str | dict = None) -> dict | str:
|
|
2796
2926
|
loop = asyncio.get_event_loop()
|
|
2797
2927
|
response = loop.run_until_complete(
|
|
2798
2928
|
self._async_get_glossaries_by_name(filter_string, classification_names, body,start_from, page_size,
|
|
2799
|
-
output_format,
|
|
2929
|
+
output_format, report_spec))
|
|
2800
2930
|
return response
|
|
2801
2931
|
|
|
2802
|
-
async def _async_get_glossary_by_guid(self, glossary_guid: str, element_type: str = "Glossary", body: dict | GetRequestBody = None,
|
|
2803
|
-
output_format: str = "JSON",
|
|
2932
|
+
async def _async_get_glossary_by_guid(self, glossary_guid: str, element_type: str = "Glossary", body: Optional[dict | GetRequestBody] = None,
|
|
2933
|
+
output_format: str = "JSON", report_spec: str | dict = None) -> dict | str:
|
|
2804
2934
|
|
|
2805
|
-
return await self._async_get_collection_by_guid(glossary_guid, element_type, body, output_format,
|
|
2935
|
+
return await self._async_get_collection_by_guid(glossary_guid, element_type, body, output_format, report_spec)
|
|
2806
2936
|
|
|
2807
2937
|
|
|
2808
2938
|
|
|
2809
2939
|
def get_glossary_by_guid(self, glossary_guid: str, element_type: str = "Glossary", body: dict| GetRequestBody=None,
|
|
2810
|
-
output_format: str = "JSON",
|
|
2940
|
+
output_format: str = "JSON", report_spec: str | dict = None) -> dict | str:
|
|
2811
2941
|
loop = asyncio.get_event_loop()
|
|
2812
2942
|
response = loop.run_until_complete(
|
|
2813
|
-
self._async_get_glossary_by_guid(glossary_guid, element_type, body,output_format,
|
|
2943
|
+
self._async_get_glossary_by_guid(glossary_guid, element_type, body,output_format, report_spec))
|
|
2814
2944
|
return response
|
|
2815
2945
|
|
|
2816
2946
|
|
|
2817
2947
|
|
|
2818
|
-
async def _async_get_terms_by_name(self, filter_string: str = None, classification_names: list[str] = None,
|
|
2819
|
-
body: dict | FilterRequestBody = None,
|
|
2948
|
+
async def _async_get_terms_by_name(self, filter_string: Optional[str] = None, classification_names: Optional[list[str]] = None,
|
|
2949
|
+
body: Optional[dict | FilterRequestBody] = None,
|
|
2820
2950
|
start_from: int = 0, page_size: int = 0,
|
|
2821
2951
|
output_format: str = 'JSON',
|
|
2822
|
-
|
|
2952
|
+
report_spec: str | dict = None) -> list:
|
|
2823
2953
|
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/glossary-manager/glossaries/"
|
|
2824
2954
|
f"terms/by-name")
|
|
2825
2955
|
response = await self._async_get_name_request(url, _type="GlossaryTerm",
|
|
@@ -2827,66 +2957,274 @@ class GlossaryManager(CollectionManager):
|
|
|
2827
2957
|
filter_string=filter_string,
|
|
2828
2958
|
classification_names=classification_names,
|
|
2829
2959
|
start_from=start_from, page_size=page_size,
|
|
2830
|
-
output_format=output_format,
|
|
2960
|
+
output_format=output_format, report_spec=report_spec,
|
|
2831
2961
|
body=body)
|
|
2832
2962
|
return response
|
|
2833
2963
|
|
|
2834
|
-
def get_terms_by_name(self, filter_string: str = None, classification_names: list[str] = None,
|
|
2835
|
-
body: dict | FilterRequestBody = None,
|
|
2964
|
+
def get_terms_by_name(self, filter_string: Optional[str] = None, classification_names: Optional[list[str]] = None,
|
|
2965
|
+
body: Optional[dict | FilterRequestBody] = None,
|
|
2836
2966
|
start_from: int = 0, page_size: int = 0,
|
|
2837
2967
|
output_format: str = 'JSON',
|
|
2838
|
-
|
|
2968
|
+
report_spec: str | dict = None) -> list:
|
|
2839
2969
|
loop = asyncio.get_event_loop()
|
|
2840
2970
|
response = loop.run_until_complete(
|
|
2841
2971
|
self._async_get_terms_by_name(filter_string, classification_names, body,start_from, page_size,
|
|
2842
|
-
output_format,
|
|
2972
|
+
output_format, report_spec))
|
|
2843
2973
|
return response
|
|
2844
2974
|
|
|
2845
2975
|
async def _async_get_term_by_guid(self, term_guid: str, element_type: str = "GlossaryTerm", body: dict| GetRequestBody=None,
|
|
2846
|
-
output_format: str = "JSON",
|
|
2976
|
+
output_format: str = "JSON", report_spec: str | dict = None) -> dict | str:
|
|
2847
2977
|
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/glossary-manager/glossaries/terms/"
|
|
2848
2978
|
f"{term_guid}")
|
|
2849
2979
|
response = await self._async_get_guid_request(url, _type=element_type,
|
|
2850
2980
|
_gen_output=self._generate_term_output,
|
|
2851
|
-
output_format=output_format,
|
|
2981
|
+
output_format=output_format, report_spec=report_spec,
|
|
2852
2982
|
body=body)
|
|
2853
2983
|
return response
|
|
2854
2984
|
|
|
2855
2985
|
def get_term_by_guid(self, term_guid: str, element_type: str = "GlossaryTerm", body: dict| GetRequestBody=None,
|
|
2856
|
-
output_format: str = "JSON",
|
|
2986
|
+
output_format: str = "JSON", report_spec: str | dict = None) -> dict | str:
|
|
2857
2987
|
loop = asyncio.get_event_loop()
|
|
2858
|
-
response = loop.run_until_complete(self._async_get_term_by_guid(term_guid, element_type, body, output_format,
|
|
2988
|
+
response = loop.run_until_complete(self._async_get_term_by_guid(term_guid, element_type, body, output_format, report_spec))
|
|
2859
2989
|
return response
|
|
2860
2990
|
|
|
2861
|
-
|
|
2862
|
-
|
|
2863
|
-
|
|
2864
|
-
|
|
2865
|
-
|
|
2991
|
+
@dynamic_catch
|
|
2992
|
+
async def _async_find_glossary_terms(self, search_string: str = "*",
|
|
2993
|
+
starts_with: bool = True, ends_with: bool = False,
|
|
2994
|
+
ignore_case: bool = False,
|
|
2995
|
+
anchor_domain: Optional[str] = None,
|
|
2996
|
+
metadata_element_type: str = "GlossaryTerm",
|
|
2997
|
+
metadata_element_subtypes: Optional[list[str]] = None,
|
|
2998
|
+
skip_relationships: Optional[list[str]] = None,
|
|
2999
|
+
include_only_relationships: Optional[list[str]] = None,
|
|
3000
|
+
skip_classified_elements: Optional[list[str]] = None,
|
|
3001
|
+
include_only_classified_elements: Optional[list[str]] = None,
|
|
3002
|
+
graph_query_depth: int = 3,
|
|
3003
|
+
governance_zone_filter: Optional[list[str]] = None, as_of_time: Optional[str] = None,
|
|
3004
|
+
effective_time: Optional[str] = None, relationship_page_size: int = 0,
|
|
3005
|
+
limit_results_by_status: Optional[list[str]] = None, sequencing_order: Optional[str] = None,
|
|
3006
|
+
sequencing_property: Optional[str] = None,
|
|
3007
|
+
output_format: str = "JSON",
|
|
3008
|
+
report_spec: str | dict = "Glossary-Term-DrE",
|
|
3009
|
+
start_from: int = 0, page_size: int = 100,
|
|
3010
|
+
property_names: Optional[list[str]] = None,
|
|
3011
|
+
body: Optional[dict | SearchStringRequestBody] = None) -> list | str:
|
|
3012
|
+
""" Retrieve the list of glossary term metadata elements that contain the search string. Async Version.
|
|
3013
|
+
|
|
3014
|
+
Parameters
|
|
3015
|
+
----------
|
|
3016
|
+
search_string: str
|
|
3017
|
+
Search string to match against - None or '*' indicate match against all glossary terms.
|
|
3018
|
+
starts_with : bool, [default=True], optional
|
|
3019
|
+
Starts with the supplied string.
|
|
3020
|
+
ends_with : bool, [default=False], optional
|
|
3021
|
+
Ends with the supplied string
|
|
3022
|
+
ignore_case : bool, [default=False], optional
|
|
3023
|
+
Ignore case when searching
|
|
3024
|
+
anchor_domain: str, optional
|
|
3025
|
+
The anchor domain to search in.
|
|
3026
|
+
metadata_element_type: str, optional, [default="GlossaryTerm"]
|
|
3027
|
+
The type of metadata element to search for.
|
|
3028
|
+
metadata_element_subtypes: list[str], optional
|
|
3029
|
+
The subtypes of metadata element to search for.
|
|
3030
|
+
skip_relationships: list[str], optional
|
|
3031
|
+
The types of relationships to skip.
|
|
3032
|
+
include_only_relationships: list[str], optional
|
|
3033
|
+
The types of relationships to include.
|
|
3034
|
+
skip_classified_elements: list[str], optional
|
|
3035
|
+
The types of classified elements to skip.
|
|
3036
|
+
include_only_classified_elements: list[str], optional
|
|
3037
|
+
The types of classified elements to include.
|
|
3038
|
+
graph_query_depth: int, [default=3], optional
|
|
3039
|
+
The depth of the graph query.
|
|
3040
|
+
governance_zone_filter: list[str], optional
|
|
3041
|
+
The governance zones to search in.
|
|
3042
|
+
as_of_time: str, optional
|
|
3043
|
+
The time to search as of.
|
|
3044
|
+
effective_time: str, optional
|
|
3045
|
+
The effective time to search at.
|
|
3046
|
+
relationship_page_size: int, [default=0], optional
|
|
3047
|
+
The page size for relationships.
|
|
3048
|
+
limit_results_by_status: list[str], optional
|
|
3049
|
+
The statuses to limit results by.
|
|
3050
|
+
sequencing_order: str, optional
|
|
3051
|
+
The order to sequence results by.
|
|
3052
|
+
sequencing_property: str, optional
|
|
3053
|
+
The property to sequence results by.
|
|
3054
|
+
output_format: str, default = "JSON"
|
|
3055
|
+
- one of "MD", "LIST", "FORM", "REPORT", "DICT", "MERMAID" or "JSON"
|
|
3056
|
+
report_spec: str | dict , optional, default = "Glossary-Term-DrE"
|
|
3057
|
+
- The desired output columns/fields to include.
|
|
3058
|
+
start_from: int, [default=0], optional
|
|
3059
|
+
When multiple pages of results are available, the page number to start from.
|
|
3060
|
+
page_size: int, [default=100]
|
|
3061
|
+
The number of items to return in a single page.
|
|
3062
|
+
property_names: list[str], optional
|
|
3063
|
+
The names of properties to search for.
|
|
3064
|
+
body: dict | SearchStringRequestBody, optional, default = None
|
|
3065
|
+
- if provided, the search parameters in the body will supercede other attributes, such as "search_string"
|
|
3066
|
+
|
|
3067
|
+
Returns
|
|
3068
|
+
-------
|
|
3069
|
+
List | str
|
|
3070
|
+
|
|
3071
|
+
Output depends on the output format specified.
|
|
3072
|
+
|
|
3073
|
+
Raises
|
|
3074
|
+
------
|
|
3075
|
+
|
|
3076
|
+
ValidationError
|
|
3077
|
+
If the client passes incorrect parameters on the request that don't conform to the data model.
|
|
3078
|
+
PyegeriaException
|
|
3079
|
+
Issues raised in communicating or server side processing.
|
|
3080
|
+
NotAuthorizedException
|
|
3081
|
+
The principle specified by the user_id does not have authorization for the requested action
|
|
3082
|
+
|
|
3083
|
+
"""
|
|
2866
3084
|
url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/glossary-manager/glossaries/terms/"
|
|
2867
3085
|
f"by-search-string")
|
|
2868
|
-
response = await self._async_find_request(url, _type=
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
3086
|
+
response = await self._async_find_request(url, _type=metadata_element_type, _gen_output=self._generate_term_output,
|
|
3087
|
+
search_string=search_string, starts_with=starts_with,
|
|
3088
|
+
ends_with=ends_with, ignore_case=ignore_case,
|
|
3089
|
+
anchor_domain=anchor_domain,
|
|
3090
|
+
metadata_element_type=metadata_element_type,
|
|
3091
|
+
metadata_element_subtypes=metadata_element_subtypes,
|
|
3092
|
+
skip_relationships=skip_relationships,
|
|
3093
|
+
include_only_relationships=include_only_relationships,
|
|
3094
|
+
skip_classified_elements=skip_classified_elements,
|
|
3095
|
+
include_only_classified_elements=include_only_classified_elements,
|
|
3096
|
+
graph_query_depth=graph_query_depth,
|
|
3097
|
+
governance_zone_filter=governance_zone_filter,
|
|
3098
|
+
as_of_time=as_of_time, effective_time=effective_time,
|
|
3099
|
+
relationship_page_size=relationship_page_size,
|
|
3100
|
+
limit_results_by_status=limit_results_by_status,
|
|
3101
|
+
sequencing_order=sequencing_order,
|
|
3102
|
+
sequencing_property=sequencing_property,
|
|
3103
|
+
output_format=output_format, report_spec=report_spec,
|
|
3104
|
+
start_from=start_from, page_size=page_size,
|
|
3105
|
+
property_names=property_names, body=body)
|
|
3106
|
+
|
|
2876
3107
|
return response
|
|
2877
3108
|
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
|
|
3109
|
+
@dynamic_catch
|
|
3110
|
+
def find_glossary_terms(self, search_string: str = "*",
|
|
3111
|
+
starts_with: bool = True, ends_with: bool = False,
|
|
3112
|
+
ignore_case: bool = False,
|
|
3113
|
+
anchor_domain: Optional[str] = None,
|
|
3114
|
+
metadata_element_type: str = "GlossaryTerm",
|
|
3115
|
+
metadata_element_subtypes: Optional[list[str]] = None,
|
|
3116
|
+
skip_relationships: Optional[list[str]] = None,
|
|
3117
|
+
include_only_relationships: Optional[list[str]] = None,
|
|
3118
|
+
skip_classified_elements: Optional[list[str]] = None,
|
|
3119
|
+
include_only_classified_elements: Optional[list[str]] = None,
|
|
3120
|
+
graph_query_depth: int = 3,
|
|
3121
|
+
governance_zone_filter: Optional[list[str]] = None, as_of_time: Optional[str] = None,
|
|
3122
|
+
effective_time: Optional[str] = None, relationship_page_size: int = 0,
|
|
3123
|
+
limit_results_by_status: Optional[list[str]] = None, sequencing_order: Optional[str] = None,
|
|
3124
|
+
sequencing_property: Optional[str] = None,
|
|
3125
|
+
output_format: str = "JSON",
|
|
3126
|
+
report_spec: str | dict = "Glossary-Term-DrE",
|
|
3127
|
+
start_from: int = 0, page_size: int = 100,
|
|
3128
|
+
property_names: Optional[list[str]] = None,
|
|
3129
|
+
body: Optional[dict | SearchStringRequestBody] = None) -> list | str:
|
|
3130
|
+
""" Retrieve the list of glossary term metadata elements that contain the search string.
|
|
3131
|
+
|
|
3132
|
+
Parameters
|
|
3133
|
+
----------
|
|
3134
|
+
search_string: str
|
|
3135
|
+
Search string to match against - None or '*' indicate match against all glossary terms.
|
|
3136
|
+
starts_with : bool, [default=True], optional
|
|
3137
|
+
Starts with the supplied string.
|
|
3138
|
+
ends_with : bool, [default=False], optional
|
|
3139
|
+
Ends with the supplied string
|
|
3140
|
+
ignore_case : bool, [default=False], optional
|
|
3141
|
+
Ignore case when searching
|
|
3142
|
+
anchor_domain: str, optional
|
|
3143
|
+
The anchor domain to search in.
|
|
3144
|
+
metadata_element_type: str, optional, [default="GlossaryTerm"]
|
|
3145
|
+
The type of metadata element to search for.
|
|
3146
|
+
metadata_element_subtypes: list[str], optional
|
|
3147
|
+
The subtypes of metadata element to search for.
|
|
3148
|
+
skip_relationships: list[str], optional
|
|
3149
|
+
The types of relationships to skip.
|
|
3150
|
+
include_only_relationships: list[str], optional
|
|
3151
|
+
The types of relationships to include.
|
|
3152
|
+
skip_classified_elements: list[str], optional
|
|
3153
|
+
The types of classified elements to skip.
|
|
3154
|
+
include_only_classified_elements: list[str], optional
|
|
3155
|
+
The types of classified elements to include.
|
|
3156
|
+
graph_query_depth: int, [default=3], optional
|
|
3157
|
+
The depth of the graph query.
|
|
3158
|
+
governance_zone_filter: list[str], optional
|
|
3159
|
+
The governance zones to search in.
|
|
3160
|
+
as_of_time: str, optional
|
|
3161
|
+
The time to search as of.
|
|
3162
|
+
effective_time: str, optional
|
|
3163
|
+
The effective time to search at.
|
|
3164
|
+
relationship_page_size: int, [default=0], optional
|
|
3165
|
+
The page size for relationships.
|
|
3166
|
+
limit_results_by_status: list[str], optional
|
|
3167
|
+
The statuses to limit results by.
|
|
3168
|
+
sequencing_order: str, optional
|
|
3169
|
+
The order to sequence results by.
|
|
3170
|
+
sequencing_property: str, optional
|
|
3171
|
+
The property to sequence results by.
|
|
3172
|
+
output_format: str, default = "JSON"
|
|
3173
|
+
- one of "MD", "LIST", "FORM", "REPORT", "DICT", "MERMAID" or "JSON"
|
|
3174
|
+
report_spec: str | dict , optional, default = "Glossary-Term-DrE"
|
|
3175
|
+
- The desired output columns/fields to include.
|
|
3176
|
+
start_from: int, [default=0], optional
|
|
3177
|
+
When multiple pages of results are available, the page number to start from.
|
|
3178
|
+
page_size: int, [default=100]
|
|
3179
|
+
The number of items to return in a single page.
|
|
3180
|
+
property_names: list[str], optional
|
|
3181
|
+
The names of properties to search for.
|
|
3182
|
+
body: dict | SearchStringRequestBody, optional, default = None
|
|
3183
|
+
- if provided, the search parameters in the body will supercede other attributes, such as "search_string"
|
|
3184
|
+
|
|
3185
|
+
Returns
|
|
3186
|
+
-------
|
|
3187
|
+
List | str
|
|
3188
|
+
|
|
3189
|
+
Output depends on the output format specified.
|
|
3190
|
+
|
|
3191
|
+
Raises
|
|
3192
|
+
-------
|
|
3193
|
+
|
|
3194
|
+
ValidationError
|
|
3195
|
+
If the client passes incorrect parameters on the request that don't conform to the data model.
|
|
3196
|
+
PyegeriaException
|
|
3197
|
+
Issues raised in communicating or server side processing.
|
|
3198
|
+
NotAuthorizedException
|
|
3199
|
+
The principle specified by the user_id does not have authorization for the requested action
|
|
3200
|
+
|
|
3201
|
+
"""
|
|
2883
3202
|
loop = asyncio.get_event_loop()
|
|
2884
|
-
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
3203
|
+
return loop.run_until_complete(self._async_find_glossary_terms(search_string=search_string,
|
|
3204
|
+
starts_with=starts_with,
|
|
3205
|
+
ends_with=ends_with,
|
|
3206
|
+
ignore_case=ignore_case,
|
|
3207
|
+
anchor_domain=anchor_domain,
|
|
3208
|
+
metadata_element_type=metadata_element_type,
|
|
3209
|
+
metadata_element_subtypes=metadata_element_subtypes,
|
|
3210
|
+
skip_relationships=skip_relationships,
|
|
3211
|
+
include_only_relationships=include_only_relationships,
|
|
3212
|
+
skip_classified_elements=skip_classified_elements,
|
|
3213
|
+
include_only_classified_elements=include_only_classified_elements,
|
|
3214
|
+
graph_query_depth=graph_query_depth,
|
|
3215
|
+
governance_zone_filter=governance_zone_filter,
|
|
3216
|
+
as_of_time=as_of_time,
|
|
3217
|
+
effective_time=effective_time,
|
|
3218
|
+
relationship_page_size=relationship_page_size,
|
|
3219
|
+
limit_results_by_status=limit_results_by_status,
|
|
3220
|
+
sequencing_order=sequencing_order,
|
|
3221
|
+
sequencing_property=sequencing_property,
|
|
3222
|
+
output_format=output_format,
|
|
3223
|
+
report_spec=report_spec,
|
|
3224
|
+
start_from=start_from,
|
|
3225
|
+
page_size=page_size,
|
|
3226
|
+
property_names=property_names,
|
|
3227
|
+
body=body))
|
|
2890
3228
|
|
|
2891
3229
|
|
|
2892
3230
|
if __name__ == "__main__":
|