semantic-link-labs 0.11.0__py3-none-any.whl → 0.11.1__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.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: semantic-link-labs
3
- Version: 0.11.0
3
+ Version: 0.11.1
4
4
  Summary: Semantic Link Labs for Microsoft Fabric
5
5
  Author: Microsoft Corporation
6
6
  License: MIT License
@@ -27,7 +27,7 @@ Dynamic: license-file
27
27
  # Semantic Link Labs
28
28
 
29
29
  [![PyPI version](https://badge.fury.io/py/semantic-link-labs.svg)](https://badge.fury.io/py/semantic-link-labs)
30
- [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.11.0&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
30
+ [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.11.1&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
31
31
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
32
32
  [![Downloads](https://static.pepy.tech/badge/semantic-link-labs)](https://pepy.tech/project/semantic-link-labs)
33
33
 
@@ -131,7 +131,7 @@ import sempy_labs.lakehouse as lake
131
131
  import sempy_labs.report as rep
132
132
  from sempy_labs import migration, directlake, admin, graph, theme, mirrored_azure_databricks_catalog
133
133
  from sempy_labs.tom import connect_semantic_model
134
- from sempy_labs.report import ReportWrapper
134
+ from sempy_labs.report import connect_report
135
135
  ```
136
136
 
137
137
  ## Load Semantic Link Labs into a custom [Fabric environment](https://learn.microsoft.com/fabric/data-engineering/create-and-use-environment)
@@ -155,6 +155,7 @@ An even better way to ensure the semantic-link-labs library is available in your
155
155
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
156
156
 
157
157
  ## Version History
158
+ * [0.11.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.1) (June 23, 2025)
158
159
  * [0.11.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.11.0) (June 23, 2025)
159
160
  * [0.10.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.10.1) (June 10, 2025)
160
161
  * [0.10.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.10.0) (May 30, 2025)
@@ -1,6 +1,6 @@
1
- semantic_link_labs-0.11.0.dist-info/licenses/LICENSE,sha256=ws_MuBL-SCEBqPBFl9_FqZkaaydIJmxHrJG2parhU4M,1141
1
+ semantic_link_labs-0.11.1.dist-info/licenses/LICENSE,sha256=ws_MuBL-SCEBqPBFl9_FqZkaaydIJmxHrJG2parhU4M,1141
2
2
  sempy_labs/__init__.py,sha256=F4YXaygtD5Sv_oRt8Zs8FuKLgbDhYcPdmFOf1C03K-M,16659
3
- sempy_labs/_a_lib_info.py,sha256=edT_S2VnabNS435djGZbiyH69E6JmYFtj1W300xVTmo,53
3
+ sempy_labs/_a_lib_info.py,sha256=PRqoBGggM5iCD8pCmTmhpRa8dpqGlu0hBFbmlqzk0Ls,53
4
4
  sempy_labs/_ai.py,sha256=BD1TdGOJ7T4m3x426OP-FLb7bevn-9gKY8BTEDAJDQU,16205
5
5
  sempy_labs/_authentication.py,sha256=GjtN5XqIyWXbR5Ni4hfYiUNwgFa-ySX8e-BrqE1vgGc,6903
6
6
  sempy_labs/_capacities.py,sha256=TQYlbM0LP21G-KsW6QrJ7heBzKL42XxA939VldWiKeg,40436
@@ -107,7 +107,7 @@ sempy_labs/admin/_activities.py,sha256=UwMnl-ImGM0EptcorkIz9QF3PTXzwp8v6sVo7XZYi
107
107
  sempy_labs/admin/_apps.py,sha256=ksXYbcsGQ0ljmlDcEgtG6QFSVi23ALBUkQ9OEoi9HlQ,4114
108
108
  sempy_labs/admin/_artifacts.py,sha256=Hhn5TPDCjusrGcM6BhLSHDFKKRDeZpODcB3mgcm2y4c,2322
109
109
  sempy_labs/admin/_basic_functions.py,sha256=gTNojHrEiu9HPoFTMyCKs6BbwQO4oyU7W4yfsf6DNWk,16345
110
- sempy_labs/admin/_capacities.py,sha256=ocl8YQMHSJc9E28QnbssZke2Y6GWvVwhcsZGM0v0zSg,15669
110
+ sempy_labs/admin/_capacities.py,sha256=9B55VSUVO85wpYPO7SJuD37Z6om_ymdyFSZ0WOn5w8w,15677
111
111
  sempy_labs/admin/_dataflows.py,sha256=u7XrYSJg4_nagle4zv46BN70goL3OHbgO_QXpwRZqjk,1457
112
112
  sempy_labs/admin/_datasets.py,sha256=C49EdUj4KOshbUrQdZDsiQ4CYe1KgvF1dFEosv7J6NE,6184
113
113
  sempy_labs/admin/_domains.py,sha256=ARR7hDGUcXq-3RC8CFiryV-DxZE9rEnZvWUAj4GPT8s,15209
@@ -201,10 +201,10 @@ sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visua
201
201
  sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json,sha256=wBVuNc8S2NaUA0FC708w6stmR2djNZp8nAsHMqesgsc,293
202
202
  sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json,sha256=mlY6t9OlSe-Y6_QmXJpS1vggU6Y3FjISUKECL8FVSg8,931
203
203
  sempy_labs/theme/__init__.py,sha256=JN0z8w_Hc7VUIchRbpY-rjU6879msrFiSTRtMMlr_5g,185
204
- sempy_labs/theme/_org_themes.py,sha256=A2T4aBHkrMsJY5I9D4adDyXL3hFPp5nHSPzqXsLdAzY,2400
204
+ sempy_labs/theme/_org_themes.py,sha256=XRROikkjycJG9CS3rhCY3HSdxsmSAoAJfwYMEkt58Hk,3040
205
205
  sempy_labs/tom/__init__.py,sha256=Qbs8leW0fjzvWwOjyWK3Hjeehu7IvpB1beASGsi28bk,121
206
- sempy_labs/tom/_model.py,sha256=dmafD4_eW_Be_HV8UQBA8JkvUthEQTEMDi4NGON-xUM,222606
207
- semantic_link_labs-0.11.0.dist-info/METADATA,sha256=r_tiSM6w7bvyPsOBz63WUhtvForzeVuHhffmbv7bCvk,27170
208
- semantic_link_labs-0.11.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
209
- semantic_link_labs-0.11.0.dist-info/top_level.txt,sha256=kiQX1y42Dbein1l3Q8jMUYyRulDjdlc2tMepvtrvixQ,11
210
- semantic_link_labs-0.11.0.dist-info/RECORD,,
206
+ sempy_labs/tom/_model.py,sha256=NfGDYSUAciUWqJ_RsEitb0vbEVL41CZohW3u8xbFGyw,222685
207
+ semantic_link_labs-0.11.1.dist-info/METADATA,sha256=WP4fZozQc_BsuPflPyMPLWQ6FrRWFKO2bDGYGLzjsK8,27267
208
+ semantic_link_labs-0.11.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
209
+ semantic_link_labs-0.11.1.dist-info/top_level.txt,sha256=kiQX1y42Dbein1l3Q8jMUYyRulDjdlc2tMepvtrvixQ,11
210
+ semantic_link_labs-0.11.1.dist-info/RECORD,,
sempy_labs/_a_lib_info.py CHANGED
@@ -1,2 +1,2 @@
1
1
  lib_name = "semanticlinklabs"
2
- lib_version = "0.11.0"
2
+ lib_version = "0.11.1"
@@ -432,10 +432,11 @@ def get_refreshables(
432
432
 
433
433
  url = _build_url(url, params)
434
434
 
435
- response = _base_api(request=url, client="fabric_sp")
435
+ responses = _base_api(request=url, client="fabric_sp")
436
436
 
437
- dfs = []
438
- for i in response.json().get("value", []):
437
+ refreshables = []
438
+
439
+ for i in responses.json().get("value", []):
439
440
  last_refresh = i.get("lastRefresh", {})
440
441
  refresh_schedule = i.get("refreshSchedule", {})
441
442
  new_data = {
@@ -473,10 +474,11 @@ def get_refreshables(
473
474
  "Refresh Schedule Notify Option": refresh_schedule.get("notifyOption"),
474
475
  "Configured By": i.get("configuredBy"),
475
476
  }
476
- dfs.append(pd.DataFrame(new_data, index=[0]))
477
477
 
478
- if dfs:
479
- df = pd.concat(dfs, ignore_index=True)
478
+ refreshables.append(new_data)
479
+
480
+ if len(refreshables) > 0:
481
+ df = pd.DataFrame(refreshables)
480
482
  _update_dataframe_datatypes(dataframe=df, column_map=columns)
481
483
 
482
484
  return df
@@ -21,6 +21,14 @@ def init_pbi_url_prefix():
21
21
 
22
22
 
23
23
  def list_org_themes() -> pd.DataFrame:
24
+ """
25
+ Lists all `organizational themes <https://www.linkedin.com/pulse/organizational-themes-preview-pbicorevisuals-j7jxe/>`_ in Power BI. Note that this uses an internal API and may break at any time.
26
+
27
+ Returns:
28
+ --------
29
+ pandas.DataFrame
30
+ A dataframe containing the details of the organizational themes.
31
+ """
24
32
 
25
33
  init_pbi_url_prefix()
26
34
 
@@ -72,6 +80,19 @@ def resolve_theme_id(theme: str | UUID):
72
80
 
73
81
 
74
82
  def get_org_theme_json(theme: str | UUID) -> dict:
83
+ """
84
+ Retrieves the JSON representation of an organization theme by its name or ID.
85
+
86
+ Parameters:
87
+ ----------
88
+ theme : str | uuid.UUID
89
+ The name or ID of the organization theme.
90
+
91
+ Returns:
92
+ --------
93
+ dict
94
+ The JSON representation of the organization theme.
95
+ """
75
96
 
76
97
  init_pbi_url_prefix()
77
98
 
sempy_labs/tom/_model.py CHANGED
@@ -929,15 +929,11 @@ class TOMWrapper:
929
929
  from_column: str,
930
930
  to_table: str,
931
931
  to_column: str,
932
- from_cardinality: Literal["Many", "One", "None"],
933
- to_cardinality: Literal["Many", "One", "None"],
934
- cross_filtering_behavior: Literal[
935
- "Automatic", "OneDirection", "BothDirections"
936
- ] = "Automatic",
932
+ from_cardinality: str,
933
+ to_cardinality: str,
934
+ cross_filtering_behavior: Optional[str] = None,
937
935
  is_active: bool = True,
938
- security_filtering_behavior: Optional[
939
- Literal["None", "OneDirection", "BothDirections"]
940
- ] = None,
936
+ security_filtering_behavior: Optional[str] = None,
941
937
  rely_on_referential_integrity: bool = False,
942
938
  ):
943
939
  """
@@ -953,22 +949,29 @@ class TOMWrapper:
953
949
  Name of the table on the 'to' side of the relationship.
954
950
  to_column : str
955
951
  Name of the column on the 'to' side of the relationship.
956
- from_cardinality : Literal["Many", "One", "None"]
957
- The cardinality of the 'from' side of the relationship.
958
- to_cardinality : Literal["Many", "One", "None"]
959
- The cardinality of the 'to' side of the relationship.
960
- cross_filtering_behavior : Literal["Automatic", "OneDirection", "BothDirections"], default="Automatic"
952
+ from_cardinality : str
953
+ The cardinality of the 'from' side of the relationship. Options: ['Many', 'One', 'None'].
954
+ to_cardinality : str
955
+ The cardinality of the 'to' side of the relationship. Options: ['Many', 'One', 'None'].
956
+ cross_filtering_behavior : str, default=None
961
957
  Setting for the cross filtering behavior of the relationship. Options: ('Automatic', 'OneDirection', 'BothDirections').
958
+ Defaults to None which resolves to 'Automatic'.
962
959
  is_active : bool, default=True
963
960
  Setting for whether the relationship is active or not.
964
- security_filtering_behavior : Literal["None, "OneDirection", "BothDirections"], default="OneDirection"
965
- Setting for the security filtering behavior of the relationship.
961
+ security_filtering_behavior : str, default=None
962
+ Setting for the security filtering behavior of the relationship. Options: ('None', 'OneDirection', 'BothDirections').
963
+ Defaults to None which resolves to 'OneDirection'.
966
964
  rely_on_referential_integrity : bool, default=False
967
965
  Setting for the rely on referential integrity of the relationship.
968
966
  """
969
967
  import Microsoft.AnalysisServices.Tabular as TOM
970
968
  import System
971
969
 
970
+ if not cross_filtering_behavior:
971
+ cross_filtering_behavior = "Automatic"
972
+ if not security_filtering_behavior:
973
+ security_filtering_behavior = "OneDirection"
974
+
972
975
  for var_name in [
973
976
  "from_cardinality",
974
977
  "to_cardinality",