semantic-link-labs 0.10.0__py3-none-any.whl → 0.11.0__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 semantic-link-labs might be problematic. Click here for more details.
- {semantic_link_labs-0.10.0.dist-info → semantic_link_labs-0.11.0.dist-info}/METADATA +9 -6
- {semantic_link_labs-0.10.0.dist-info → semantic_link_labs-0.11.0.dist-info}/RECORD +95 -87
- sempy_labs/__init__.py +11 -1
- sempy_labs/_a_lib_info.py +2 -0
- sempy_labs/_capacities.py +2 -0
- sempy_labs/_connections.py +11 -0
- sempy_labs/_dashboards.py +9 -4
- sempy_labs/_data_pipelines.py +5 -0
- sempy_labs/_dataflows.py +284 -17
- sempy_labs/_daxformatter.py +80 -0
- sempy_labs/_delta_analyzer_history.py +4 -1
- sempy_labs/_deployment_pipelines.py +4 -0
- sempy_labs/_documentation.py +3 -0
- sempy_labs/_environments.py +10 -1
- sempy_labs/_eventhouses.py +12 -5
- sempy_labs/_eventstreams.py +11 -3
- sempy_labs/_external_data_shares.py +8 -2
- sempy_labs/_gateways.py +26 -5
- sempy_labs/_git.py +11 -0
- sempy_labs/_graphQL.py +10 -3
- sempy_labs/_helper_functions.py +62 -10
- sempy_labs/_job_scheduler.py +54 -7
- sempy_labs/_kql_databases.py +11 -2
- sempy_labs/_kql_querysets.py +11 -3
- sempy_labs/_list_functions.py +17 -45
- sempy_labs/_managed_private_endpoints.py +11 -2
- sempy_labs/_mirrored_databases.py +17 -3
- sempy_labs/_mirrored_warehouses.py +9 -3
- sempy_labs/_ml_experiments.py +11 -3
- sempy_labs/_ml_models.py +11 -3
- sempy_labs/_model_bpa_rules.py +2 -0
- sempy_labs/_mounted_data_factories.py +12 -8
- sempy_labs/_notebooks.py +6 -3
- sempy_labs/_refresh_semantic_model.py +1 -0
- sempy_labs/_semantic_models.py +107 -0
- sempy_labs/_spark.py +7 -0
- sempy_labs/_sql_endpoints.py +208 -0
- sempy_labs/_sqldatabase.py +13 -4
- sempy_labs/_tags.py +5 -1
- sempy_labs/_user_delegation_key.py +2 -0
- sempy_labs/_variable_libraries.py +3 -1
- sempy_labs/_warehouses.py +13 -3
- sempy_labs/_workloads.py +3 -0
- sempy_labs/_workspace_identity.py +3 -0
- sempy_labs/_workspaces.py +14 -1
- sempy_labs/admin/__init__.py +2 -0
- sempy_labs/admin/_activities.py +6 -5
- sempy_labs/admin/_apps.py +31 -31
- sempy_labs/admin/_artifacts.py +8 -3
- sempy_labs/admin/_basic_functions.py +5 -0
- sempy_labs/admin/_capacities.py +39 -28
- sempy_labs/admin/_datasets.py +51 -51
- sempy_labs/admin/_domains.py +17 -1
- sempy_labs/admin/_external_data_share.py +8 -2
- sempy_labs/admin/_git.py +14 -9
- sempy_labs/admin/_items.py +15 -2
- sempy_labs/admin/_reports.py +64 -65
- sempy_labs/admin/_shared.py +7 -1
- sempy_labs/admin/_tags.py +5 -0
- sempy_labs/admin/_tenant.py +5 -2
- sempy_labs/admin/_users.py +9 -3
- sempy_labs/admin/_workspaces.py +88 -0
- sempy_labs/directlake/_dl_helper.py +2 -0
- sempy_labs/directlake/_generate_shared_expression.py +2 -0
- sempy_labs/directlake/_get_directlake_lakehouse.py +2 -4
- sempy_labs/directlake/_get_shared_expression.py +2 -0
- sempy_labs/directlake/_guardrails.py +2 -0
- sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +5 -3
- sempy_labs/directlake/_warm_cache.py +1 -0
- sempy_labs/graph/_groups.py +22 -7
- sempy_labs/graph/_teams.py +7 -2
- sempy_labs/graph/_users.py +1 -0
- sempy_labs/lakehouse/_blobs.py +1 -0
- sempy_labs/lakehouse/_get_lakehouse_tables.py +88 -27
- sempy_labs/lakehouse/_helper.py +2 -0
- sempy_labs/lakehouse/_lakehouse.py +38 -5
- sempy_labs/lakehouse/_livy_sessions.py +2 -1
- sempy_labs/lakehouse/_shortcuts.py +7 -1
- sempy_labs/migration/_direct_lake_to_import.py +2 -0
- sempy_labs/mirrored_azure_databricks_catalog/__init__.py +15 -0
- sempy_labs/mirrored_azure_databricks_catalog/_discover.py +213 -0
- sempy_labs/mirrored_azure_databricks_catalog/_refresh_catalog_metadata.py +45 -0
- sempy_labs/report/_download_report.py +2 -1
- sempy_labs/report/_generate_report.py +2 -0
- sempy_labs/report/_paginated.py +2 -0
- sempy_labs/report/_report_bpa.py +110 -122
- sempy_labs/report/_report_bpa_rules.py +2 -0
- sempy_labs/report/_report_functions.py +7 -0
- sempy_labs/report/_reportwrapper.py +86 -48
- sempy_labs/theme/__init__.py +12 -0
- sempy_labs/theme/_org_themes.py +96 -0
- sempy_labs/tom/_model.py +702 -35
- {semantic_link_labs-0.10.0.dist-info → semantic_link_labs-0.11.0.dist-info}/WHEEL +0 -0
- {semantic_link_labs-0.10.0.dist-info → semantic_link_labs-0.11.0.dist-info}/licenses/LICENSE +0 -0
- {semantic_link_labs-0.10.0.dist-info → semantic_link_labs-0.11.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import pandas as pd
|
|
2
|
+
from uuid import UUID
|
|
3
|
+
from sempy_labs._helper_functions import (
|
|
4
|
+
_is_valid_uuid,
|
|
5
|
+
_base_api,
|
|
6
|
+
_update_dataframe_datatypes,
|
|
7
|
+
_create_dataframe,
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
_pbi_url_prefix = None
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def init_pbi_url_prefix():
|
|
15
|
+
global _pbi_url_prefix
|
|
16
|
+
if _pbi_url_prefix:
|
|
17
|
+
return
|
|
18
|
+
|
|
19
|
+
response = _base_api("/v1.0/myorg/capacities")
|
|
20
|
+
_pbi_url_prefix = response.json().get("@odata.context").split("/v1.0/myorg")[0]
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def list_org_themes() -> pd.DataFrame:
|
|
24
|
+
|
|
25
|
+
init_pbi_url_prefix()
|
|
26
|
+
|
|
27
|
+
columns = {
|
|
28
|
+
"Theme Id": "str",
|
|
29
|
+
"Theme Name": "str",
|
|
30
|
+
"Description": "str",
|
|
31
|
+
"Enabled In Theme Gallery": "bool",
|
|
32
|
+
"Update Time": "datetime",
|
|
33
|
+
"For Copilot": "bool",
|
|
34
|
+
"Theme Json": "str",
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
df = _create_dataframe(columns=columns)
|
|
38
|
+
|
|
39
|
+
response = _base_api(request=f"{_pbi_url_prefix}/metadata/organization/themes")
|
|
40
|
+
|
|
41
|
+
result = response.json().get("orgThemes")
|
|
42
|
+
if result:
|
|
43
|
+
df = pd.json_normalize(result)
|
|
44
|
+
df.rename(
|
|
45
|
+
columns={
|
|
46
|
+
"objectId": "Theme Id",
|
|
47
|
+
"displayName": "Theme Name",
|
|
48
|
+
"description": "Description",
|
|
49
|
+
"enabledInThemeGallery": "Enabled In Theme Gallery",
|
|
50
|
+
"updateTime": "Update Time",
|
|
51
|
+
"forCopilot": "For Copilot",
|
|
52
|
+
"themeJson": "Theme Json",
|
|
53
|
+
},
|
|
54
|
+
inplace=True,
|
|
55
|
+
)
|
|
56
|
+
_update_dataframe_datatypes(df, columns)
|
|
57
|
+
|
|
58
|
+
return df
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def resolve_theme_id(theme: str | UUID):
|
|
62
|
+
|
|
63
|
+
if _is_valid_uuid(theme):
|
|
64
|
+
return theme
|
|
65
|
+
else:
|
|
66
|
+
df = list_org_themes()
|
|
67
|
+
df_filt = df[df["Theme Name"] == theme]
|
|
68
|
+
if df_filt.empty:
|
|
69
|
+
raise ValueError("Invalid theme")
|
|
70
|
+
else:
|
|
71
|
+
return df_filt["Theme Id"].iloc[0]
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def get_org_theme_json(theme: str | UUID) -> dict:
|
|
75
|
+
|
|
76
|
+
init_pbi_url_prefix()
|
|
77
|
+
|
|
78
|
+
theme_id = resolve_theme_id(theme)
|
|
79
|
+
response = _base_api(
|
|
80
|
+
request=f"{_pbi_url_prefix}/metadata/organization/themes/{theme_id}"
|
|
81
|
+
)
|
|
82
|
+
return response.json().get("themeJson", {})
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def delete_org_theme(theme: str | UUID) -> None:
|
|
86
|
+
"""
|
|
87
|
+
Deletes an organization theme by its name or ID.
|
|
88
|
+
"""
|
|
89
|
+
init_pbi_url_prefix()
|
|
90
|
+
|
|
91
|
+
theme_id = resolve_theme_id(theme)
|
|
92
|
+
_base_api(
|
|
93
|
+
request=f"{_pbi_url_prefix}/metadata/organization/themes/{theme_id}",
|
|
94
|
+
method="delete",
|
|
95
|
+
status_codes=204,
|
|
96
|
+
)
|