semantic-link-labs 0.8.11__tar.gz → 0.9.0__tar.gz

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 (208) hide show
  1. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/.github/workflows/build.yaml +6 -0
  2. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/PKG-INFO +5 -5
  3. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/README.md +2 -1
  4. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/docs/requirements.txt +0 -1
  5. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/docs/source/conf.py +1 -1
  6. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/environment.yml +1 -1
  7. semantic_link_labs-0.9.0/notebooks/Capacity Migration.ipynb +340 -0
  8. semantic_link_labs-0.9.0/notebooks/Semantic Model Management.ipynb +144 -0
  9. semantic_link_labs-0.9.0/notebooks/Service Principal.ipynb +218 -0
  10. semantic_link_labs-0.9.0/notebooks/Tabular Object Model.ipynb +786 -0
  11. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/pyproject.toml +3 -4
  12. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/semantic_link_labs.egg-info/PKG-INFO +5 -5
  13. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/semantic_link_labs.egg-info/SOURCES.txt +2 -0
  14. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/semantic_link_labs.egg-info/requires.txt +1 -2
  15. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/__init__.py +29 -2
  16. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_authentication.py +80 -4
  17. semantic_link_labs-0.9.0/src/sempy_labs/_capacities.py +1260 -0
  18. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_capacity_migration.py +7 -37
  19. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_clear_cache.py +8 -8
  20. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_deployment_pipelines.py +1 -1
  21. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_gateways.py +2 -0
  22. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_generate_semantic_model.py +8 -0
  23. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_helper_functions.py +119 -79
  24. semantic_link_labs-0.9.0/src/sempy_labs/_job_scheduler.py +227 -0
  25. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_list_functions.py +40 -31
  26. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_model_bpa.py +207 -204
  27. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_model_bpa_bulk.py +2 -2
  28. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_model_bpa_rules.py +3 -3
  29. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_notebooks.py +2 -0
  30. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_query_scale_out.py +8 -0
  31. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_sql.py +11 -7
  32. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_vertipaq.py +4 -2
  33. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_warehouses.py +6 -6
  34. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/admin/_basic_functions.py +156 -103
  35. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/admin/_domains.py +7 -2
  36. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/admin/_git.py +4 -1
  37. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/admin/_items.py +7 -2
  38. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/admin/_scanner.py +7 -4
  39. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/directlake/_directlake_schema_compare.py +7 -2
  40. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/directlake/_directlake_schema_sync.py +6 -0
  41. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/directlake/_dl_helper.py +51 -31
  42. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/directlake/_get_directlake_lakehouse.py +20 -27
  43. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/directlake/_update_directlake_partition_entity.py +5 -0
  44. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/lakehouse/_get_lakehouse_columns.py +17 -22
  45. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/lakehouse/_get_lakehouse_tables.py +20 -32
  46. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/lakehouse/_lakehouse.py +2 -19
  47. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_generate_report.py +45 -0
  48. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_report_bpa.py +2 -2
  49. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/tom/_model.py +97 -16
  50. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/tests/test_tom.py +2 -0
  51. semantic_link_labs-0.8.11/notebooks/Capacity Migration.ipynb +0 -1
  52. semantic_link_labs-0.8.11/notebooks/Tabular Object Model.ipynb +0 -1
  53. semantic_link_labs-0.8.11/src/sempy_labs/_capacities.py +0 -690
  54. semantic_link_labs-0.8.11/src/sempy_labs/_job_scheduler.py +0 -92
  55. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  56. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  57. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/.github/ISSUE_TEMPLATE/issue--question---advice-needed.md +0 -0
  58. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/.github/workflows/codeql.yaml +0 -0
  59. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/.gitignore +0 -0
  60. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/.readthedocs.yaml +0 -0
  61. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/.vscode/settings.json +0 -0
  62. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/CODE_OF_CONDUCT.md +0 -0
  63. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/LICENSE +0 -0
  64. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/SECURITY.md +0 -0
  65. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/SUPPORT.md +0 -0
  66. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/docs/Makefile +0 -0
  67. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/docs/make.bat +0 -0
  68. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/docs/source/index.rst +0 -0
  69. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/docs/source/modules.rst +0 -0
  70. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/notebooks/Best Practice Analyzer Report.ipynb +0 -0
  71. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/notebooks/Migration to Direct Lake.ipynb +0 -0
  72. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/notebooks/Model Optimization.ipynb +0 -0
  73. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/notebooks/Query Scale Out.ipynb +0 -0
  74. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/notebooks/Report Analysis.ipynb +0 -0
  75. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/notebooks/SQL.ipynb +0 -0
  76. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/notebooks/Semantic Model Refresh.ipynb +0 -0
  77. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/setup.cfg +0 -0
  78. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/semantic_link_labs.egg-info/dependency_links.txt +0 -0
  79. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/semantic_link_labs.egg-info/top_level.txt +0 -0
  80. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_ai.py +0 -0
  81. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_am-ET.po +0 -0
  82. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_ar-AE.po +0 -0
  83. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_bg-BG.po +0 -0
  84. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_ca-ES.po +0 -0
  85. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_cs-CZ.po +0 -0
  86. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_da-DK.po +0 -0
  87. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_de-DE.po +0 -0
  88. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_el-GR.po +0 -0
  89. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_es-ES.po +0 -0
  90. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_fa-IR.po +0 -0
  91. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_fi-FI.po +0 -0
  92. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_fr-FR.po +0 -0
  93. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_ga-IE.po +0 -0
  94. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_he-IL.po +0 -0
  95. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_hi-IN.po +0 -0
  96. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_hu-HU.po +0 -0
  97. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_id-ID.po +0 -0
  98. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_is-IS.po +0 -0
  99. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_it-IT.po +0 -0
  100. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_ja-JP.po +0 -0
  101. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_ko-KR.po +0 -0
  102. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_mt-MT.po +0 -0
  103. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_nl-NL.po +0 -0
  104. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_pl-PL.po +0 -0
  105. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_pt-BR.po +0 -0
  106. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_pt-PT.po +0 -0
  107. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_ro-RO.po +0 -0
  108. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_ru-RU.po +0 -0
  109. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_sk-SK.po +0 -0
  110. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_sl-SL.po +0 -0
  111. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_sv-SE.po +0 -0
  112. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_ta-IN.po +0 -0
  113. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_te-IN.po +0 -0
  114. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_th-TH.po +0 -0
  115. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_tr-TR.po +0 -0
  116. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_uk-UA.po +0 -0
  117. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_zh-CN.po +0 -0
  118. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po +0 -0
  119. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_connections.py +0 -0
  120. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_data_pipelines.py +0 -0
  121. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_dataflows.py +0 -0
  122. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_dax.py +0 -0
  123. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_documentation.py +0 -0
  124. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_environments.py +0 -0
  125. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_eventhouses.py +0 -0
  126. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_eventstreams.py +0 -0
  127. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_external_data_shares.py +0 -0
  128. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_git.py +0 -0
  129. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_icons.py +0 -0
  130. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_kql_databases.py +0 -0
  131. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_kql_querysets.py +0 -0
  132. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_managed_private_endpoints.py +0 -0
  133. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_mirrored_databases.py +0 -0
  134. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_mirrored_warehouses.py +0 -0
  135. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_ml_experiments.py +0 -0
  136. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_ml_models.py +0 -0
  137. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_model_auto_build.py +0 -0
  138. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_model_dependencies.py +0 -0
  139. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_one_lake_integration.py +0 -0
  140. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_refresh_semantic_model.py +0 -0
  141. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_spark.py +0 -0
  142. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_translations.py +0 -0
  143. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_workloads.py +0 -0
  144. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_workspace_identity.py +0 -0
  145. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/_workspaces.py +0 -0
  146. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/admin/__init__.py +0 -0
  147. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/admin/_external_data_share.py +0 -0
  148. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/directlake/__init__.py +0 -0
  149. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/directlake/_generate_shared_expression.py +0 -0
  150. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/directlake/_get_shared_expression.py +0 -0
  151. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/directlake/_guardrails.py +0 -0
  152. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/directlake/_list_directlake_model_calc_tables.py +0 -0
  153. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/directlake/_show_unsupported_directlake_objects.py +0 -0
  154. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +0 -0
  155. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/directlake/_warm_cache.py +0 -0
  156. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/lakehouse/__init__.py +0 -0
  157. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/lakehouse/_shortcuts.py +0 -0
  158. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/migration/__init__.py +0 -0
  159. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/migration/_create_pqt_file.py +0 -0
  160. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/migration/_migrate_calctables_to_lakehouse.py +0 -0
  161. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/migration/_migrate_calctables_to_semantic_model.py +0 -0
  162. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +0 -0
  163. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +0 -0
  164. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/migration/_migration_validation.py +0 -0
  165. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/migration/_refresh_calc_tables.py +0 -0
  166. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_BPAReportTemplate.json +0 -0
  167. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/__init__.py +0 -0
  168. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json +0 -0
  169. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/.platform +0 -0
  170. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +0 -0
  171. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +0 -0
  172. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/1b08bce3bebabb0a27a8/visual.json +0 -0
  173. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/2f22ddb70c301693c165/visual.json +0 -0
  174. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/3b1182230aa6c600b43a/visual.json +0 -0
  175. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/58577ba6380c69891500/visual.json +0 -0
  176. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/a2a8fa5028b3b776c96c/visual.json +0 -0
  177. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/adfd47ef30652707b987/visual.json +0 -0
  178. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/b6a80ee459e716e170b1/visual.json +0 -0
  179. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/ce3130a721c020cc3d81/visual.json +0 -0
  180. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +0 -0
  181. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/visuals/66e60dfb526437cd78d1/visual.json +0 -0
  182. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +0 -0
  183. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/07deb8bce824e1be37d7/visual.json +0 -0
  184. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0b1c68838818b32ad03b/visual.json +0 -0
  185. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0c171de9d2683d10b930/visual.json +0 -0
  186. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0efa01be0510e40a645e/visual.json +0 -0
  187. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/6bf2f0eb830ab53cc668/visual.json +0 -0
  188. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/88d8141cb8500b60030c/visual.json +0 -0
  189. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/a753273590beed656a03/visual.json +0 -0
  190. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/b8fdc82cddd61ac447bc/visual.json +0 -0
  191. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +0 -0
  192. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json +0 -0
  193. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +0 -0
  194. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/report.json +0 -0
  195. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition/version.json +0 -0
  196. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_bpareporttemplate/definition.pbir +0 -0
  197. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_download_report.py +0 -0
  198. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_paginated.py +0 -0
  199. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_report_bpa_rules.py +0 -0
  200. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_report_functions.py +0 -0
  201. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_report_helper.py +0 -0
  202. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_report_list_functions.py +0 -0
  203. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_report_rebind.py +0 -0
  204. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/report/_reportwrapper.py +0 -0
  205. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/src/sempy_labs/tom/__init__.py +0 -0
  206. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/tests/__init__.py +0 -0
  207. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/tests/test_friendly_case.py +0 -0
  208. {semantic_link_labs-0.8.11 → semantic_link_labs-0.9.0}/tests/test_shortcuts.py +0 -0
