pyegeria 5.3.9.9.3__py3-none-any.whl → 5.5.3.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pyegeria might be problematic. Click here for more details.
- commands/__init__.py +24 -0
- commands/cat/Dr-Egeria_md-orig.py +2 -2
- commands/cat/__init__.py +1 -17
- commands/cat/collection_actions.py +197 -0
- commands/cat/dr_egeria_command_help.py +372 -0
- commands/cat/dr_egeria_jupyter.py +7 -7
- commands/cat/dr_egeria_md.py +27 -182
- commands/cat/exp_list_glossaries.py +11 -14
- commands/cat/get_asset_graph.py +37 -267
- commands/cat/{get_collection.py → get_collection_tree.py} +10 -18
- commands/cat/get_project_dependencies.py +14 -14
- commands/cat/get_project_structure.py +15 -14
- commands/cat/get_tech_type_elements.py +16 -116
- commands/cat/glossary_actions.py +145 -298
- commands/cat/list_assets.py +3 -11
- commands/cat/list_cert_types.py +17 -63
- commands/cat/list_collections.py +46 -138
- commands/cat/list_deployed_catalogs.py +15 -27
- commands/cat/list_deployed_database_schemas.py +27 -43
- commands/cat/list_deployed_databases.py +16 -31
- commands/cat/list_deployed_servers.py +35 -54
- commands/cat/list_glossaries.py +18 -17
- commands/cat/list_projects.py +10 -12
- commands/cat/list_tech_type_elements.py +21 -37
- commands/cat/list_tech_types.py +13 -25
- commands/cat/list_terms.py +38 -79
- commands/cat/list_todos.py +4 -11
- commands/cat/list_user_ids.py +3 -10
- commands/cat/my_reports.py +559 -0
- commands/cat/run_report.py +394 -0
- commands/cat/run_report_orig.py +528 -0
- commands/cli/egeria.py +222 -247
- commands/cli/egeria_cat.py +68 -81
- commands/cli/egeria_my.py +13 -0
- commands/cli/egeria_ops.py +69 -74
- commands/cli/egeria_tech.py +17 -93
- commands/cli/ops_config.py +3 -6
- commands/{cat/list_categories.py → deprecated/list_data_designer.py} +53 -64
- commands/{cat/list_data_structures.py → deprecated/list_data_structures_full.py} +3 -6
- commands/deprecated/old_get_asset_graph.py +315 -0
- commands/my/__init__.py +0 -2
- commands/my/list_my_profile.py +27 -34
- commands/my/list_my_roles.py +1 -7
- commands/my/monitor_my_todos.py +1 -7
- commands/my/monitor_open_todos.py +6 -7
- commands/my/todo_actions.py +4 -5
- commands/ops/__init__.py +0 -2
- commands/ops/gov_server_actions.py +17 -21
- commands/ops/list_archives.py +17 -38
- commands/ops/list_catalog_targets.py +33 -40
- commands/ops/load_archive.py +35 -26
- commands/ops/{monitor_engine_activity_c.py → monitor_active_engine_activity.py} +51 -82
- commands/ops/{monitor_integ_daemon_status.py → monitor_daemon_status.py} +35 -55
- commands/ops/monitor_engine_activity.py +79 -77
- commands/ops/{monitor_gov_eng_status.py → monitor_engine_status.py} +10 -7
- commands/ops/monitor_platform_status.py +38 -50
- commands/ops/monitor_server_startup.py +6 -11
- commands/ops/monitor_server_status.py +7 -11
- commands/ops/orig_monitor_server_list.py +8 -8
- commands/ops/orig_monitor_server_status.py +1 -5
- commands/ops/refresh_integration_daemon.py +5 -5
- commands/ops/restart_integration_daemon.py +5 -5
- commands/ops/table_integ_daemon_status.py +6 -6
- commands/ops/x_engine_actions.py +7 -7
- commands/tech/__init__.py +0 -2
- commands/tech/{generic_actions.py → element_actions.py} +6 -11
- commands/tech/get_element_info.py +20 -29
- commands/tech/get_guid_info.py +23 -42
- commands/tech/get_tech_details.py +20 -35
- commands/tech/get_tech_type_template.py +28 -39
- commands/tech/list_all_om_type_elements.py +24 -30
- commands/tech/list_all_om_type_elements_x.py +22 -28
- commands/tech/list_all_related_elements.py +19 -28
- commands/tech/list_anchored_elements.py +22 -30
- commands/tech/list_asset_types.py +19 -24
- commands/tech/list_elements_by_classification_by_property_value.py +26 -32
- commands/tech/list_elements_by_property_value.py +19 -25
- commands/tech/list_elements_by_property_value_x.py +20 -28
- commands/tech/list_elements_for_classification.py +28 -41
- commands/tech/list_gov_action_processes.py +16 -27
- commands/tech/list_information_supply_chains.py +22 -30
- commands/tech/list_registered_services.py +14 -26
- commands/tech/list_related_elements_with_prop_value.py +15 -25
- commands/tech/list_related_specification.py +1 -4
- commands/tech/list_relationship_types.py +15 -25
- commands/tech/list_relationships.py +20 -36
- commands/tech/list_solution_blueprints.py +28 -33
- commands/tech/list_solution_components.py +23 -29
- commands/tech/list_solution_roles.py +21 -32
- commands/tech/list_tech_templates.py +51 -54
- commands/tech/list_valid_metadata_values.py +5 -9
- commands/tech/table_tech_templates.py +2 -6
- commands/tech/x_list_related_elements.py +1 -4
- examples/GeoSpatial Products Example.py +524 -0
- examples/Jupyter Notebooks/P-egeria-server-config.ipynb +2137 -0
- examples/Jupyter Notebooks/README.md +2 -0
- examples/Jupyter Notebooks/common/P-environment-check.ipynb +115 -0
- examples/Jupyter Notebooks/common/__init__.py +14 -0
- examples/Jupyter Notebooks/common/common-functions.ipynb +4694 -0
- examples/Jupyter Notebooks/common/environment-check.ipynb +52 -0
- examples/Jupyter Notebooks/common/globals.ipynb +184 -0
- examples/Jupyter Notebooks/common/globals.py +154 -0
- examples/Jupyter Notebooks/common/orig_globals.py +152 -0
- examples/format_sets/all_format_sets.json +910 -0
- examples/format_sets/custom_format_sets.json +268 -0
- examples/format_sets/subset_format_sets.json +187 -0
- examples/format_sets_save_load_example.py +291 -0
- examples/jacquard_data_sets.py +129 -0
- examples/output_formats_example.py +193 -0
- examples/test_jacquard_data_sets.py +54 -0
- examples/test_jacquard_data_sets_scenarios.py +94 -0
- md_processing/__init__.py +90 -0
- md_processing/command_dispatcher.py +33 -0
- md_processing/command_mapping.py +221 -0
- md_processing/data/commands/commands_data_designer.json +537 -0
- md_processing/data/commands/commands_external_reference.json +733 -0
- md_processing/data/commands/commands_feedback.json +155 -0
- md_processing/data/commands/commands_general.json +204 -0
- md_processing/data/commands/commands_glossary.json +218 -0
- md_processing/data/commands/commands_governance.json +3678 -0
- md_processing/data/commands/commands_product_manager.json +865 -0
- md_processing/data/commands/commands_project.json +642 -0
- md_processing/data/commands/commands_solution_architect.json +366 -0
- md_processing/data/commands.json +17568 -0
- md_processing/data/commands_working.json +30641 -0
- md_processing/data/gened_report_specs.py +6584 -0
- md_processing/data/generated_format_sets.json +6533 -0
- md_processing/data/generated_format_sets_old.json +4137 -0
- md_processing/data/generated_format_sets_old.py +45 -0
- md_processing/dr_egeria.py +182 -0
- md_processing/md_commands/__init__.py +3 -0
- md_processing/md_commands/data_designer_commands.py +1276 -0
- md_processing/md_commands/ext_ref_commands.py +530 -0
- md_processing/md_commands/feedback_commands.py +726 -0
- md_processing/md_commands/glossary_commands.py +684 -0
- md_processing/md_commands/governance_officer_commands.py +600 -0
- md_processing/md_commands/product_manager_commands.py +1266 -0
- md_processing/md_commands/project_commands.py +383 -0
- md_processing/md_commands/solution_architect_commands.py +1184 -0
- md_processing/md_commands/view_commands.py +295 -0
- md_processing/md_processing_utils/__init__.py +4 -0
- md_processing/md_processing_utils/common_md_proc_utils.py +1249 -0
- md_processing/md_processing_utils/common_md_utils.py +578 -0
- md_processing/md_processing_utils/determine_width.py +103 -0
- md_processing/md_processing_utils/extraction_utils.py +547 -0
- md_processing/md_processing_utils/gen_report_specs.py +643 -0
- md_processing/md_processing_utils/generate_dr_help.py +193 -0
- md_processing/md_processing_utils/generate_md_cmd_templates.py +144 -0
- md_processing/md_processing_utils/generate_md_templates.py +83 -0
- md_processing/md_processing_utils/md_processing_constants.py +1228 -0
- md_processing/md_processing_utils/message_constants.py +19 -0
- pyegeria/__init__.py +201 -443
- pyegeria/core/__init__.py +40 -0
- pyegeria/core/_base_platform_client.py +574 -0
- pyegeria/core/_base_server_client.py +573 -0
- pyegeria/core/_exceptions.py +457 -0
- pyegeria/core/_globals.py +60 -0
- pyegeria/core/_server_client.py +6073 -0
- pyegeria/core/_validators.py +257 -0
- pyegeria/core/config.py +654 -0
- pyegeria/{create_tech_guid_lists.py → core/create_tech_guid_lists.py} +0 -1
- pyegeria/core/load_config.py +37 -0
- pyegeria/core/logging_configuration.py +207 -0
- pyegeria/core/mcp_adapter.py +144 -0
- pyegeria/core/mcp_server.py +212 -0
- pyegeria/core/utils.py +405 -0
- pyegeria/deprecated/__init__.py +0 -0
- pyegeria/{_client.py → deprecated/_client.py} +62 -24
- pyegeria/{_deprecated_gov_engine.py → deprecated/_deprecated_gov_engine.py} +16 -16
- pyegeria/{classification_manager_omvs.py → deprecated/classification_manager_omvs.py} +1988 -1878
- pyegeria/deprecated/output_formatter_with_machine_keys.py +1127 -0
- pyegeria/{runtime_manager_omvs.py → deprecated/runtime_manager_omvs.py} +216 -229
- pyegeria/{valid_metadata_omvs.py → deprecated/valid_metadata_omvs.py} +93 -93
- pyegeria/{x_action_author_omvs.py → deprecated/x_action_author_omvs.py} +2 -3
- pyegeria/egeria_cat_client.py +25 -51
- pyegeria/egeria_client.py +140 -98
- pyegeria/egeria_config_client.py +48 -24
- pyegeria/egeria_tech_client.py +170 -83
- pyegeria/models/__init__.py +150 -0
- pyegeria/models/collection_models.py +168 -0
- pyegeria/models/models.py +654 -0
- pyegeria/omvs/__init__.py +84 -0
- pyegeria/omvs/action_author.py +342 -0
- pyegeria/omvs/actor_manager.py +5980 -0
- pyegeria/omvs/asset_catalog.py +842 -0
- pyegeria/omvs/asset_maker.py +2736 -0
- pyegeria/omvs/automated_curation.py +4403 -0
- pyegeria/omvs/classification_manager.py +11213 -0
- pyegeria/omvs/collection_manager.py +5780 -0
- pyegeria/omvs/community_matters_omvs.py +468 -0
- pyegeria/{core_omag_server_config.py → omvs/core_omag_server_config.py} +157 -157
- pyegeria/{data_designer_omvs.py → omvs/data_designer.py} +1991 -1691
- pyegeria/omvs/data_discovery.py +869 -0
- pyegeria/omvs/data_engineer.py +372 -0
- pyegeria/omvs/digital_business.py +1133 -0
- pyegeria/omvs/external_links.py +1752 -0
- pyegeria/omvs/feedback_manager.py +834 -0
- pyegeria/{full_omag_server_config.py → omvs/full_omag_server_config.py} +73 -69
- pyegeria/omvs/glossary_manager.py +3231 -0
- pyegeria/omvs/governance_officer.py +3009 -0
- pyegeria/omvs/lineage_linker.py +314 -0
- pyegeria/omvs/location_arena.py +1525 -0
- pyegeria/omvs/metadata_expert.py +668 -0
- pyegeria/omvs/metadata_explorer_omvs.py +2943 -0
- pyegeria/omvs/my_profile.py +1042 -0
- pyegeria/omvs/notification_manager.py +358 -0
- pyegeria/omvs/people_organizer.py +394 -0
- pyegeria/{platform_services.py → omvs/platform_services.py} +113 -193
- pyegeria/omvs/product_manager.py +1825 -0
- pyegeria/omvs/project_manager.py +1907 -0
- pyegeria/omvs/reference_data.py +1140 -0
- pyegeria/omvs/registered_info.py +334 -0
- pyegeria/omvs/runtime_manager.py +2817 -0
- pyegeria/omvs/schema_maker.py +446 -0
- pyegeria/{server_operations.py → omvs/server_operations.py} +27 -26
- pyegeria/omvs/solution_architect.py +6490 -0
- pyegeria/omvs/specification_properties.py +37 -0
- pyegeria/omvs/subject_area.py +1042 -0
- pyegeria/omvs/template_manager_omvs.py +236 -0
- pyegeria/omvs/time_keeper.py +1761 -0
- pyegeria/omvs/valid_metadata.py +3221 -0
- pyegeria/omvs/valid_metadata_lists.py +37 -0
- pyegeria/omvs/valid_type_lists.py +37 -0
- pyegeria/view/__init__.py +28 -0
- pyegeria/view/_output_format_models.py +514 -0
- pyegeria/view/_output_formats.py +14 -0
- pyegeria/view/base_report_formats.py +2719 -0
- pyegeria/view/dr_egeria_reports.py +56 -0
- pyegeria/view/format_set_executor.py +397 -0
- pyegeria/{md_processing_utils.py → view/md_processing_utils.py} +5 -5
- pyegeria/{mermaid_utilities.py → view/mermaid_utilities.py} +2 -154
- pyegeria/view/output_formatter.py +1297 -0
- pyegeria-5.5.3.3.dist-info/METADATA +218 -0
- pyegeria-5.5.3.3.dist-info/RECORD +241 -0
- {pyegeria-5.3.9.9.3.dist-info → pyegeria-5.5.3.3.dist-info}/WHEEL +2 -1
- pyegeria-5.5.3.3.dist-info/entry_points.txt +103 -0
- pyegeria-5.5.3.3.dist-info/top_level.txt +4 -0
- commands/cat/.DS_Store +0 -0
- commands/cat/README.md +0 -16
- commands/cli/txt_custom_v2.tcss +0 -19
- commands/my/README.md +0 -17
- commands/ops/README.md +0 -24
- commands/ops/monitor_asset_events.py +0 -108
- commands/tech/README.md +0 -24
- pyegeria/.DS_Store +0 -0
- pyegeria/README.md +0 -35
- pyegeria/_globals.py +0 -47
- pyegeria/_validators.py +0 -385
- pyegeria/asset_catalog_omvs.py +0 -864
- pyegeria/automated_curation_omvs.py +0 -3765
- pyegeria/collection_manager_omvs.py +0 -2744
- pyegeria/dr.egeria spec.md +0 -9
- pyegeria/egeria_my_client.py +0 -56
- pyegeria/feedback_manager_omvs.py +0 -4573
- pyegeria/glossary_browser_omvs.py +0 -3728
- pyegeria/glossary_manager_omvs.py +0 -2440
- pyegeria/m_test.py +0 -118
- pyegeria/md_processing_helpers.py +0 -58
- pyegeria/md_processing_utils_orig.py +0 -1103
- pyegeria/metadata_explorer_omvs.py +0 -2326
- pyegeria/my_profile_omvs.py +0 -1022
- pyegeria/output_formatter.py +0 -389
- pyegeria/project_manager_omvs.py +0 -1933
- pyegeria/registered_info.py +0 -167
- pyegeria/solution_architect_omvs.py +0 -2156
- pyegeria/template_manager_omvs.py +0 -1414
- pyegeria/utils.py +0 -197
- pyegeria-5.3.9.9.3.dist-info/METADATA +0 -72
- pyegeria-5.3.9.9.3.dist-info/RECORD +0 -143
- pyegeria-5.3.9.9.3.dist-info/entry_points.txt +0 -99
- /pyegeria/{_exceptions.py → deprecated/_exceptions.py} +0 -0
- {pyegeria-5.3.9.9.3.dist-info → pyegeria-5.5.3.3.dist-info/licenses}/LICENSE +0 -0
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
"""
|
|
2
|
+
SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
Copyright Contributors to the ODPi Egeria project.
|
|
4
|
+
|
|
5
|
+
Community Matters OMVS client.
|
|
6
|
+
|
|
7
|
+
This module provides a lightweight client for the Community Matters View Service
|
|
8
|
+
endpoints as documented in Egeria-community-matters-omvs.http. It follows the
|
|
9
|
+
established patterns used by other OMVS clients (for example, location_arena.py
|
|
10
|
+
and project_manager.py), reusing the ServerClient helper methods for request
|
|
11
|
+
validation and transport.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
import asyncio
|
|
15
|
+
from typing import Any, Optional
|
|
16
|
+
|
|
17
|
+
from pyegeria.core._server_client import ServerClient
|
|
18
|
+
from pyegeria.models import (
|
|
19
|
+
NewElementRequestBody,
|
|
20
|
+
TemplateRequestBody,
|
|
21
|
+
UpdateElementRequestBody,
|
|
22
|
+
DeleteElementRequestBody,
|
|
23
|
+
FilterRequestBody,
|
|
24
|
+
SearchStringRequestBody,
|
|
25
|
+
GetRequestBody,
|
|
26
|
+
)
|
|
27
|
+
from pyegeria.core.utils import dynamic_catch
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class CommunityMatters(ServerClient):
|
|
31
|
+
"""
|
|
32
|
+
Client for the Community Matters View Service.
|
|
33
|
+
|
|
34
|
+
The Community Matters View Service provides methods to create and manage communities.
|
|
35
|
+
|
|
36
|
+
Attributes
|
|
37
|
+
----------
|
|
38
|
+
view_server : str
|
|
39
|
+
The name of the View Server to use.
|
|
40
|
+
platform_url : str
|
|
41
|
+
URL of the server platform to connect to.
|
|
42
|
+
user_id : str
|
|
43
|
+
The identity of the user calling the method.
|
|
44
|
+
user_pwd : str
|
|
45
|
+
The password associated with the user_id. Defaults to None.
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
def __init__(
|
|
49
|
+
self,
|
|
50
|
+
view_server: str,
|
|
51
|
+
platform_url: str,
|
|
52
|
+
user_id: str,
|
|
53
|
+
user_pwd: str | None = None,
|
|
54
|
+
token: str | None = None,
|
|
55
|
+
):
|
|
56
|
+
self.view_server = view_server
|
|
57
|
+
self.platform_url = platform_url
|
|
58
|
+
self.user_id = user_id
|
|
59
|
+
self.user_pwd = user_pwd
|
|
60
|
+
self.community_command_base: str = (
|
|
61
|
+
f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/community-matters"
|
|
62
|
+
)
|
|
63
|
+
# url_marker only used by some generic helpers (e.g., update status) not used here
|
|
64
|
+
self.url_marker = "community-matters"
|
|
65
|
+
ServerClient.__init__(self, view_server, platform_url, user_id, user_pwd, token)
|
|
66
|
+
|
|
67
|
+
# -----------------------------
|
|
68
|
+
# Create
|
|
69
|
+
# -----------------------------
|
|
70
|
+
@dynamic_catch
|
|
71
|
+
async def _async_create_community(self, body: Optional[dict | NewElementRequestBody] = None) -> str:
|
|
72
|
+
url = f"{self.community_command_base}/communities"
|
|
73
|
+
return await self._async_create_element_body_request(url, ["CommunityProperties"], body)
|
|
74
|
+
|
|
75
|
+
@dynamic_catch
|
|
76
|
+
def create_community(self, body: Optional[dict | NewElementRequestBody] = None) -> str:
|
|
77
|
+
loop = asyncio.get_event_loop()
|
|
78
|
+
return loop.run_until_complete(self._async_create_community(body))
|
|
79
|
+
|
|
80
|
+
# -----------------------------
|
|
81
|
+
# Create from template
|
|
82
|
+
# -----------------------------
|
|
83
|
+
@dynamic_catch
|
|
84
|
+
async def _async_create_community_from_template(self, body: dict | TemplateRequestBody) -> str:
|
|
85
|
+
url = f"{self.community_command_base}/communities/from-template"
|
|
86
|
+
return await self._async_create_element_from_template(url, body)
|
|
87
|
+
|
|
88
|
+
@dynamic_catch
|
|
89
|
+
def create_community_from_template(self, body: dict | TemplateRequestBody) -> str:
|
|
90
|
+
loop = asyncio.get_event_loop()
|
|
91
|
+
return loop.run_until_complete(self._async_create_community_from_template(body))
|
|
92
|
+
|
|
93
|
+
# -----------------------------
|
|
94
|
+
# Update
|
|
95
|
+
# -----------------------------
|
|
96
|
+
@dynamic_catch
|
|
97
|
+
async def _async_update_community(self, community_guid: str, body: dict | UpdateElementRequestBody) -> None:
|
|
98
|
+
url = f"{self.community_command_base}/communities/{community_guid}/update"
|
|
99
|
+
await self._async_update_element_body_request(url, ["CommunityProperties"], body)
|
|
100
|
+
|
|
101
|
+
@dynamic_catch
|
|
102
|
+
def update_community(self, community_guid: str, body: dict | UpdateElementRequestBody) -> None:
|
|
103
|
+
loop = asyncio.get_event_loop()
|
|
104
|
+
loop.run_until_complete(self._async_update_community(community_guid, body))
|
|
105
|
+
|
|
106
|
+
# -----------------------------
|
|
107
|
+
# Delete
|
|
108
|
+
# -----------------------------
|
|
109
|
+
@dynamic_catch
|
|
110
|
+
async def _async_delete_community(
|
|
111
|
+
self,
|
|
112
|
+
community_guid: str,
|
|
113
|
+
body: Optional[dict | DeleteElementRequestBody] = None,
|
|
114
|
+
cascade: bool = False,
|
|
115
|
+
) -> None:
|
|
116
|
+
url = f"{self.community_command_base}/communities/{community_guid}/delete"
|
|
117
|
+
await self._async_delete_element_request(url, body, cascade)
|
|
118
|
+
|
|
119
|
+
@dynamic_catch
|
|
120
|
+
def delete_community(
|
|
121
|
+
self,
|
|
122
|
+
community_guid: str,
|
|
123
|
+
body: Optional[dict | DeleteElementRequestBody] = None,
|
|
124
|
+
cascade: bool = False,
|
|
125
|
+
) -> None:
|
|
126
|
+
loop = asyncio.get_event_loop()
|
|
127
|
+
loop.run_until_complete(self._async_delete_community(community_guid, body, cascade))
|
|
128
|
+
|
|
129
|
+
# -----------------------------
|
|
130
|
+
# Get by name
|
|
131
|
+
# -----------------------------
|
|
132
|
+
def _generate_community_output(
|
|
133
|
+
self,
|
|
134
|
+
elements: dict | list[dict],
|
|
135
|
+
filter_or_search: str | None,
|
|
136
|
+
element_type_name: str | None,
|
|
137
|
+
output_format: str = "JSON",
|
|
138
|
+
report_spec: dict | str | None = None,
|
|
139
|
+
) -> Any:
|
|
140
|
+
# Minimal implementation: return JSON elements unchanged for now.
|
|
141
|
+
# Extend later to provide markdown/DICT formatting with output_formatter if needed.
|
|
142
|
+
return elements
|
|
143
|
+
|
|
144
|
+
@dynamic_catch
|
|
145
|
+
async def _async_get_communities_by_name(
|
|
146
|
+
self,
|
|
147
|
+
filter_string: str | None = None,
|
|
148
|
+
body: Optional[dict | FilterRequestBody] = None,
|
|
149
|
+
start_from: int = 0,
|
|
150
|
+
page_size: int = 0,
|
|
151
|
+
output_format: str = "JSON",
|
|
152
|
+
report_spec: str | dict | None = None,
|
|
153
|
+
) -> list | str:
|
|
154
|
+
url = f"{self.community_command_base}/communities/by-name"
|
|
155
|
+
response = await self._async_get_name_request(
|
|
156
|
+
url,
|
|
157
|
+
_type="Community",
|
|
158
|
+
_gen_output=self._generate_community_output,
|
|
159
|
+
filter_string=filter_string,
|
|
160
|
+
start_from=start_from,
|
|
161
|
+
page_size=page_size,
|
|
162
|
+
output_format=output_format,
|
|
163
|
+
report_spec=report_spec,
|
|
164
|
+
body=body,
|
|
165
|
+
)
|
|
166
|
+
return response
|
|
167
|
+
|
|
168
|
+
@dynamic_catch
|
|
169
|
+
def get_communities_by_name(
|
|
170
|
+
self,
|
|
171
|
+
filter_string: str | None = None,
|
|
172
|
+
body: Optional[dict | FilterRequestBody] = None,
|
|
173
|
+
start_from: int = 0,
|
|
174
|
+
page_size: int = 0,
|
|
175
|
+
output_format: str = "JSON",
|
|
176
|
+
report_spec: str | dict | None = None,
|
|
177
|
+
) -> list | str:
|
|
178
|
+
loop = asyncio.get_event_loop()
|
|
179
|
+
return loop.run_until_complete(
|
|
180
|
+
self._async_get_communities_by_name(
|
|
181
|
+
filter_string,
|
|
182
|
+
body,
|
|
183
|
+
start_from,
|
|
184
|
+
page_size,
|
|
185
|
+
output_format,
|
|
186
|
+
report_spec,
|
|
187
|
+
)
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
# -----------------------------
|
|
191
|
+
# Find by search string
|
|
192
|
+
# -----------------------------
|
|
193
|
+
@dynamic_catch
|
|
194
|
+
async def _async_find_communities(self, search_string: str = "*",
|
|
195
|
+
starts_with: bool = True, ends_with: bool = False,
|
|
196
|
+
ignore_case: bool = False,
|
|
197
|
+
anchor_domain: Optional[str] = None,
|
|
198
|
+
metadata_element_type: Optional[str] = None,
|
|
199
|
+
metadata_element_subtypes: Optional[list[str]] = None,
|
|
200
|
+
skip_relationships: Optional[list[str]] = None,
|
|
201
|
+
include_only_relationships: Optional[list[str]] = None,
|
|
202
|
+
skip_classified_elements: Optional[list[str]] = None,
|
|
203
|
+
include_only_classified_elements: Optional[list[str]] = None,
|
|
204
|
+
graph_query_depth: int = 3,
|
|
205
|
+
governance_zone_filter: Optional[list[str]] = None, as_of_time: Optional[str] = None,
|
|
206
|
+
effective_time: Optional[str] = None, relationship_page_size: int = 0,
|
|
207
|
+
limit_results_by_status: Optional[list[str]] = None, sequencing_order: Optional[str] = None,
|
|
208
|
+
sequencing_property: Optional[str] = None,
|
|
209
|
+
output_format: str = "JSON",
|
|
210
|
+
report_spec: str | dict = None,
|
|
211
|
+
start_from: int = 0, page_size: int = 100,
|
|
212
|
+
property_names: Optional[list[str]] = None,
|
|
213
|
+
body: Optional[dict | SearchStringRequestBody] = None) -> list | str:
|
|
214
|
+
""" Retrieve the list of community metadata elements that contain the search string. Async Version.
|
|
215
|
+
|
|
216
|
+
Parameters
|
|
217
|
+
----------
|
|
218
|
+
search_string: str
|
|
219
|
+
Search string to match against - None or '*' indicate match against all communities.
|
|
220
|
+
starts_with : bool, [default=True], optional
|
|
221
|
+
Starts with the supplied string.
|
|
222
|
+
ends_with : bool, [default=False], optional
|
|
223
|
+
Ends with the supplied string
|
|
224
|
+
ignore_case : bool, [default=False], optional
|
|
225
|
+
Ignore case when searching
|
|
226
|
+
anchor_domain: str, optional
|
|
227
|
+
The anchor domain to search in.
|
|
228
|
+
metadata_element_type: str, optional
|
|
229
|
+
The type of metadata element to search for.
|
|
230
|
+
metadata_element_subtypes: list[str], optional
|
|
231
|
+
The subtypes of metadata element to search for.
|
|
232
|
+
skip_relationships: list[str], optional
|
|
233
|
+
The types of relationships to skip.
|
|
234
|
+
include_only_relationships: list[str], optional
|
|
235
|
+
The types of relationships to include.
|
|
236
|
+
skip_classified_elements: list[str], optional
|
|
237
|
+
The types of classified elements to skip.
|
|
238
|
+
include_only_classified_elements: list[str], optional
|
|
239
|
+
The types of classified elements to include.
|
|
240
|
+
graph_query_depth: int, [default=3], optional
|
|
241
|
+
The depth of the graph query.
|
|
242
|
+
governance_zone_filter: list[str], optional
|
|
243
|
+
The governance zones to search in.
|
|
244
|
+
as_of_time: str, optional
|
|
245
|
+
The time to search as of.
|
|
246
|
+
effective_time: str, optional
|
|
247
|
+
The effective time to search at.
|
|
248
|
+
relationship_page_size: int, [default=0], optional
|
|
249
|
+
The page size for relationships.
|
|
250
|
+
limit_results_by_status: list[str], optional
|
|
251
|
+
The statuses to limit results by.
|
|
252
|
+
sequencing_order: str, optional
|
|
253
|
+
The order to sequence results by.
|
|
254
|
+
sequencing_property: str, optional
|
|
255
|
+
The property to sequence results by.
|
|
256
|
+
output_format: str, default = "JSON"
|
|
257
|
+
- one of "MD", "LIST", "FORM", "REPORT", "DICT", "MERMAID" or "JSON"
|
|
258
|
+
report_spec: str | dict , optional, default = None
|
|
259
|
+
- The desired output columns/fields to include.
|
|
260
|
+
start_from: int, [default=0], optional
|
|
261
|
+
When multiple pages of results are available, the page number to start from.
|
|
262
|
+
page_size: int, [default=100]
|
|
263
|
+
The number of items to return in a single page.
|
|
264
|
+
property_names: list[str], optional
|
|
265
|
+
The names of properties to search for.
|
|
266
|
+
body: dict | SearchStringRequestBody, optional, default = None
|
|
267
|
+
- if provided, the search parameters in the body will supercede other attributes, such as "search_string"
|
|
268
|
+
|
|
269
|
+
Returns
|
|
270
|
+
-------
|
|
271
|
+
List | str
|
|
272
|
+
|
|
273
|
+
Output depends on the output format specified.
|
|
274
|
+
|
|
275
|
+
Raises
|
|
276
|
+
------
|
|
277
|
+
|
|
278
|
+
ValidationError
|
|
279
|
+
If the client passes incorrect parameters on the request that don't conform to the data model.
|
|
280
|
+
PyegeriaException
|
|
281
|
+
Issues raised in communicating or server side processing.
|
|
282
|
+
NotAuthorizedException
|
|
283
|
+
The principle specified by the user_id does not have authorization for the requested action
|
|
284
|
+
|
|
285
|
+
"""
|
|
286
|
+
url = f"{self.community_command_base}/communities/by-search-string"
|
|
287
|
+
response = await self._async_find_request(url, _type="Community", _gen_output=self._generate_community_output,
|
|
288
|
+
search_string=search_string, starts_with=starts_with,
|
|
289
|
+
ends_with=ends_with, ignore_case=ignore_case,
|
|
290
|
+
anchor_domain=anchor_domain,
|
|
291
|
+
metadata_element_type=metadata_element_type,
|
|
292
|
+
metadata_element_subtypes=metadata_element_subtypes,
|
|
293
|
+
skip_relationships=skip_relationships,
|
|
294
|
+
include_only_relationships=include_only_relationships,
|
|
295
|
+
skip_classified_elements=skip_classified_elements,
|
|
296
|
+
include_only_classified_elements=include_only_classified_elements,
|
|
297
|
+
graph_query_depth=graph_query_depth,
|
|
298
|
+
governance_zone_filter=governance_zone_filter,
|
|
299
|
+
as_of_time=as_of_time, effective_time=effective_time,
|
|
300
|
+
relationship_page_size=relationship_page_size,
|
|
301
|
+
limit_results_by_status=limit_results_by_status,
|
|
302
|
+
sequencing_order=sequencing_order,
|
|
303
|
+
sequencing_property=sequencing_property,
|
|
304
|
+
output_format=output_format, report_spec=report_spec,
|
|
305
|
+
start_from=start_from, page_size=page_size,
|
|
306
|
+
property_names=property_names, body=body)
|
|
307
|
+
|
|
308
|
+
return response
|
|
309
|
+
|
|
310
|
+
@dynamic_catch
|
|
311
|
+
def find_communities(self, search_string: str = "*",
|
|
312
|
+
starts_with: bool = True, ends_with: bool = False,
|
|
313
|
+
ignore_case: bool = False,
|
|
314
|
+
anchor_domain: Optional[str] = None,
|
|
315
|
+
metadata_element_type: Optional[str] = None,
|
|
316
|
+
metadata_element_subtypes: Optional[list[str]] = None,
|
|
317
|
+
skip_relationships: Optional[list[str]] = None,
|
|
318
|
+
include_only_relationships: Optional[list[str]] = None,
|
|
319
|
+
skip_classified_elements: Optional[list[str]] = None,
|
|
320
|
+
include_only_classified_elements: Optional[list[str]] = None,
|
|
321
|
+
graph_query_depth: int = 3,
|
|
322
|
+
governance_zone_filter: Optional[list[str]] = None, as_of_time: Optional[str] = None,
|
|
323
|
+
effective_time: Optional[str] = None, relationship_page_size: int = 0,
|
|
324
|
+
limit_results_by_status: Optional[list[str]] = None, sequencing_order: Optional[str] = None,
|
|
325
|
+
sequencing_property: Optional[str] = None,
|
|
326
|
+
output_format: str = "JSON",
|
|
327
|
+
report_spec: str | dict = None,
|
|
328
|
+
start_from: int = 0, page_size: int = 100,
|
|
329
|
+
property_names: Optional[list[str]] = None,
|
|
330
|
+
body: Optional[dict | SearchStringRequestBody] = None) -> list | str:
|
|
331
|
+
""" Retrieve the list of community metadata elements that contain the search string.
|
|
332
|
+
|
|
333
|
+
Parameters
|
|
334
|
+
----------
|
|
335
|
+
search_string: str
|
|
336
|
+
Search string to match against - None or '*' indicate match against all communities.
|
|
337
|
+
starts_with : bool, [default=True], optional
|
|
338
|
+
Starts with the supplied string.
|
|
339
|
+
ends_with : bool, [default=False], optional
|
|
340
|
+
Ends with the supplied string
|
|
341
|
+
ignore_case : bool, [default=False], optional
|
|
342
|
+
Ignore case when searching
|
|
343
|
+
anchor_domain: str, optional
|
|
344
|
+
The anchor domain to search in.
|
|
345
|
+
metadata_element_type: str, optional
|
|
346
|
+
The type of metadata element to search for.
|
|
347
|
+
metadata_element_subtypes: list[str], optional
|
|
348
|
+
The subtypes of metadata element to search for.
|
|
349
|
+
skip_relationships: list[str], optional
|
|
350
|
+
The types of relationships to skip.
|
|
351
|
+
include_only_relationships: list[str], optional
|
|
352
|
+
The types of relationships to include.
|
|
353
|
+
skip_classified_elements: list[str], optional
|
|
354
|
+
The types of classified elements to skip.
|
|
355
|
+
include_only_classified_elements: list[str], optional
|
|
356
|
+
The types of classified elements to include.
|
|
357
|
+
graph_query_depth: int, [default=3], optional
|
|
358
|
+
The depth of the graph query.
|
|
359
|
+
governance_zone_filter: list[str], optional
|
|
360
|
+
The governance zones to search in.
|
|
361
|
+
as_of_time: str, optional
|
|
362
|
+
The time to search as of.
|
|
363
|
+
effective_time: str, optional
|
|
364
|
+
The effective time to search at.
|
|
365
|
+
relationship_page_size: int, [default=0], optional
|
|
366
|
+
The page size for relationships.
|
|
367
|
+
limit_results_by_status: list[str], optional
|
|
368
|
+
The statuses to limit results by.
|
|
369
|
+
sequencing_order: str, optional
|
|
370
|
+
The order to sequence results by.
|
|
371
|
+
sequencing_property: str, optional
|
|
372
|
+
The property to sequence results by.
|
|
373
|
+
output_format: str, default = "JSON"
|
|
374
|
+
- one of "MD", "LIST", "FORM", "REPORT", "DICT", "MERMAID" or "JSON"
|
|
375
|
+
report_spec: str | dict , optional, default = None
|
|
376
|
+
- The desired output columns/fields to include.
|
|
377
|
+
start_from: int, [default=0], optional
|
|
378
|
+
When multiple pages of results are available, the page number to start from.
|
|
379
|
+
page_size: int, [default=100]
|
|
380
|
+
The number of items to return in a single page.
|
|
381
|
+
property_names: list[str], optional
|
|
382
|
+
The names of properties to search for.
|
|
383
|
+
body: dict | SearchStringRequestBody, optional, default = None
|
|
384
|
+
- if provided, the search parameters in the body will supercede other attributes, such as "search_string"
|
|
385
|
+
|
|
386
|
+
Returns
|
|
387
|
+
-------
|
|
388
|
+
List | str
|
|
389
|
+
|
|
390
|
+
Output depends on the output format specified.
|
|
391
|
+
|
|
392
|
+
Raises
|
|
393
|
+
------
|
|
394
|
+
|
|
395
|
+
ValidationError
|
|
396
|
+
If the client passes incorrect parameters on the request that don't conform to the data model.
|
|
397
|
+
PyegeriaException
|
|
398
|
+
Issues raised in communicating or server side processing.
|
|
399
|
+
NotAuthorizedException
|
|
400
|
+
The principle specified by the user_id does not have authorization for the requested action
|
|
401
|
+
|
|
402
|
+
"""
|
|
403
|
+
loop = asyncio.get_event_loop()
|
|
404
|
+
return loop.run_until_complete(self._async_find_communities(search_string=search_string,
|
|
405
|
+
starts_with=starts_with,
|
|
406
|
+
ends_with=ends_with,
|
|
407
|
+
ignore_case=ignore_case,
|
|
408
|
+
anchor_domain=anchor_domain,
|
|
409
|
+
metadata_element_type=metadata_element_type,
|
|
410
|
+
metadata_element_subtypes=metadata_element_subtypes,
|
|
411
|
+
skip_relationships=skip_relationships,
|
|
412
|
+
include_only_relationships=include_only_relationships,
|
|
413
|
+
skip_classified_elements=skip_classified_elements,
|
|
414
|
+
include_only_classified_elements=include_only_classified_elements,
|
|
415
|
+
graph_query_depth=graph_query_depth,
|
|
416
|
+
governance_zone_filter=governance_zone_filter,
|
|
417
|
+
as_of_time=as_of_time,
|
|
418
|
+
effective_time=effective_time,
|
|
419
|
+
relationship_page_size=relationship_page_size,
|
|
420
|
+
limit_results_by_status=limit_results_by_status,
|
|
421
|
+
sequencing_order=sequencing_order,
|
|
422
|
+
sequencing_property=sequencing_property,
|
|
423
|
+
output_format=output_format,
|
|
424
|
+
report_spec=report_spec,
|
|
425
|
+
start_from=start_from,
|
|
426
|
+
page_size=page_size,
|
|
427
|
+
property_names=property_names,
|
|
428
|
+
body=body))
|
|
429
|
+
|
|
430
|
+
# -----------------------------
|
|
431
|
+
# Get by GUID
|
|
432
|
+
# -----------------------------
|
|
433
|
+
@dynamic_catch
|
|
434
|
+
async def _async_get_community_by_guid(
|
|
435
|
+
self,
|
|
436
|
+
community_guid: str,
|
|
437
|
+
body: Optional[dict | GetRequestBody] = None,
|
|
438
|
+
output_format: str = "JSON",
|
|
439
|
+
report_spec: str | dict | None = None,
|
|
440
|
+
) -> dict | str:
|
|
441
|
+
url = f"{self.community_command_base}/communities/{community_guid}/retrieve"
|
|
442
|
+
response = await self._async_get_guid_request(
|
|
443
|
+
url,
|
|
444
|
+
_type="Community",
|
|
445
|
+
_gen_output=self._generate_community_output,
|
|
446
|
+
output_format=output_format,
|
|
447
|
+
report_spec=report_spec,
|
|
448
|
+
body=body,
|
|
449
|
+
)
|
|
450
|
+
return response
|
|
451
|
+
|
|
452
|
+
@dynamic_catch
|
|
453
|
+
def get_community_by_guid(
|
|
454
|
+
self,
|
|
455
|
+
community_guid: str,
|
|
456
|
+
body: Optional[dict | GetRequestBody] = None,
|
|
457
|
+
output_format: str = "JSON",
|
|
458
|
+
report_spec: str | dict | None = None,
|
|
459
|
+
) -> dict | str:
|
|
460
|
+
loop = asyncio.get_event_loop()
|
|
461
|
+
return loop.run_until_complete(
|
|
462
|
+
self._async_get_community_by_guid(
|
|
463
|
+
community_guid,
|
|
464
|
+
body,
|
|
465
|
+
output_format,
|
|
466
|
+
report_spec,
|
|
467
|
+
)
|
|
468
|
+
)
|