semantic-link-labs 0.8.2__tar.gz → 0.8.3__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.
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/PKG-INFO +7 -3
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/README.md +6 -2
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/docs/source/conf.py +1 -1
- semantic_link_labs-0.8.3/notebooks/Capacity Migration.ipynb +1 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/pyproject.toml +1 -1
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/semantic_link_labs.egg-info/PKG-INFO +7 -3
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/semantic_link_labs.egg-info/SOURCES.txt +1 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/__init__.py +14 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_capacities.py +89 -11
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_capacity_migration.py +167 -60
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_clear_cache.py +3 -3
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_data_pipelines.py +48 -0
- semantic_link_labs-0.8.3/src/sempy_labs/_external_data_shares.py +188 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_generate_semantic_model.py +0 -1
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_git.py +1 -1
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_helper_functions.py +14 -11
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_list_functions.py +6 -3
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_model_bpa.py +5 -5
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_model_bpa_bulk.py +3 -5
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_notebooks.py +4 -3
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_sql.py +2 -2
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_translations.py +14 -14
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_vertipaq.py +121 -101
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_warehouses.py +11 -1
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/admin/__init__.py +2 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/admin/_basic_functions.py +124 -21
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/directlake/_directlake_schema_sync.py +0 -5
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/directlake/_generate_shared_expression.py +1 -1
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/directlake/_guardrails.py +1 -1
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/directlake/_show_unsupported_directlake_objects.py +1 -1
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/migration/_create_pqt_file.py +2 -2
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_generate_report.py +10 -14
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_report_bpa.py +8 -10
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_report_functions.py +13 -19
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_report_rebind.py +4 -1
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_reportwrapper.py +3 -3
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/tom/_model.py +109 -34
- semantic_link_labs-0.8.2/notebooks/Capacity Migration.ipynb +0 -1
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/.github/ISSUE_TEMPLATE/issue--question---advice-needed.md +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/.github/workflows/build.yaml +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/.github/workflows/codeql.yaml +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/.gitignore +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/.readthedocs.yaml +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/.vscode/settings.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/CODE_OF_CONDUCT.md +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/LICENSE +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/SECURITY.md +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/SUPPORT.md +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/docs/Makefile +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/docs/make.bat +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/docs/requirements.txt +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/docs/source/index.rst +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/docs/source/modules.rst +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/environment.yml +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/notebooks/Best Practice Analyzer Report.ipynb +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/notebooks/Migration to Direct Lake.ipynb +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/notebooks/Model Optimization.ipynb +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/notebooks/Query Scale Out.ipynb +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/notebooks/Report Analysis.ipynb +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/notebooks/SQL.ipynb +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/notebooks/Semantic Model Refresh.ipynb +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/notebooks/Tabular Object Model.ipynb +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/setup.cfg +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/semantic_link_labs.egg-info/dependency_links.txt +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/semantic_link_labs.egg-info/requires.txt +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/semantic_link_labs.egg-info/top_level.txt +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_ai.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_am-ET.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_ar-AE.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_bg-BG.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_ca-ES.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_cs-CZ.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_da-DK.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_de-DE.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_el-GR.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_es-ES.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_fa-IR.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_fi-FI.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_fr-FR.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_ga-IE.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_he-IL.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_hi-IN.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_hu-HU.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_id-ID.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_is-IS.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_it-IT.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_ja-JP.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_ko-KR.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_mt-MT.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_nl-NL.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_pl-PL.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_pt-BR.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_pt-PT.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_ro-RO.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_ru-RU.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_sk-SK.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_sl-SL.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_sv-SE.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_ta-IN.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_te-IN.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_th-TH.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_tr-TR.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_uk-UA.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_zh-CN.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_connections.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_dataflows.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_dax.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_deployment_pipelines.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_documentation.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_environments.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_eventhouses.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_eventstreams.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_icons.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_kql_databases.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_kql_querysets.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_mirrored_warehouses.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_ml_experiments.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_ml_models.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_model_auto_build.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_model_bpa_rules.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_model_dependencies.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_one_lake_integration.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_query_scale_out.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_refresh_semantic_model.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_spark.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_workspace_identity.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/_workspaces.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/admin/_domains.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/directlake/__init__.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/directlake/_directlake_schema_compare.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/directlake/_dl_helper.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/directlake/_get_directlake_lakehouse.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/directlake/_get_shared_expression.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/directlake/_list_directlake_model_calc_tables.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/directlake/_update_directlake_partition_entity.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/directlake/_warm_cache.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/lakehouse/__init__.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/lakehouse/_get_lakehouse_columns.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/lakehouse/_get_lakehouse_tables.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/lakehouse/_lakehouse.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/lakehouse/_shortcuts.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/migration/__init__.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/migration/_migrate_calctables_to_lakehouse.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/migration/_migrate_calctables_to_semantic_model.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/migration/_migration_validation.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/migration/_refresh_calc_tables.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_BPAReportTemplate.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/__init__.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/.platform +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/1b08bce3bebabb0a27a8/visual.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/2f22ddb70c301693c165/visual.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/3b1182230aa6c600b43a/visual.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/58577ba6380c69891500/visual.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/a2a8fa5028b3b776c96c/visual.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/adfd47ef30652707b987/visual.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/b6a80ee459e716e170b1/visual.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/ce3130a721c020cc3d81/visual.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/visuals/66e60dfb526437cd78d1/visual.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/07deb8bce824e1be37d7/visual.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0b1c68838818b32ad03b/visual.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0c171de9d2683d10b930/visual.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0efa01be0510e40a645e/visual.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/6bf2f0eb830ab53cc668/visual.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/88d8141cb8500b60030c/visual.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/a753273590beed656a03/visual.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/b8fdc82cddd61ac447bc/visual.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/report.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition/version.json +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_bpareporttemplate/definition.pbir +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_report_bpa_rules.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_report_helper.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/report/_report_list_functions.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/sempy_labs/tom/__init__.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/tests/__init__.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/tests/test_friendly_case.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/tests/test_shortcuts.py +0 -0
- {semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/tests/test_tom.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: semantic-link-labs
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.3
|
|
4
4
|
Summary: Semantic Link Labs for Microsoft Fabric
|
|
5
5
|
Author: Microsoft Corporation
|
|
6
6
|
License: MIT License
|
|
@@ -27,7 +27,7 @@ Requires-Dist: pytest>=8.2.1; extra == "test"
|
|
|
27
27
|
# Semantic Link Labs
|
|
28
28
|
|
|
29
29
|
[](https://badge.fury.io/py/semantic-link-labs)
|
|
30
|
-
[](https://readthedocs.org/projects/semantic-link-labs/)
|
|
31
31
|
[](https://github.com/psf/black)
|
|
32
32
|
[](https://pepy.tech/project/semantic-link-labs)
|
|
33
33
|
|
|
@@ -47,6 +47,8 @@ Semantic Link Labs is a Python library designed for use in [Microsoft Fabric not
|
|
|
47
47
|
* [Check Direct Lake Guardrails](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.get_lakehouse_tables)
|
|
48
48
|
* [Refresh](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Semantic%20Model%20Refresh.ipynb), [clear cache](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.clear_cache), [backup](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.backup_semantic_model), [restore](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.restore_semantic_model), [copy backup files](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.copy_semantic_model_backup_file), [move/deploy across workspaces](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.deploy_semantic_model)
|
|
49
49
|
* [Run DAX queries which impersonate a user](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.evaluate_dax_impersonation)
|
|
50
|
+
* [Manage Query Scale Out](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Query%20Scale%20Out.ipynb).
|
|
51
|
+
* [Auto-generate descriptions for any/all measures in bulk](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.TOMWrapper.generate_measure_descriptions)
|
|
50
52
|
* Reports
|
|
51
53
|
* [Report Best Practice Analyzer (BPA)](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.report.html#sempy_labs.report.run_report_bpa)
|
|
52
54
|
* [View report metadata](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Report%20Analysis.ipynb)
|
|
@@ -55,8 +57,9 @@ Semantic Link Labs is a Python library designed for use in [Microsoft Fabric not
|
|
|
55
57
|
* [Rebind reports](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.report.html#sempy_labs.report.report_rebind)
|
|
56
58
|
* Capacities
|
|
57
59
|
* [Migrating a Power BI Premium capacity (P sku) to a Fabric capacity (F sku)](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Capacity%20Migration.ipynb)
|
|
60
|
+
* [Create](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.create_fabric_capacity)/[update](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.update_fabric_capacity)/[suspend](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.suspend_fabric_capacity)/[resume](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.resume_fabric_capacity) Fabric capacities.
|
|
58
61
|
* APIs
|
|
59
|
-
* Wrapper functions for [Power BI](https://learn.microsoft.com/rest/api/power-bi/), [Fabric](https://learn.microsoft.com/rest/api/fabric/articles/using-fabric-apis), and [Azure](https://learn.microsoft.com/rest/api/
|
|
62
|
+
* Wrapper functions for [Power BI](https://learn.microsoft.com/rest/api/power-bi/), [Fabric](https://learn.microsoft.com/rest/api/fabric/articles/using-fabric-apis), and [Azure (Fabric Capacity)](https://learn.microsoft.com/rest/api/microsoftfabric/fabric-capacities?view=rest-microsoftfabric-2023-11-01) APIs
|
|
60
63
|
|
|
61
64
|
|
|
62
65
|
### Check out the [helper notebooks](https://github.com/microsoft/semantic-link-labs/tree/main/notebooks) for getting started!
|
|
@@ -103,6 +106,7 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
103
106
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
104
107
|
|
|
105
108
|
## Version History
|
|
109
|
+
* [0.8.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.3) (October 14, 2024)
|
|
106
110
|
* [0.8.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.2) (October 2, 2024)
|
|
107
111
|
* [0.8.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.1) (October 2, 2024)
|
|
108
112
|
* [0.8.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.0) (September 25, 2024)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Semantic Link Labs
|
|
2
2
|
|
|
3
3
|
[](https://badge.fury.io/py/semantic-link-labs)
|
|
4
|
-
[](https://readthedocs.org/projects/semantic-link-labs/)
|
|
5
5
|
[](https://github.com/psf/black)
|
|
6
6
|
[](https://pepy.tech/project/semantic-link-labs)
|
|
7
7
|
|
|
@@ -21,6 +21,8 @@ Semantic Link Labs is a Python library designed for use in [Microsoft Fabric not
|
|
|
21
21
|
* [Check Direct Lake Guardrails](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.get_lakehouse_tables)
|
|
22
22
|
* [Refresh](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Semantic%20Model%20Refresh.ipynb), [clear cache](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.clear_cache), [backup](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.backup_semantic_model), [restore](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.restore_semantic_model), [copy backup files](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.copy_semantic_model_backup_file), [move/deploy across workspaces](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.deploy_semantic_model)
|
|
23
23
|
* [Run DAX queries which impersonate a user](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.evaluate_dax_impersonation)
|
|
24
|
+
* [Manage Query Scale Out](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Query%20Scale%20Out.ipynb).
|
|
25
|
+
* [Auto-generate descriptions for any/all measures in bulk](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.TOMWrapper.generate_measure_descriptions)
|
|
24
26
|
* Reports
|
|
25
27
|
* [Report Best Practice Analyzer (BPA)](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.report.html#sempy_labs.report.run_report_bpa)
|
|
26
28
|
* [View report metadata](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Report%20Analysis.ipynb)
|
|
@@ -29,8 +31,9 @@ Semantic Link Labs is a Python library designed for use in [Microsoft Fabric not
|
|
|
29
31
|
* [Rebind reports](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.report.html#sempy_labs.report.report_rebind)
|
|
30
32
|
* Capacities
|
|
31
33
|
* [Migrating a Power BI Premium capacity (P sku) to a Fabric capacity (F sku)](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Capacity%20Migration.ipynb)
|
|
34
|
+
* [Create](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.create_fabric_capacity)/[update](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.update_fabric_capacity)/[suspend](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.suspend_fabric_capacity)/[resume](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.resume_fabric_capacity) Fabric capacities.
|
|
32
35
|
* APIs
|
|
33
|
-
* Wrapper functions for [Power BI](https://learn.microsoft.com/rest/api/power-bi/), [Fabric](https://learn.microsoft.com/rest/api/fabric/articles/using-fabric-apis), and [Azure](https://learn.microsoft.com/rest/api/
|
|
36
|
+
* Wrapper functions for [Power BI](https://learn.microsoft.com/rest/api/power-bi/), [Fabric](https://learn.microsoft.com/rest/api/fabric/articles/using-fabric-apis), and [Azure (Fabric Capacity)](https://learn.microsoft.com/rest/api/microsoftfabric/fabric-capacities?view=rest-microsoftfabric-2023-11-01) APIs
|
|
34
37
|
|
|
35
38
|
|
|
36
39
|
### Check out the [helper notebooks](https://github.com/microsoft/semantic-link-labs/tree/main/notebooks) for getting started!
|
|
@@ -77,6 +80,7 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
77
80
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
78
81
|
|
|
79
82
|
## Version History
|
|
83
|
+
* [0.8.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.3) (October 14, 2024)
|
|
80
84
|
* [0.8.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.2) (October 2, 2024)
|
|
81
85
|
* [0.8.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.1) (October 2, 2024)
|
|
82
86
|
* [0.8.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.0) (September 25, 2024)
|
|
@@ -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.
|
|
16
|
+
release = '0.8.3'
|
|
17
17
|
|
|
18
18
|
# -- General configuration ---------------------------------------------------
|
|
19
19
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"cells":[{"cell_type":"markdown","id":"5c27dfd1-4fe0-4a97-92e6-ddf78889aa93","metadata":{"nteract":{"transient":{"deleting":false}}},"source":["### Install the latest .whl package\n","\n","Check [here](https://pypi.org/project/semantic-link-labs/) to see the latest version."]},{"cell_type":"code","execution_count":null,"id":"d5cae9db-cef9-48a8-a351-9c5fcc99645c","metadata":{"jupyter":{"outputs_hidden":true,"source_hidden":false},"nteract":{"transient":{"deleting":false}}},"outputs":[],"source":["%pip install semantic-link-labs"]},{"cell_type":"markdown","id":"2856d26d","metadata":{},"source":["### Requirements\n","* Must have an Azure Subscription\n","* Must [register an App](https://ms.portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade)\n"," * Permissions: Will need the Contributor role at the scope where the resources will be created, which is often the subscription level\n","* Azure Key Vault\n"," * [Set up](https://learn.microsoft.com/azure/key-vault/secrets/quick-create-portal) within the Azure Subscription\n"," * Save secrets for the Tenant ID, Client ID (Application ID), Client Secret\n"," * Permissions: Ensure the user who will be executing the notebooks has “Key Vault Secrets User”\n","* Fabric Permissions\n"," * User should be a tenant admin. This ensures they have the necessary authority to execute and manage the notebooks without encountering permission issues.\n","\n","### Result\n","* F skus are created for each (specified) capacity\n"," * Within the same region as the P SKU\n"," * Equivalent SKU size as the P SKU\n"," * Same admins as listed on the P SKU\n"," * All workspaces are migrated to the corresponding new capacity\n"," * Capacity settings from the P SKU are transferred to the F SKU\n"," * Capacity settings\n"," * Notification settings\n"," * Access settings\n"," * Disaster recovery settings\n"," * Spark settings\n"," * Delegated tenant settings\n","* 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\"."]},{"cell_type":"markdown","id":"b195eae8","metadata":{},"source":["### Import the library and set the initial parameters"]},{"cell_type":"code","execution_count":null,"id":"1344e286","metadata":{},"outputs":[],"source":["import sempy_labs as labs\n","import sempy_labs.admin as admin\n","\n","azure_subscription_id = '' # Enter your Azure subscription ID\n","key_vault_uri = '' # Enter your Azure Key Vault URI\n","key_vault_tenant_id = '' # Enter the name of the Azure Key Vault secret which stores your Tenant ID\n","key_vault_client_id = '' # Enter the name of the Azure Key Vault secret which stores your Client ID (Application ID)\n","key_vault_client_secret = '' # Enter the name of the Azure Key Vault secret which stores your Client Secret\n","resource_group = '' # Enter the name of the resource group (to be used to create the new F skus)"]},{"cell_type":"markdown","id":"5a3fe6e8-b8aa-4447-812b-7931831e07fe","metadata":{"nteract":{"transient":{"deleting":false}}},"source":["### Migrate a single P SKU -> F SKU\n","Set the 'capacities' parameter to the single P SKU."]},{"cell_type":"code","execution_count":null,"id":"3655dd88","metadata":{},"outputs":[],"source":["labs.migrate_capacities(\n"," azure_subscription_id = azure_subscription_id,\n"," key_vault_uri = key_vault_uri,\n"," key_vault_tenant_id = key_vault_tenant_id,\n"," key_vault_client_id = key_vault_client_id,\n"," key_vault_client_secret = key_vault_client_secret,\n"," resource_group = resource_group,\n"," capacities = 'CapacityA',\n"," p_sku_only = True,\n",")"]},{"cell_type":"markdown","id":"175a59b8","metadata":{},"source":["### Migrate a list of P SKUs to F SKUs\n","Set the 'capacities' parameter to a list of P SKUs."]},{"cell_type":"code","execution_count":null,"id":"3a7a80ec","metadata":{},"outputs":[],"source":["labs.migrate_capacities(\n"," azure_subscription_id = azure_subscription_id,\n"," key_vault_uri = key_vault_uri,\n"," key_vault_tenant_id = key_vault_tenant_id,\n"," key_vault_client_id = key_vault_client_id,\n"," key_vault_client_secret = key_vault_client_secret,\n"," resource_group = resource_group,\n"," capacities = ['CapacityA', 'CapacityB', 'CapacityC'],\n"," p_sku_only = True,\n",")"]},{"cell_type":"markdown","id":"30438799","metadata":{},"source":["### Migrate all P SKUs to F SKUs\n","Set the 'capacities' parameter to None."]},{"cell_type":"code","execution_count":null,"id":"315c2dc7","metadata":{},"outputs":[],"source":["labs.migrate_capacities(\n"," azure_subscription_id = azure_subscription_id,\n"," key_vault_uri = key_vault_uri,\n"," key_vault_tenant_id = key_vault_tenant_id,\n"," key_vault_client_id = key_vault_client_id,\n"," key_vault_client_secret = key_vault_client_secret,\n"," resource_group = resource_group,\n"," capacities = None,\n"," p_sku_only = True,\n",")"]},{"cell_type":"markdown","id":"1d8e73b2","metadata":{},"source":["### Migrate a list of P SKUs to F SKUs; associate each capacity with a specific resource group\n","This process ensures that each F SKU is created within the resource group specified in the resource_group_mapping dictionary."]},{"cell_type":"code","execution_count":null,"id":"2854bf8a","metadata":{},"outputs":[],"source":["resource_group_mapping = {\n"," \"CapacityA\": \"ResourceGroupA\",\n"," \"CapacityB\": \"ResourceGroupA\",\n"," \"CapacityC\": \"ResourceGroupB\",\n","}\n","\n","labs.migrate_capacities(\n"," azure_subscription_id = azure_subscription_id,\n"," key_vault_uri = key_vault_uri,\n"," key_vault_tenant_id = key_vault_tenant_id,\n"," key_vault_client_id = key_vault_client_id,\n"," key_vault_client_secret = key_vault_client_secret,\n"," resource_group = resource_group_mapping,\n"," capacities = ['CapacityA', 'CapacityB', 'CapacityC'],\n"," p_sku_only = True,\n",")"]},{"cell_type":"markdown","id":"c3f497c8","metadata":{},"source":["### Migrate a single source capacity to a target capacity (target capacity already created)"]},{"cell_type":"code","execution_count":null,"id":"a4f0b5a2","metadata":{},"outputs":[],"source":["source_capacity = '' # Enter the Source capacity name\n","target_capacity = '' # Enter the Target capacity name (already exists) \n","\n","admin.assign_workspaces_to_capacity(\n"," source_capacity=source_capacity,\n"," target_capacity=target_capacity,\n"," workspace=None,\n",")\n","\n","# Optionally migrate settings\n","\"\"\"\n","labs.migrate_capacity_settings(\n"," source_capacity=source_capacity, \n"," target_capacity=target_capacity\n",")\n","labs.migrate_access_settings(\n"," source_capacity=source_capacity, \n"," target_capacity=target_capacity\n",")\n","labs.migrate_delegated_tenant_settings(\n"," source_capacity=source_capacity, \n"," target_capacity=target_capacity\n",")\n","labs.migrate_disaster_recovery_settings(\n"," source_capacity=source_capacity, \n"," target_capacity=target_capacity\n",")\n","labs.migrate_notification_settings(\n"," source_capacity=source_capacity, \n"," target_capacity=target_capacity\n",")\n","labs.migrate_spark_settings(\n"," source_capacity=source_capacity, \n"," target_capacity=target_capacity\n",")\n","\"\"\""]},{"cell_type":"markdown","id":"e0db744b","metadata":{},"source":["### Migrate a list of source capacities to target capacities (target capacity already created)"]},{"cell_type":"code","execution_count":null,"id":"0e04d519","metadata":{},"outputs":[],"source":["capacity_mapping = {\n"," \"capacitya\": \"capacityanew\", # Format is \"Source SKU\": \"Target SKU\"\n"," \"capacityb\": \"capacitybnew\",\n"," \"capacityc\": \"capacitycnew\",\n","}\n","\n","capacities = list(capacity_mapping.keys())\n","\n","for capacity in capacities:\n"," admin.assign_workspaces_to_capacity(\n"," source_capacity=capacity,\n"," target_capacity=capacity_mapping.get(capacity),\n"," workspace=None,\n"," )\n"," # Optionally migrate settings\n"," \"\"\"\n"," labs.migrate_capacity_settings(\n"," source_capacity=source_capacity, \n"," target_capacity=target_capacity\n"," )\n"," labs.migrate_access_settings(\n"," source_capacity=source_capacity, \n"," target_capacity=target_capacity\n"," )\n"," labs.migrate_delegated_tenant_settings(\n"," source_capacity=source_capacity, \n"," target_capacity=target_capacity\n"," )\n"," labs.migrate_disaster_recovery_settings(\n"," source_capacity=source_capacity, \n"," target_capacity=target_capacity\n"," )\n"," labs.migrate_notification_settings(\n"," source_capacity=source_capacity, \n"," target_capacity=target_capacity\n"," )\n"," labs.migrate_spark_settings(\n"," source_capacity=source_capacity, \n"," target_capacity=target_capacity\n"," )\n"," \"\"\"\n"]},{"cell_type":"markdown","id":"67787c3a","metadata":{},"source":["### Migrate a Fabric Trial Capacity (FT1) to a Fabric Capacity (F SKU)"]},{"cell_type":"code","execution_count":null,"id":"4efb55b2","metadata":{},"outputs":[],"source":["labs.migrate_fabric_trial_capacity(\n"," azure_subscription_id = azure_subscription_id,\n"," key_vault_uri = key_vault_uri,\n"," key_vault_tenant_id = key_vault_tenant_id,\n"," key_vault_client_id = key_vault_client_id,\n"," key_vault_client_secret = key_vault_client_secret,\n"," resource_group = resource_group,\n"," source_capacity = '', # The name of the Trial capacity.\n"," target_capacity = '', # The name of Fabric capacity (if it does not exist it will be created).\n"," target_capacity_sku = \"F64\", # Defaults to F64 but can specify the required SKU.\n"," target_capacity_region = None, # Setting this not None will create the Fabric capacity in the same region as the Trial capacity.\n"," target_capacity_admin_members = None, # Setting this to None will use the same admin members as the Trial capacity.\n",")"]}],"metadata":{"kernel_info":{"name":"synapse_pyspark"},"kernelspec":{"display_name":"Synapse PySpark","language":"Python","name":"synapse_pyspark"},"language_info":{"name":"python"},"microsoft":{"language":"python"},"nteract":{"version":"nteract-front-end@1.0.0"},"spark_compute":{"compute_id":"/trident/default"},"synapse_widget":{"state":{},"version":"0.1"},"widgets":{}},"nbformat":4,"nbformat_minor":5}
|
{semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/semantic_link_labs.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: semantic-link-labs
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.3
|
|
4
4
|
Summary: Semantic Link Labs for Microsoft Fabric
|
|
5
5
|
Author: Microsoft Corporation
|
|
6
6
|
License: MIT License
|
|
@@ -27,7 +27,7 @@ Requires-Dist: pytest>=8.2.1; extra == "test"
|
|
|
27
27
|
# Semantic Link Labs
|
|
28
28
|
|
|
29
29
|
[](https://badge.fury.io/py/semantic-link-labs)
|
|
30
|
-
[](https://readthedocs.org/projects/semantic-link-labs/)
|
|
31
31
|
[](https://github.com/psf/black)
|
|
32
32
|
[](https://pepy.tech/project/semantic-link-labs)
|
|
33
33
|
|
|
@@ -47,6 +47,8 @@ Semantic Link Labs is a Python library designed for use in [Microsoft Fabric not
|
|
|
47
47
|
* [Check Direct Lake Guardrails](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.get_lakehouse_tables)
|
|
48
48
|
* [Refresh](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Semantic%20Model%20Refresh.ipynb), [clear cache](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.clear_cache), [backup](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.backup_semantic_model), [restore](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.restore_semantic_model), [copy backup files](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.copy_semantic_model_backup_file), [move/deploy across workspaces](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.deploy_semantic_model)
|
|
49
49
|
* [Run DAX queries which impersonate a user](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.evaluate_dax_impersonation)
|
|
50
|
+
* [Manage Query Scale Out](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Query%20Scale%20Out.ipynb).
|
|
51
|
+
* [Auto-generate descriptions for any/all measures in bulk](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.TOMWrapper.generate_measure_descriptions)
|
|
50
52
|
* Reports
|
|
51
53
|
* [Report Best Practice Analyzer (BPA)](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.report.html#sempy_labs.report.run_report_bpa)
|
|
52
54
|
* [View report metadata](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Report%20Analysis.ipynb)
|
|
@@ -55,8 +57,9 @@ Semantic Link Labs is a Python library designed for use in [Microsoft Fabric not
|
|
|
55
57
|
* [Rebind reports](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.report.html#sempy_labs.report.report_rebind)
|
|
56
58
|
* Capacities
|
|
57
59
|
* [Migrating a Power BI Premium capacity (P sku) to a Fabric capacity (F sku)](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Capacity%20Migration.ipynb)
|
|
60
|
+
* [Create](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.create_fabric_capacity)/[update](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.update_fabric_capacity)/[suspend](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.suspend_fabric_capacity)/[resume](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.resume_fabric_capacity) Fabric capacities.
|
|
58
61
|
* APIs
|
|
59
|
-
* Wrapper functions for [Power BI](https://learn.microsoft.com/rest/api/power-bi/), [Fabric](https://learn.microsoft.com/rest/api/fabric/articles/using-fabric-apis), and [Azure](https://learn.microsoft.com/rest/api/
|
|
62
|
+
* Wrapper functions for [Power BI](https://learn.microsoft.com/rest/api/power-bi/), [Fabric](https://learn.microsoft.com/rest/api/fabric/articles/using-fabric-apis), and [Azure (Fabric Capacity)](https://learn.microsoft.com/rest/api/microsoftfabric/fabric-capacities?view=rest-microsoftfabric-2023-11-01) APIs
|
|
60
63
|
|
|
61
64
|
|
|
62
65
|
### Check out the [helper notebooks](https://github.com/microsoft/semantic-link-labs/tree/main/notebooks) for getting started!
|
|
@@ -103,6 +106,7 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
103
106
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
104
107
|
|
|
105
108
|
## Version History
|
|
109
|
+
* [0.8.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.3) (October 14, 2024)
|
|
106
110
|
* [0.8.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.2) (October 2, 2024)
|
|
107
111
|
* [0.8.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.1) (October 2, 2024)
|
|
108
112
|
* [0.8.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.0) (September 25, 2024)
|
{semantic_link_labs-0.8.2 → semantic_link_labs-0.8.3}/src/semantic_link_labs.egg-info/SOURCES.txt
RENAMED
|
@@ -47,6 +47,7 @@ src/sempy_labs/_documentation.py
|
|
|
47
47
|
src/sempy_labs/_environments.py
|
|
48
48
|
src/sempy_labs/_eventhouses.py
|
|
49
49
|
src/sempy_labs/_eventstreams.py
|
|
50
|
+
src/sempy_labs/_external_data_shares.py
|
|
50
51
|
src/sempy_labs/_generate_semantic_model.py
|
|
51
52
|
src/sempy_labs/_git.py
|
|
52
53
|
src/sempy_labs/_helper_functions.py
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
from sempy_labs._external_data_shares import (
|
|
2
|
+
list_external_data_shares_in_item,
|
|
3
|
+
create_external_data_share,
|
|
4
|
+
revoke_external_data_share,
|
|
5
|
+
)
|
|
1
6
|
from sempy_labs._ml_models import (
|
|
2
7
|
list_ml_models,
|
|
3
8
|
create_ml_model,
|
|
@@ -17,6 +22,7 @@ from sempy_labs._data_pipelines import (
|
|
|
17
22
|
list_data_pipelines,
|
|
18
23
|
create_data_pipeline,
|
|
19
24
|
delete_data_pipeline,
|
|
25
|
+
get_data_pipeline_definition,
|
|
20
26
|
)
|
|
21
27
|
from sempy_labs._eventhouses import (
|
|
22
28
|
create_eventhouse,
|
|
@@ -61,6 +67,7 @@ from sempy_labs._capacity_migration import (
|
|
|
61
67
|
migrate_delegated_tenant_settings,
|
|
62
68
|
migrate_capacity_settings,
|
|
63
69
|
migrate_disaster_recovery_settings,
|
|
70
|
+
migrate_fabric_trial_capacity,
|
|
64
71
|
)
|
|
65
72
|
from sempy_labs._capacities import (
|
|
66
73
|
create_fabric_capacity,
|
|
@@ -71,6 +78,7 @@ from sempy_labs._capacities import (
|
|
|
71
78
|
check_fabric_capacity_name_availablility,
|
|
72
79
|
delete_embedded_capacity,
|
|
73
80
|
delete_premium_capacity,
|
|
81
|
+
create_resource_group,
|
|
74
82
|
)
|
|
75
83
|
from sempy_labs._spark import (
|
|
76
84
|
get_spark_settings,
|
|
@@ -359,4 +367,10 @@ __all__ = [
|
|
|
359
367
|
"delete_ml_experiment",
|
|
360
368
|
"list_sql_endpoints",
|
|
361
369
|
"list_datamarts",
|
|
370
|
+
"get_data_pipeline_definition",
|
|
371
|
+
"list_external_data_shares_in_item",
|
|
372
|
+
"create_external_data_share",
|
|
373
|
+
"revoke_external_data_share",
|
|
374
|
+
"migrate_fabric_trial_capacity",
|
|
375
|
+
"create_resource_group",
|
|
362
376
|
]
|
|
@@ -4,7 +4,7 @@ from sempy._utils._log import log
|
|
|
4
4
|
import sempy_labs._icons as icons
|
|
5
5
|
from sempy.fabric.exceptions import FabricHTTPException
|
|
6
6
|
import requests
|
|
7
|
-
from sempy_labs._helper_functions import
|
|
7
|
+
from sempy_labs._helper_functions import _get_azure_token_credentials
|
|
8
8
|
import pandas as pd
|
|
9
9
|
|
|
10
10
|
|
|
@@ -65,8 +65,6 @@ def create_fabric_capacity(
|
|
|
65
65
|
|
|
66
66
|
from azure.mgmt.resource import ResourceManagementClient
|
|
67
67
|
|
|
68
|
-
capacity_suffix = "fsku"
|
|
69
|
-
|
|
70
68
|
if isinstance(admin_members, str):
|
|
71
69
|
admin_members = [admin_members]
|
|
72
70
|
|
|
@@ -143,7 +141,7 @@ def create_fabric_capacity(
|
|
|
143
141
|
f"{icons.red_dot} Invalid region. Valid options: {valid_regions}."
|
|
144
142
|
)
|
|
145
143
|
|
|
146
|
-
azure_token, credential, headers =
|
|
144
|
+
azure_token, credential, headers = _get_azure_token_credentials(
|
|
147
145
|
key_vault_uri=key_vault_uri,
|
|
148
146
|
key_vault_tenant_id=key_vault_tenant_id,
|
|
149
147
|
key_vault_client_id=key_vault_client_id,
|
|
@@ -274,7 +272,7 @@ def suspend_fabric_capacity(
|
|
|
274
272
|
"""
|
|
275
273
|
# https://learn.microsoft.com/en-us/rest/api/microsoftfabric/fabric-capacities/suspend?view=rest-microsoftfabric-2023-11-01&tabs=HTTP
|
|
276
274
|
|
|
277
|
-
azure_token, credential, headers =
|
|
275
|
+
azure_token, credential, headers = _get_azure_token_credentials(
|
|
278
276
|
key_vault_uri=key_vault_uri,
|
|
279
277
|
key_vault_tenant_id=key_vault_tenant_id,
|
|
280
278
|
key_vault_client_id=key_vault_client_id,
|
|
@@ -323,7 +321,7 @@ def resume_fabric_capacity(
|
|
|
323
321
|
|
|
324
322
|
# https://learn.microsoft.com/en-us/rest/api/microsoftfabric/fabric-capacities/resume?view=rest-microsoftfabric-2023-11-01&tabs=HTTP
|
|
325
323
|
|
|
326
|
-
azure_token, credential, headers =
|
|
324
|
+
azure_token, credential, headers = _get_azure_token_credentials(
|
|
327
325
|
key_vault_uri=key_vault_uri,
|
|
328
326
|
key_vault_tenant_id=key_vault_tenant_id,
|
|
329
327
|
key_vault_client_id=key_vault_client_id,
|
|
@@ -372,7 +370,7 @@ def delete_embedded_capacity(
|
|
|
372
370
|
|
|
373
371
|
# https://learn.microsoft.com/en-us/rest/api/power-bi-embedded/capacities/delete?view=rest-power-bi-embedded-2021-01-01&tabs=HTTP
|
|
374
372
|
|
|
375
|
-
azure_token, credential, headers =
|
|
373
|
+
azure_token, credential, headers = _get_azure_token_credentials(
|
|
376
374
|
key_vault_uri=key_vault_uri,
|
|
377
375
|
key_vault_tenant_id=key_vault_tenant_id,
|
|
378
376
|
key_vault_client_id=key_vault_client_id,
|
|
@@ -449,7 +447,7 @@ def delete_fabric_capacity(
|
|
|
449
447
|
|
|
450
448
|
# https://learn.microsoft.com/en-us/rest/api/microsoftfabric/fabric-capacities/delete?view=rest-microsoftfabric-2023-11-01&tabs=HTTP
|
|
451
449
|
|
|
452
|
-
azure_token, credential, headers =
|
|
450
|
+
azure_token, credential, headers = _get_azure_token_credentials(
|
|
453
451
|
key_vault_uri=key_vault_uri,
|
|
454
452
|
key_vault_tenant_id=key_vault_tenant_id,
|
|
455
453
|
key_vault_client_id=key_vault_client_id,
|
|
@@ -503,7 +501,6 @@ def update_fabric_capacity(
|
|
|
503
501
|
The email address(es) of the admin(s) of the Fabric capacity.
|
|
504
502
|
tags : dict, default=None
|
|
505
503
|
Tag(s) to add to the capacity. Example: {'tagName': 'tagValue'}.
|
|
506
|
-
|
|
507
504
|
"""
|
|
508
505
|
|
|
509
506
|
# https://learn.microsoft.com/en-us/rest/api/microsoftfabric/fabric-capacities/update?view=rest-microsoftfabric-2023-11-01&tabs=HTTP
|
|
@@ -515,7 +512,7 @@ def update_fabric_capacity(
|
|
|
515
512
|
f"{icons.red_dot} If specified, the 'tags' parameter must be a dictionary."
|
|
516
513
|
)
|
|
517
514
|
|
|
518
|
-
azure_token, credential, headers =
|
|
515
|
+
azure_token, credential, headers = _get_azure_token_credentials(
|
|
519
516
|
key_vault_uri=key_vault_uri,
|
|
520
517
|
key_vault_tenant_id=key_vault_tenant_id,
|
|
521
518
|
key_vault_client_id=key_vault_client_id,
|
|
@@ -556,9 +553,34 @@ def check_fabric_capacity_name_availablility(
|
|
|
556
553
|
key_vault_client_id: str,
|
|
557
554
|
key_vault_client_secret: str,
|
|
558
555
|
) -> bool:
|
|
556
|
+
"""
|
|
557
|
+
This function updates a Fabric capacity's properties.
|
|
558
|
+
|
|
559
|
+
Parameters
|
|
560
|
+
----------
|
|
561
|
+
capacity_name : str
|
|
562
|
+
Name of the Fabric capacity.
|
|
563
|
+
azure_subscription_id : str
|
|
564
|
+
The Azure subscription ID.
|
|
565
|
+
region : str
|
|
566
|
+
The region name.
|
|
567
|
+
key_vault_uri : str
|
|
568
|
+
The name of the `Azure key vault <https://azure.microsoft.com/products/key-vault>`_ URI. Example: "https://<Key Vault Name>.vault.azure.net/"
|
|
569
|
+
key_vault_tenant_id : str
|
|
570
|
+
The name of the Azure key vault secret storing the Tenant ID.
|
|
571
|
+
key_vault_client_id : str
|
|
572
|
+
The name of the Azure key vault secret storing the Client ID.
|
|
573
|
+
key_vault_client_secret : str
|
|
574
|
+
The name of the Azure key vault secret storing the Client Secret.
|
|
575
|
+
|
|
576
|
+
Returns
|
|
577
|
+
-------
|
|
578
|
+
bool
|
|
579
|
+
An indication as to whether the Fabric capacity name is available or not.
|
|
580
|
+
"""
|
|
559
581
|
# https://learn.microsoft.com/en-us/rest/api/microsoftfabric/fabric-capacities/check-name-availability?view=rest-microsoftfabric-2023-11-01&tabs=HTTP
|
|
560
582
|
|
|
561
|
-
azure_token, credential, headers =
|
|
583
|
+
azure_token, credential, headers = _get_azure_token_credentials(
|
|
562
584
|
key_vault_uri=key_vault_uri,
|
|
563
585
|
key_vault_tenant_id=key_vault_tenant_id,
|
|
564
586
|
key_vault_client_id=key_vault_client_id,
|
|
@@ -575,3 +597,59 @@ def check_fabric_capacity_name_availablility(
|
|
|
575
597
|
raise FabricHTTPException(response)
|
|
576
598
|
|
|
577
599
|
return bool(response.json().get("nameAvailable"))
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
def create_resource_group(
|
|
603
|
+
azure_subscription_id: str,
|
|
604
|
+
key_vault_uri: str,
|
|
605
|
+
key_vault_tenant_id: str,
|
|
606
|
+
key_vault_client_id: str,
|
|
607
|
+
key_vault_client_secret: str,
|
|
608
|
+
resource_group: str,
|
|
609
|
+
region: str,
|
|
610
|
+
):
|
|
611
|
+
"""
|
|
612
|
+
This function creates a resource group in a region within an Azure subscription.
|
|
613
|
+
|
|
614
|
+
Parameters
|
|
615
|
+
----------
|
|
616
|
+
azure_subscription_id : str
|
|
617
|
+
The Azure subscription ID.
|
|
618
|
+
key_vault_uri : str
|
|
619
|
+
The name of the `Azure key vault <https://azure.microsoft.com/products/key-vault>`_ URI. Example: "https://<Key Vault Name>.vault.azure.net/"
|
|
620
|
+
key_vault_tenant_id : str
|
|
621
|
+
The name of the Azure key vault secret storing the Tenant ID.
|
|
622
|
+
key_vault_client_id : str
|
|
623
|
+
The name of the Azure key vault secret storing the Client ID.
|
|
624
|
+
key_vault_client_secret : str
|
|
625
|
+
The name of the Azure key vault secret storing the Client Secret.
|
|
626
|
+
resource_group : str
|
|
627
|
+
The name of the Azure resource group to be created.
|
|
628
|
+
region : str
|
|
629
|
+
The name of the region in which the resource group will be created.
|
|
630
|
+
"""
|
|
631
|
+
|
|
632
|
+
from azure.mgmt.resource import ResourceManagementClient
|
|
633
|
+
|
|
634
|
+
azure_token, credential, headers = get_azure_token_credentials(
|
|
635
|
+
key_vault_uri=key_vault_uri,
|
|
636
|
+
key_vault_tenant_id=key_vault_tenant_id,
|
|
637
|
+
key_vault_client_id=key_vault_client_id,
|
|
638
|
+
key_vault_client_secret=key_vault_client_secret,
|
|
639
|
+
)
|
|
640
|
+
|
|
641
|
+
resource_client = ResourceManagementClient(credential, azure_subscription_id)
|
|
642
|
+
|
|
643
|
+
if resource_client.resource_groups.check_existence(resource_group):
|
|
644
|
+
print(
|
|
645
|
+
f"{icons.info} The '{resource_group}' resource group already exists in the '{region}' region within the '{azure_subscription_id}' Azure subscription."
|
|
646
|
+
)
|
|
647
|
+
return
|
|
648
|
+
|
|
649
|
+
resource_client.resource_groups.create_or_update(
|
|
650
|
+
resource_group, {"location": region}
|
|
651
|
+
)
|
|
652
|
+
|
|
653
|
+
print(
|
|
654
|
+
f"{icons.green_dot} The '{resource_group}' resource group has been created within the '{region}' region within the '{azure_subscription_id}' Azure subscription."
|
|
655
|
+
)
|