@@ -16,6 +16,12 @@ jobs:
16
16
  with:
17
17
  python-version: "3.10"
18
18
 
19
+ - name: Setup dotnet
20
+ uses: actions/setup-dotnet@v4
21
+ with:
22
+ dotnet-version: |
23
+ 8.0.x
24
+
19
25
  - name: Get Date
20
26
  id: get-date
21
27
  run: echo "today=$(/bin/date -u '+%Y%m%d')" >> $GITHUB_OUTPUT
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: semantic-link-labs
3
- Version: 0.8.11
3
+ Version: 0.9.0
4
4
  Summary: Semantic Link Labs for Microsoft Fabric
5
5
  Author: Microsoft Corporation
6
6
  License: MIT License
@@ -15,11 +15,10 @@ Classifier: Framework :: Jupyter
15
15
  Requires-Python: <3.12,>=3.10
16
16
  Description-Content-Type: text/markdown
17
17
  License-File: LICENSE
18
- Requires-Dist: semantic-link-sempy>=0.8.3
18
+ Requires-Dist: semantic-link-sempy>=0.8.5
19
19
  Requires-Dist: anytree
20
20
  Requires-Dist: powerbiclient
21
21
  Requires-Dist: polib
22
- Requires-Dist: azure.mgmt.resource
23
22
  Requires-Dist: jsonpath_ng
