semantic-link-labs 0.5.0__py3-none-any.whl → 0.7.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.

Files changed (113) hide show
  1. semantic_link_labs-0.7.0.dist-info/METADATA +148 -0
  2. semantic_link_labs-0.7.0.dist-info/RECORD +111 -0
  3. {semantic_link_labs-0.5.0.dist-info → semantic_link_labs-0.7.0.dist-info}/WHEEL +1 -1
  4. sempy_labs/__init__.py +45 -15
  5. sempy_labs/_ai.py +42 -85
  6. sempy_labs/_bpa_translation/_translations_am-ET.po +828 -0
  7. sempy_labs/_bpa_translation/_translations_ar-AE.po +860 -0
  8. sempy_labs/_bpa_translation/_translations_cs-CZ.po +894 -0
  9. sempy_labs/_bpa_translation/_translations_da-DK.po +894 -0
  10. sempy_labs/_bpa_translation/_translations_de-DE.po +933 -0
  11. sempy_labs/_bpa_translation/_translations_el-GR.po +936 -0
  12. sempy_labs/_bpa_translation/_translations_es-ES.po +915 -0
  13. sempy_labs/_bpa_translation/_translations_fa-IR.po +883 -0
  14. sempy_labs/_bpa_translation/_translations_fr-FR.po +938 -0
  15. sempy_labs/_bpa_translation/_translations_ga-IE.po +912 -0
  16. sempy_labs/_bpa_translation/_translations_he-IL.po +855 -0
  17. sempy_labs/_bpa_translation/_translations_hi-IN.po +892 -0
  18. sempy_labs/_bpa_translation/_translations_hu-HU.po +910 -0
  19. sempy_labs/_bpa_translation/_translations_is-IS.po +887 -0
  20. sempy_labs/_bpa_translation/_translations_it-IT.po +931 -0
  21. sempy_labs/_bpa_translation/_translations_ja-JP.po +805 -0
  22. sempy_labs/_bpa_translation/_translations_nl-NL.po +924 -0
  23. sempy_labs/_bpa_translation/_translations_pl-PL.po +913 -0
  24. sempy_labs/_bpa_translation/_translations_pt-BR.po +909 -0
  25. sempy_labs/_bpa_translation/_translations_pt-PT.po +904 -0
  26. sempy_labs/_bpa_translation/_translations_ru-RU.po +909 -0
  27. sempy_labs/_bpa_translation/_translations_ta-IN.po +922 -0
  28. sempy_labs/_bpa_translation/_translations_te-IN.po +896 -0
  29. sempy_labs/_bpa_translation/_translations_th-TH.po +873 -0
  30. sempy_labs/_bpa_translation/_translations_zh-CN.po +767 -0
  31. sempy_labs/_bpa_translation/_translations_zu-ZA.po +916 -0
  32. sempy_labs/_clear_cache.py +12 -8
  33. sempy_labs/_connections.py +77 -70
  34. sempy_labs/_dax.py +7 -9
  35. sempy_labs/_generate_semantic_model.py +75 -90
  36. sempy_labs/_helper_functions.py +371 -20
  37. sempy_labs/_icons.py +23 -0
  38. sempy_labs/_list_functions.py +855 -427
  39. sempy_labs/_model_auto_build.py +4 -3
  40. sempy_labs/_model_bpa.py +307 -1118
  41. sempy_labs/_model_bpa_bulk.py +363 -0
  42. sempy_labs/_model_bpa_rules.py +831 -0
  43. sempy_labs/_model_dependencies.py +20 -16
  44. sempy_labs/_one_lake_integration.py +18 -12
  45. sempy_labs/_query_scale_out.py +116 -129
  46. sempy_labs/_refresh_semantic_model.py +23 -10
  47. sempy_labs/_translations.py +367 -288
  48. sempy_labs/_vertipaq.py +152 -123
  49. sempy_labs/directlake/__init__.py +7 -1
  50. sempy_labs/directlake/_directlake_schema_compare.py +33 -30
  51. sempy_labs/directlake/_directlake_schema_sync.py +60 -77
  52. sempy_labs/directlake/_dl_helper.py +233 -0
  53. sempy_labs/directlake/_get_directlake_lakehouse.py +7 -8
  54. sempy_labs/directlake/_get_shared_expression.py +5 -3
  55. sempy_labs/directlake/_guardrails.py +20 -16
  56. sempy_labs/directlake/_list_directlake_model_calc_tables.py +17 -10
  57. sempy_labs/directlake/_show_unsupported_directlake_objects.py +3 -2
  58. sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +10 -5
  59. sempy_labs/directlake/_update_directlake_partition_entity.py +169 -22
  60. sempy_labs/directlake/_warm_cache.py +7 -4
  61. sempy_labs/lakehouse/_get_lakehouse_columns.py +1 -1
  62. sempy_labs/lakehouse/_get_lakehouse_tables.py +65 -71
  63. sempy_labs/lakehouse/_lakehouse.py +5 -3
  64. sempy_labs/lakehouse/_shortcuts.py +20 -13
  65. sempy_labs/migration/__init__.py +1 -1
  66. sempy_labs/migration/_create_pqt_file.py +184 -186
  67. sempy_labs/migration/_migrate_calctables_to_lakehouse.py +240 -269
  68. sempy_labs/migration/_migrate_calctables_to_semantic_model.py +78 -77
  69. sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +444 -425
  70. sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +96 -102
  71. sempy_labs/migration/_migration_validation.py +2 -2
  72. sempy_labs/migration/_refresh_calc_tables.py +94 -100
  73. sempy_labs/report/_BPAReportTemplate.json +232 -0
  74. sempy_labs/report/__init__.py +6 -2
  75. sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json +9 -0
  76. sempy_labs/report/_bpareporttemplate/.platform +11 -0
  77. sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +710 -0
  78. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +11 -0
  79. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/1b08bce3bebabb0a27a8/visual.json +191 -0
  80. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/2f22ddb70c301693c165/visual.json +438 -0
  81. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/3b1182230aa6c600b43a/visual.json +127 -0
  82. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/58577ba6380c69891500/visual.json +576 -0
  83. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/a2a8fa5028b3b776c96c/visual.json +207 -0
  84. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/adfd47ef30652707b987/visual.json +506 -0
  85. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/b6a80ee459e716e170b1/visual.json +127 -0
  86. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/ce3130a721c020cc3d81/visual.json +513 -0
  87. sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +8 -0
  88. sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/visuals/66e60dfb526437cd78d1/visual.json +112 -0
  89. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +11 -0
  90. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/07deb8bce824e1be37d7/visual.json +513 -0
  91. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0b1c68838818b32ad03b/visual.json +352 -0
  92. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0c171de9d2683d10b930/visual.json +37 -0
  93. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0efa01be0510e40a645e/visual.json +542 -0
  94. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/6bf2f0eb830ab53cc668/visual.json +221 -0
  95. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/88d8141cb8500b60030c/visual.json +127 -0
  96. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/a753273590beed656a03/visual.json +576 -0
  97. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/b8fdc82cddd61ac447bc/visual.json +127 -0
  98. sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +9 -0
  99. sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json +38 -0
  100. sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +10 -0
  101. sempy_labs/report/_bpareporttemplate/definition/report.json +176 -0
  102. sempy_labs/report/_bpareporttemplate/definition/version.json +4 -0
  103. sempy_labs/report/_bpareporttemplate/definition.pbir +14 -0
  104. sempy_labs/report/_generate_report.py +260 -139
  105. sempy_labs/report/_report_functions.py +90 -59
  106. sempy_labs/report/_report_rebind.py +40 -34
  107. sempy_labs/tom/__init__.py +1 -4
  108. sempy_labs/tom/_model.py +601 -181
  109. semantic_link_labs-0.5.0.dist-info/METADATA +0 -22
  110. semantic_link_labs-0.5.0.dist-info/RECORD +0 -53
  111. sempy_labs/directlake/_fallback.py +0 -58
  112. {semantic_link_labs-0.5.0.dist-info → semantic_link_labs-0.7.0.dist-info}/LICENSE +0 -0
  113. {semantic_link_labs-0.5.0.dist-info → semantic_link_labs-0.7.0.dist-info}/top_level.txt +0 -0