24
23
  Provides-Extra: test
25
24
  Requires-Dist: pytest>=8.2.1; extra == "test"
@@ -27,7 +26,7 @@ Requires-Dist: pytest>=8.2.1; extra == "test"
27
26
  # Semantic Link Labs
28
27
 
29
28
  [![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.8.11&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
29
+ [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.9.0&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
31
30
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
32
31
  [![Downloads](https://static.pepy.tech/badge/semantic-link-labs)](https://pepy.tech/project/semantic-link-labs)
33
32
 
@@ -142,6 +141,7 @@ An even better way to ensure the semantic-link-labs library is available in your
142
141
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
143
142
 
144
143
  ## Version History
144
+ * [0.9.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.0) (January 22, 2024)
145
145
  * [0.8.11](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.11) (December 19, 2024)
146
146
  * [0.8.10](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.10) (December 16, 2024)
147
147
  * [0.8.9](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.9) (December 4, 2024)
@@ -1,7 +1,7 @@
1
1
  # Semantic Link Labs
2
2
 
3
3
  [![PyPI version](https://badge.fury.io/py/semantic-link-labs.svg)](https://badge.fury.io/py/semantic-link-labs)
4
- [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.8.11&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
4
+ [![Read The Docs](https://readthedocs.org/projects/semantic-link-labs/badge/?version=0.9.0&style=flat)](https://readthedocs.org/projects/semantic-link-labs/)
5
5
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
6
6
  [![Downloads](https://static.pepy.tech/badge/semantic-link-labs)](https://pepy.tech/project/semantic-link-labs)
7
7
 
@@ -116,6 +116,7 @@ An even better way to ensure the semantic-link-labs library is available in your
116
116
  2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
117
117
 
118
118
  ## Version History
119
+ * [0.9.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.0) (January 22, 2024)
119
120
  * [0.8.11](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.11) (December 19, 2024)
120
121
  * [0.8.10](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.10) (December 16, 2024)
121
122
  * [0.8.9](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.9) (December 4, 2024)
@@ -11,5 +11,4 @@ anytree
11
11
  IPython
12
12
  polib
13
13
  powerbiclient
14
- azure.mgmt.resource
15
14
  jsonpath_ng
@@ -13,7 +13,7 @@ sys.path.insert(0, os.path.abspath('../../src/'))
13
13
  project = 'semantic-link-labs'
14
14
  copyright = '2024, Microsoft and community'
15
15
  author = 'Microsoft and community'
16
- release = '0.8.11'
16
+ release = '0.9.0'
17
17
 
18
18
  # -- General configuration ---------------------------------------------------
19
19
  # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
@@ -6,7 +6,7 @@ dependencies:
6
6
  - pytest-cov
7
7
  - pytest-mock
8
8
  - pip:
9
- - semantic-link-sempy>=0.8.3
9
+ - semantic-link-sempy>=0.8.5
10
10
  - azure-identity==1.7.1
11
11
  - azure-storage-blob>=12.9.0
12
12
  - pandas-stubs
@@ -0,0 +1,340 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "5c27dfd1-4fe0-4a97-92e6-ddf78889aa93",
6
+ "metadata": {
7
+ "nteract": {
8
+ "transient": {
9
+ "deleting": false
10
+ }
11
+ }
12
+ },
13
+ "source": [
14
+ "### Install the latest .whl package\n",
15
+ "\n",
16
+ "Check [here](https://pypi.org/project/semantic-link-labs/) to see the latest version."
17
+ ]
18
+ },
19
+ {
20
+ "cell_type": "code",
21
+ "execution_count": null,
22
+ "id": "d5cae9db-cef9-48a8-a351-9c5fcc99645c",
23
+ "metadata": {
24
+ "jupyter": {
25
+ "outputs_hidden": true,
26
+ "source_hidden": false
27
+ },
28
+ "nteract": {
29
+ "transient": {
30
+ "deleting": false
31
+ }
32
+ }
33
+ },
34
+ "outputs": [],
35
+ "source": [
36
+ "%pip install semantic-link-labs"
37
+ ]
38
+ },
39
+ {
40
+ "cell_type": "markdown",
41
+ "id": "2856d26d",
42
+ "metadata": {},
43
+ "source": [
44
+ "### Requirements\n",
45
+ "* Must have an Azure Subscription\n",
46
+ "* Must [register an App](https://ms.portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade)\n",
47
+ " * Permissions: Will need the Contributor role at the scope where the resources will be created, which is often the subscription level\n",
48
+ "* Azure Key Vault\n",
49
+ " * [Set up](https://learn.microsoft.com/azure/key-vault/secrets/quick-create-portal) within the Azure Subscription\n",
50
+ " * Save secrets for the Tenant ID, Client ID (Application ID), Client Secret\n",
51
+ " * Permissions: Ensure the user who will be executing the notebooks has “Key Vault Secrets User”\n",
52
+ "* Fabric Permissions\n",
53
+ " * User should be a tenant admin. This ensures they have the necessary authority to execute and manage the notebooks without encountering permission issues.\n",
54
+ "\n",
55
+ "### Result\n",
56
+ "* F skus are created for each (specified) capacity\n",
57
+ " * Within the same region as the P SKU\n",
58
+ " * Equivalent SKU size as the P SKU\n",
59
+ " * Same admins as listed on the P SKU\n",
60
+ " * All workspaces are migrated to the corresponding new capacity\n",
61
+ "* The names of the newly created F SKU capacities will be an alphanumeric lowercase version of the P SKU capacity name, suffixed with 'fsku'. As an example: \"My capacity_3!\" -> \"mycapacity3fsku\"."
62
+ ]
63
+ },
64
+ {
65
+ "cell_type": "markdown",
66
+ "id": "b195eae8",
67
+ "metadata": {},
68
+ "source": [
69
+ "### Import the library and set the initial parameters"
70
+ ]
71
+ },
72
+ {
73
+ "cell_type": "code",
74
+ "execution_count": null,
75
+ "id": "1344e286",
76
+ "metadata": {},
77
+ "outputs": [],
78
+ "source": [
79
+ "import sempy_labs as labs\n",
80
+ "import sempy_labs.admin as admin\n",
81
+ "\n",
82
+ "azure_subscription_id = '' # Enter your Azure subscription ID\n",
83
+ "resource_group = '' # Enter the name of the resource group (to be used to create the new F skus)\n",
84
+ "\n",
85
+ "key_vault_uri = '', # Enter your key vault URI\n",
86
+ "key_vault_tenant_id = '', # Enter the key vault secret storig your Tenant ID\n",
87
+ "key_vault_client_id = '', # Enter the key vault secret storig your Client ID (Applciation ID)\n",
88
+ "key_vault_client_secret = '' # Enter the key vault secret storig your Client Secret"
89
+ ]
90
+ },
91
+ {
92
+ "cell_type": "markdown",
93
+ "id": "5a3fe6e8-b8aa-4447-812b-7931831e07fe",
94
+ "metadata": {
95
+ "nteract": {
96
+ "transient": {
97
+ "deleting": false
98
+ }
99
+ }
100
+ },
101
+ "source": [
102
+ "### Migrate a single P SKU -> F SKU\n",
103
+ "Set the 'capacities' parameter to the single P SKU."
104
+ ]
105
+ },
106
+ {
107
+ "cell_type": "code",
108
+ "execution_count": null,
109
+ "id": "3655dd88",
110
+ "metadata": {},
111
+ "outputs": [],
112
+ "source": [
113
+ "with labs.service_principal_authentication(\n",
114
+ " key_vault_uri=key_vault_uri, \n",
115
+ " key_vault_tenant_id=key_vault_tenant_id,\n",
116
+ " key_vault_client_id=key_vault_client_id,\n",
117
+ " key_vault_client_secret=key_vault_client_secret):\n",
118
+ "\n",
119
+ " labs.migrate_capacities(\n",
120
+ " azure_subscription_id = azure_subscription_id,\n",
121
+ " resource_group = resource_group,\n",
122
+ " capacities = 'CapacityA',\n",
123
+ " p_sku_only = True,\n",
124
+ " )"
125
+ ]
126
+ },
127
+ {
128
+ "cell_type": "markdown",
129
+ "id": "175a59b8",
130
+ "metadata": {},
131
+ "source": [
132
+ "### Migrate a list of P SKUs to F SKUs\n",
133
+ "Set the 'capacities' parameter to a list of P SKUs."
134
+ ]
135
+ },
136
+ {
137
+ "cell_type": "code",
138
+ "execution_count": null,
139
+ "id": "3a7a80ec",
140
+ "metadata": {},
141
+ "outputs": [],
142
+ "source": [
143
+ "with labs.service_principal_authentication(\n",
144
+ " key_vault_uri=key_vault_uri, \n",
145
+ " key_vault_tenant_id=key_vault_tenant_id,\n",
146
+ " key_vault_client_id=key_vault_client_id,\n",
147
+ " key_vault_client_secret=key_vault_client_secret):\n",
148
+ "\n",
149
+ " labs.migrate_capacities(\n",
150
+ " azure_subscription_id = azure_subscription_id,\n",
151
+ " resource_group = resource_group,\n",
152
+ " capacities = ['CapacityA', 'CapacityB', 'CapacityC'],\n",
153
+ " p_sku_only = True,\n",
154
+ " )"
155
+ ]
156
+ },
157
+ {
158
+ "cell_type": "markdown",
159
+ "id": "30438799",
160
+ "metadata": {},
161
+ "source": [
162
+ "### Migrate all P SKUs to F SKUs\n",
163
+ "Set the 'capacities' parameter to None."
164
+ ]
165
+ },
166
+ {
167
+ "cell_type": "code",
168
+ "execution_count": null,
169
+ "id": "315c2dc7",
170
+ "metadata": {},
171
+ "outputs": [],
172
+ "source": [
173
+ "with labs.service_principal_authentication(\n",
174
+ " key_vault_uri=key_vault_uri, \n",
175
+ " key_vault_tenant_id=key_vault_tenant_id,\n",
176
+ " key_vault_client_id=key_vault_client_id,\n",
177
+ " key_vault_client_secret=key_vault_client_secret):\n",
178
+ "\n",
179
+ " labs.migrate_capacities(\n",
180
+ " azure_subscription_id = azure_subscription_id,\n",
181
+ " resource_group = resource_group,\n",
182
+ " capacities = None,\n",
183
+ " p_sku_only = True,\n",
184
+ " )"
185
+ ]
186
+ },
187
+ {
188
+ "cell_type": "markdown",
189
+ "id": "1d8e73b2",
190
+ "metadata": {},
191
+ "source": [
192
+ "### Migrate a list of P SKUs to F SKUs; associate each capacity with a specific resource group\n",
193
+ "This process ensures that each F SKU is created within the resource group specified in the resource_group_mapping dictionary."
194
+ ]
195
+ },
196
+ {
197
+ "cell_type": "code",
198
+ "execution_count": null,
199
+ "id": "2854bf8a",
200
+ "metadata": {},
201
+ "outputs": [],
202
+ "source": [
203
+ "resource_group_mapping = {\n",
204
+ " \"CapacityA\": \"ResourceGroupA\",\n",
205
+ " \"CapacityB\": \"ResourceGroupA\",\n",
206
+ " \"CapacityC\": \"ResourceGroupB\",\n",
207
+ "}\n",
208
+ "\n",
209
+ "with labs.service_principal_authentication(\n",
210
+ " key_vault_uri=key_vault_uri, \n",
211
+ " key_vault_tenant_id=key_vault_tenant_id,\n",
212
+ " key_vault_client_id=key_vault_client_id,\n",
213
+ " key_vault_client_secret=key_vault_client_secret):\n",
214
+ "\n",
215
+ " labs.migrate_capacities(\n",
216
+ " azure_subscription_id = azure_subscription_id,\n",
217
+ " resource_group = resource_group_mapping,\n",
218
+ " capacities = ['CapacityA', 'CapacityB', 'CapacityC'],\n",
219
+ " p_sku_only = True,\n",
220
+ " )"
221
+ ]
222
+ },
223
+ {
224
+ "cell_type": "markdown",
225
+ "id": "c3f497c8",
226
+ "metadata": {},
227
+ "source": [
228
+ "### Migrate a single source capacity to a target capacity (target capacity already created)"
229
+ ]
230
+ },
231
+ {
232
+ "cell_type": "code",
233
+ "execution_count": null,
234
+ "id": "a4f0b5a2",
235
+ "metadata": {},
236
+ "outputs": [],
237
+ "source": [
238
+ "source_capacity = '' # Enter the Source capacity name\n",
239
+ "target_capacity = '' # Enter the Target capacity name (already exists) \n",
240
+ "\n",
241
+ "admin.assign_workspaces_to_capacity(\n",
242
+ " source_capacity=source_capacity,\n",
243
+ " target_capacity=target_capacity,\n",
244
+ " workspace=None,\n",
245
+ ")"
246
+ ]
247
+ },
248
+ {
249
+ "cell_type": "markdown",
250
+ "id": "e0db744b",
251
+ "metadata": {},
252
+ "source": [
253
+ "### Migrate a list of source capacities to target capacities (target capacity already created)"
254
+ ]
255
+ },
256
+ {
257
+ "cell_type": "code",
258
+ "execution_count": null,
259
+ "id": "0e04d519",
260
+ "metadata": {},
261
+ "outputs": [],
262
+ "source": [
263
+ "capacity_mapping = {\n",
264
+ " \"capacitya\": \"capacityanew\", # Format is \"Source SKU\": \"Target SKU\"\n",
265
+ " \"capacityb\": \"capacitybnew\",\n",
266
+ " \"capacityc\": \"capacitycnew\",\n",
267
+ "}\n",
268
+ "\n",
269
+ "capacities = list(capacity_mapping.keys())\n",
270
+ "\n",
271
+ "for capacity in capacities:\n",
272
+ " admin.assign_workspaces_to_capacity(\n",
273
+ " source_capacity=capacity,\n",
274
+ " target_capacity=capacity_mapping.get(capacity),\n",
275
+ " workspace=None,\n",
276
+ " )"
277
+ ]
278
+ },
279
+ {
280
+ "cell_type": "markdown",
281
+ "id": "67787c3a",
282
+ "metadata": {},
283
+ "source": [
284
+ "### Migrate a Fabric Trial Capacity (FT1) to a Fabric Capacity (F SKU)"
285
+ ]
286
+ },
287
+ {
288
+ "cell_type": "code",
289
+ "execution_count": null,
290
+ "id": "4efb55b2",
291
+ "metadata": {},
292
+ "outputs": [],
293
+ "source": [
294
+ "with labs.service_principal_authentication(\n",
295
+ " key_vault_uri=key_vault_uri, \n",
296
+ " key_vault_tenant_id=key_vault_tenant_id,\n",
297
+ " key_vault_client_id=key_vault_client_id,\n",
298
+ " key_vault_client_secret=key_vault_client_secret):\n",
299
+ "\n",
300
+ " labs.migrate_fabric_trial_capacity(\n",
301
+ " azure_subscription_id = azure_subscription_id,\n",
302
+ " resource_group = resource_group,\n",
303
+ " source_capacity = '', # The name of the Trial capacity.\n",
304
+ " target_capacity = '', # The name of Fabric capacity (if it does not exist it will be created).\n",
305
+ " target_capacity_sku = \"F64\", # Defaults to F64 but can specify the required SKU.\n",
306
+ " target_capacity_admin_members = None, # Setting this to None will use the same admin members as the Trial capacity.\n",
307
+ " )"
308
+ ]
309
+ }
310
+ ],
311
+ "metadata": {
312
+ "kernel_info": {
313
+ "name": "synapse_pyspark"
314
+ },
315
+ "kernelspec": {
316
+ "display_name": "Synapse PySpark",
317
+ "language": "Python",
318
+ "name": "synapse_pyspark"
319
+ },
320
+ "language_info": {
321
+ "name": "python"
322
+ },
323
+ "microsoft": {
324
+ "language": "python"
325
+ },
326
+ "nteract": {
327
+ "version": "nteract-front-end@1.0.0"
328
+ },
329
+ "spark_compute": {
330
+ "compute_id": "/trident/default"
331
+ },
332
+ "synapse_widget": {
333
+ "state": {},
334
+ "version": "0.1"
335
+ },
336
+ "widgets": {}
337
+ },
338
+ "nbformat": 4,
339
+ "nbformat_minor": 5
340
+ }
@@ -0,0 +1,144 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "5c27dfd1-4fe0-4a97-92e6-ddf78889aa93",
6
+ "metadata": {
7
+ "nteract": {
8
+ "transient": {
9
+ "deleting": false
10
+ }
11
+ }
12
+ },
13
+ "source": [
14
+ "### Install the latest .whl package\n",
15
+ "\n",
16
+ "Check [here](https://pypi.org/project/semantic-link-labs/) to see the latest version."
17
+ ]
18
+ },
19
+ {
20
+ "cell_type": "code",
21
+ "execution_count": null,
22
+ "id": "d5cae9db-cef9-48a8-a351-9c5fcc99645c",
23
+ "metadata": {
24
+ "jupyter": {
25
+ "outputs_hidden": true,
26
+ "source_hidden": false
27
+ },
28
+ "nteract": {
29
+ "transient": {
30
+ "deleting": false
31
+ }
32
+ }
33
+ },
34
+ "outputs": [],
35
+ "source": [
36
+ "%pip install semantic-link-labs"
37
+ ]
38
+ },
39
+ {
40
+ "cell_type": "markdown",
41
+ "id": "b195eae8",
42
+ "metadata": {},
43
+ "source": [
44
+ "### Import the library and necessary packages"
45
+ ]
46
+ },
47
+ {
48
+ "cell_type": "code",
49
+ "execution_count": null,
50
+ "id": "1344e286",
51
+ "metadata": {},
52
+ "outputs": [],
53
+ "source": [
54
+ "import sempy_labs as labs\n",
55
+ "source_dataset = '' # Name of the semantic model to backup\n",
56
+ "target_dataset = '' # Name of the semantic model to restore\n",
57
+ "source_workspace = '' # Name of the workspace in which the semantic model resides\n",
58
+ "target_workspace = '' # Destination workspace of the semantic model\n",
59
+ "source_file_path = '' # Name/path of the backup file to create\n",
60
+ "target_file_path = '' # Name/path of the backup file to be copied to the target workspace\n",
61
+ "storage_account = '' # Name of the ADLS Gen2 storage account associated with both source & target workspaces"
62
+ ]
63
+ },
64
+ {
65
+ "cell_type": "markdown",
66
+ "id": "d4f5356a",
67
+ "metadata": {},
68
+ "source": [
69
+ "#### Prerequisites\n",
70
+ "* [Create an ADLS Gen2 storage account (in the Azure Portal)](https://learn.microsoft.com/azure/storage/common/storage-account-create?tabs=azure-portal)\n",
71
+ "* Assign the ADLS Gen2 storage account to both source and target workspaces\n",
72
+ " * Navigate to your workspace.\n",
73
+ " * Select 'Workspace settings'.\n",
74
+ " * Select 'Azure connections'.\n",
75
+ " * Within 'Azure Data Lake Gen2 Storage' click 'Configure'.\n",
76
+ " * Enter your Subscription, Resource Group and Storage Account.\n",
77
+ " * Click 'Save'.\n"
78
+ ]
79
+ },
80
+ {
81
+ "cell_type": "markdown",
82
+ "id": "55e5ca67",
83
+ "metadata": {},
84
+ "source": [
85
+ "### Backup, copy and restore a semantic model to a new workspace"
86
+ ]
87
+ },
88
+ {
89
+ "cell_type": "code",
90
+ "execution_count": null,
91
+ "id": "5a985c1f",
92
+ "metadata": {},
93
+ "outputs": [],
94
+ "source": [
95
+ "labs.backup_semantic_model(\n",
96
+ " dataset=source_dataset,\n",
97
+ " file_path=source_file_path,\n",
98
+ " workspace=source_workspace,\n",
99
+ ")\n",
100
+ "labs.copy_semantic_model_backup_file(\n",
101
+ " source_workspace=source_workspace,\n",
102
+ " target_workspace=target_workspace,\n",
103
+ " source_file_name=source_file_path,\n",
104
+ " target_file_name=target_file_path,\n",
105
+ " storage_account=storage_account,\n",
106
+ ")\n",
107
+ "labs.restore_semantic_model(\n",
108
+ " dataset=target_dataset,\n",
109
+ " file_path=target_file_path,\n",
110
+ " workspace=target_workspace,\n",
111
+ ")"
112
+ ]
113
+ }
114
+ ],
115
+ "metadata": {
116
+ "kernel_info": {
117
+ "name": "synapse_pyspark"
118
+ },
119
+ "kernelspec": {
120
+ "display_name": "Synapse PySpark",
121
+ "language": "Python",
122
+ "name": "synapse_pyspark"
123
+ },
124
+ "language_info": {
125
+ "name": "python"
126
+ },
127
+ "microsoft": {
128
+ "language": "python"
129
+ },
130
+ "nteract": {
131
+ "version": "nteract-front-end@1.0.0"
132
+ },
133
+ "spark_compute": {
134
+ "compute_id": "/trident/default"
135
+ },
136
+ "synapse_widget": {
137
+ "state": {},
138
+ "version": "0.1"
139
+ },
140
+ "widgets": {}
141
+ },
142
+ "nbformat": 4,
143
+ "nbformat_minor": 5
144
+ }