@@ -1,22 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: semantic-link-labs
3
- Version: 0.5.0
4
- Summary: Semantic Link Labs project
5
- Author: Microsoft Corporation
6
- License: MIT License
7
- Project-URL: Repository, https://github.com/microsoft/semantic-link-labs.git
8
- Classifier: Development Status :: 3 - Alpha
9
- Classifier: Intended Audience :: Developers
10
- Classifier: Intended Audience :: Education
11
- Classifier: Intended Audience :: Science/Research
12
- Classifier: Programming Language :: Python :: 3.10
13
- Classifier: Programming Language :: Python :: 3 :: Only
14
- Classifier: Framework :: Jupyter
15
- Requires-Python: <3.12,>=3.10
16
- License-File: LICENSE
17
- Requires-Dist: semantic-link-sempy >=0.7.5
18
- Requires-Dist: anytree
19
- Requires-Dist: powerbiclient
20
- Provides-Extra: test
21
- Requires-Dist: pytest >=8.2.1 ; extra == 'test'
22
-
@@ -1,53 +0,0 @@
1
- sempy_labs/__init__.py,sha256=Xpq66PKo8KK7QIP0QYme_X_FyfZnpOBsli2V4bnMNYo,4843
2
- sempy_labs/_ai.py,sha256=WNCLh8wzZ7brXJWe2CNC79D9NHeS-2KpAWCIAlvZD7U,17784
3
- sempy_labs/_clear_cache.py,sha256=ELHcD4smBS3EiHEO1Ux97yV_Q7j_zB8TJJ4-kS1ylCU,1394
4
- sempy_labs/_connections.py,sha256=ghYtHBLTaTmYwgllh6I3zfFjG5lcxM2BAQR52B3z-t0,7795
5
- sempy_labs/_dax.py,sha256=u4qVxsu2dVaOJmso-ErScNZ5yI4lGQTlon_jmrAzvGs,2148
6
- sempy_labs/_generate_semantic_model.py,sha256=rBi1jmLQJNq9NOt56AqqYzAXBJ2DX2bpG7FYrHXyiEA,9180
7
- sempy_labs/_helper_functions.py,sha256=RlLtpEmBpoX285sSFKBBjkPfXqp8_FSIwYcoR4rZG58,14251
8
- sempy_labs/_icons.py,sha256=WkmhtLcQPO1PlcwFklb253dBLpwGUyXLwxn9_-nu3s0,215
9
- sempy_labs/_list_functions.py,sha256=Gc49_Q5e9CmdsVntvq0wFv1qdGInhhejxcvn-Vokyds,80791
10
- sempy_labs/_model_auto_build.py,sha256=SGz3ASfKJBpYdgFRPoofiU7kpsjPDBkeB3qCntKb6qs,5083
11
- sempy_labs/_model_bpa.py,sha256=xEp5LdqoMLBsUDzGWnfNrFCwr9tz9-2QDSi0NwnvXFI,63191
12
- sempy_labs/_model_dependencies.py,sha256=S8u0f7AAVL6Zk1Jm35EqbLsIEGD8KwBGc_kH1AlBI1A,12948
13
- sempy_labs/_one_lake_integration.py,sha256=XlGKghnYtXIprUdUI5fQj0ddshxE_AvUowb9YIrL2CE,6184
14
- sempy_labs/_query_scale_out.py,sha256=xkyCFz7vchxB6c6cMIhZXUWifOduanSbv1KGQbkmVls,15214
15
- sempy_labs/_refresh_semantic_model.py,sha256=bTVUNEdQiJDxQh1T0g4aYU3-VHaN9__qFAOYbx85-O0,6622
16
- sempy_labs/_translations.py,sha256=sH_-W8vdQ632lY68RxM5a2lCmy4MRDFXLxjvMuw4xQg,18054
17
- sempy_labs/_vertipaq.py,sha256=04hQ-A4wuW6gi4zIccmVoDDByk34Rp-QTkRXSo6XLfI,33266
18
- sempy_labs/directlake/__init__.py,sha256=HbfHvDvGE4H-xSbV6JO7TUb4HoLGJf2AeuqeQxIuuJ4,1689
19
- sempy_labs/directlake/_directlake_schema_compare.py,sha256=axqSYQHMs3zAhFAF3DMNdm2SK1k-95j_Zh-pZZXv8SQ,4636
20
- sempy_labs/directlake/_directlake_schema_sync.py,sha256=EMDPAVn53EN1PM769AxKspb_cVDcCazz4kHMKvWqJMQ,5119
21
- sempy_labs/directlake/_fallback.py,sha256=2dX5MRU2d04_jA799TaPezSQJWW-NrflDtdURge6Ceo,1995
22
- sempy_labs/directlake/_get_directlake_lakehouse.py,sha256=vEY1QBU7gAdoVQIGl59T_1TTYuXbHgk3pZA41EkVkl8,2358
23
- sempy_labs/directlake/_get_shared_expression.py,sha256=ngZCnoOjj278n6Yql7TVZ36z89HDej9JSRuoRWALxDs,1926
24
- sempy_labs/directlake/_guardrails.py,sha256=iReOycR6caBuBWpEOIpicZS_7kkSGJLTUDf2Ch0QUCE,2280
25
- sempy_labs/directlake/_list_directlake_model_calc_tables.py,sha256=C6C8WycGV4NQOQifh3XexBZx9hm30-Ac56sCo4MfqgI,2082
26
- sempy_labs/directlake/_show_unsupported_directlake_objects.py,sha256=oumzh7mXghkFFqFDDK7bBmNMRWnOZeE1DxuMsEPSBzo,3365
27
- sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py,sha256=lY4JlbKwow664sXK4cZ22PFTy9Gw79R-6TYx36uz8SY,3183
28
- sempy_labs/directlake/_update_directlake_partition_entity.py,sha256=KzUvP4r0-UOylXgM46cVKoUlbIFEpxO3ThMQl9JU-Gw,3140
29
- sempy_labs/directlake/_warm_cache.py,sha256=codsJhifbn8yO8Cjo40syRtFnIArIvpWQ726WZ88ZsQ,8211
30
- sempy_labs/lakehouse/__init__.py,sha256=i6VRx4dR1SIN-1GxioiNwhC4FxbozRCIz5TfXjb9rKc,587
31
- sempy_labs/lakehouse/_get_lakehouse_columns.py,sha256=QGmuH3uFuxv_mIjm4HTXaX-s1UFb9BbHnaCx9kTHgy8,2594
32
- sempy_labs/lakehouse/_get_lakehouse_tables.py,sha256=g_kKtntm5uPbIxNrunOVhzuKvJfC-9g5awxul2KSmUI,9085
33
- sempy_labs/lakehouse/_lakehouse.py,sha256=ovm5S4hk3aLChFCzUGWIJmL3wJ47wRycoh0mbBd8pRA,2774
34
- sempy_labs/lakehouse/_shortcuts.py,sha256=voKile93krzWK7ccmKVk2_fv1lioyAq5rk8YrJ6qy6k,6895
35
- sempy_labs/migration/__init__.py,sha256=l5v8pC2INdNwbAKVmvWpuVxs6lpb6omim_4BPOmNo4E,1042
36
- sempy_labs/migration/_create_pqt_file.py,sha256=PGC21nhIsE9TKyz110tYaf4Nle6-eV1xqvBOqUSEDQY,8986
37
- sempy_labs/migration/_migrate_calctables_to_lakehouse.py,sha256=ajFvHauFdEsbgxvn9JXj2kiXaRtJLEjwX4hWQG7FQy0,20609
38
- sempy_labs/migration/_migrate_calctables_to_semantic_model.py,sha256=Co2f579vSwkWZ95SlBStS-XJ73YwgcdfAMlJbUv_pkk,6343
39
- sempy_labs/migration/_migrate_model_objects_to_semantic_model.py,sha256=q4oYBDHXvcTExeufmcOOeK3jv_9A2Xef5ksyEwG0PfA,23801
40
- sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py,sha256=qohJC6ARjM8NiMH7nZEKqUEXMrh-IqhdeUzgrBNZ1DQ,7028
41
- sempy_labs/migration/_migration_validation.py,sha256=R7xz_OFmYRO4fxFWxvdl_ORZQKzqflsSBnGapmS067c,2508
42
- sempy_labs/migration/_refresh_calc_tables.py,sha256=VumJaTiA3bTfm8jWwyIl7gxW4-a7W_3auGjWRcvd65g,6043
43
- sempy_labs/report/__init__.py,sha256=fkjbkAXZuH7VnAn-k3iB4dngWZKaX-k0bxS6mBa9iAs,846
44
- sempy_labs/report/_generate_report.py,sha256=uFbTO_7GSItt5wM_yZrKybEQ3kQoqXKbY1bGzlOW5c0,8502
45
- sempy_labs/report/_report_functions.py,sha256=5rzYaS_8Gj9FEyCgysWIsLxiE-DaCgPNArI9YIe4Jvo,29515
46
- sempy_labs/report/_report_rebind.py,sha256=hsXXOl6C06hH-SU_TaKBInjIXHf-uRZru7uCHpbRJYA,4756
47
- sempy_labs/tom/__init__.py,sha256=hFwkmWk5AZ7GK1LWqoqaK1g4gDmu9mZMkfLQvLsR_eE,130
48
- sempy_labs/tom/_model.py,sha256=a3EXOj_yXxl0aQQfWa5bolC2q-KdCgQMF8CrrQ6aPrU,136859
49
- semantic_link_labs-0.5.0.dist-info/LICENSE,sha256=ws_MuBL-SCEBqPBFl9_FqZkaaydIJmxHrJG2parhU4M,1141
50
- semantic_link_labs-0.5.0.dist-info/METADATA,sha256=TINv_gW59FHx2uvyUwYSH9MxKls6eO7XYji03ab-kYk,764
51
- semantic_link_labs-0.5.0.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
52
- semantic_link_labs-0.5.0.dist-info/top_level.txt,sha256=kiQX1y42Dbein1l3Q8jMUYyRulDjdlc2tMepvtrvixQ,11
53
- semantic_link_labs-0.5.0.dist-info/RECORD,,
@@ -1,58 +0,0 @@
1
- import sempy
2
- import sempy.fabric as fabric
3
- import numpy as np
4
- from typing import List, Optional, Union
5
- import sempy_labs._icons as icons
6
-
7
- def check_fallback_reason(dataset: str, workspace: Optional[str] = None):
8
- """
9
- Shows the reason a table in a Direct Lake semantic model would fallback to DirectQuery.
10
-
11
- Parameters
12
- ----------
13
- dataset : str
14
- Name of the semantic model.
15
- workspace : str, default=None
16
- The Fabric workspace name.
17
- Defaults to None which resolves to the workspace of the attached lakehouse
18
- or if no lakehouse attached, resolves to the workspace of the notebook.
19
-
20
- Returns
21
- -------
22
- pandas.DataFrame
23
- The tables in the semantic model and their fallback reason.
24
- """
25
-
26
- workspace = fabric.resolve_workspace_name(workspace)
27
-
28
- dfP = fabric.list_partitions(dataset=dataset, workspace=workspace)
29
- dfP_filt = dfP[dfP["Mode"] == "DirectLake"]
30
-
31
- if len(dfP_filt) == 0:
32
- raise ValueError(f"{icons.red_dot} The '{dataset}' semantic model is not in Direct Lake. This function is only applicable to Direct Lake semantic models.")
33
- else:
34
- df = fabric.evaluate_dax(
35
- dataset=dataset,
36
- workspace=workspace,
37
- dax_string="""
38
- SELECT [TableName] AS [Table Name],[FallbackReason] AS [FallbackReasonID]
39
- FROM $SYSTEM.TMSCHEMA_DELTA_TABLE_METADATA_STORAGES
40
- """,
41
- )
42
-
43
- value_mapping = {
44
- 0: "No reason for fallback",
45
- 1: "This table is not framed",
46
- 2: "This object is a view in the lakehouse",
47
- 3: "The table does not exist in the lakehouse",
48
- 4: "Transient error",
49
- 5: "Using OLS will result in fallback to DQ",
50
- 6: "Using RLS will result in fallback to DQ",
51
- }
52
-
53
- # Create a new column based on the mapping
54
- df["Fallback Reason Detail"] = np.vectorize(value_mapping.get)(
55
- df["FallbackReasonID"]
56
- )
57
-
58
- return df