semantic-link-labs 0.9.5__tar.gz → 0.9.7__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.9.5 → semantic_link_labs-0.9.7}/PKG-INFO +8 -5
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/README.md +4 -2
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/docs/source/conf.py +1 -1
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/environment.yml +1 -1
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/notebooks/Service Principal.ipynb +1 -1
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/pyproject.toml +2 -2
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/semantic_link_labs.egg-info/PKG-INFO +8 -5
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/semantic_link_labs.egg-info/SOURCES.txt +5 -2
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/semantic_link_labs.egg-info/requires.txt +1 -1
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/__init__.py +19 -1
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_ai.py +3 -1
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_capacities.py +37 -2
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_capacity_migration.py +11 -14
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_connections.py +2 -4
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_dataflows.py +2 -2
- semantic_link_labs-0.9.7/src/sempy_labs/_dax_query_view.py +57 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_delta_analyzer.py +16 -14
- semantic_link_labs-0.9.7/src/sempy_labs/_delta_analyzer_history.py +298 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_environments.py +8 -1
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_eventhouses.py +5 -1
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_external_data_shares.py +4 -10
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_generate_semantic_model.py +2 -1
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_graphQL.py +5 -1
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_helper_functions.py +440 -63
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_icons.py +6 -6
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_kql_databases.py +5 -1
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_list_functions.py +8 -38
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_managed_private_endpoints.py +9 -2
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_mirrored_databases.py +3 -1
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_ml_experiments.py +1 -1
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_model_bpa.py +2 -11
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_model_bpa_bulk.py +33 -38
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_model_bpa_rules.py +1 -1
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_one_lake_integration.py +2 -1
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_semantic_models.py +20 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_sql.py +6 -2
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_sqldatabase.py +61 -100
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_vertipaq.py +8 -11
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_warehouses.py +14 -3
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_workspace_identity.py +6 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_workspaces.py +42 -2
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/admin/_basic_functions.py +29 -2
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/admin/_reports.py +1 -1
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/admin/_scanner.py +2 -4
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/admin/_tenant.py +8 -3
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/directlake/_directlake_schema_compare.py +2 -1
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/directlake/_directlake_schema_sync.py +65 -19
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/directlake/_dl_helper.py +0 -6
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/directlake/_generate_shared_expression.py +19 -12
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/directlake/_guardrails.py +2 -1
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +90 -57
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/directlake/_update_directlake_partition_entity.py +5 -2
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/graph/_groups.py +6 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/graph/_teams.py +2 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/graph/_users.py +4 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/lakehouse/__init__.py +12 -3
- semantic_link_labs-0.9.7/src/sempy_labs/lakehouse/_blobs.py +231 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/lakehouse/_shortcuts.py +29 -8
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/migration/_direct_lake_to_import.py +47 -10
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/migration/_migration_validation.py +0 -4
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/__init__.py +4 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_download_report.py +4 -6
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_generate_report.py +6 -6
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_report_functions.py +5 -4
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_report_helper.py +17 -5
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_report_rebind.py +8 -6
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_reportwrapper.py +17 -8
- semantic_link_labs-0.9.7/src/sempy_labs/report/_save_report.py +147 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/tom/_model.py +154 -23
- semantic_link_labs-0.9.5/tests/test_tom.py +0 -40
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/.github/ISSUE_TEMPLATE/issue--question---advice-needed.md +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/.github/workflows/build.yaml +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/.github/workflows/codeql.yaml +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/.gitignore +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/.readthedocs.yaml +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/.vscode/settings.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/CODE_OF_CONDUCT.md +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/LICENSE +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/SECURITY.md +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/SUPPORT.md +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/docs/Makefile +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/docs/make.bat +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/docs/requirements.txt +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/docs/source/index.rst +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/docs/source/modules.rst +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/notebooks/Best Practice Analyzer Report.ipynb +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/notebooks/Capacity Migration.ipynb +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/notebooks/Delta Analyzer.ipynb +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/notebooks/Migration to Direct Lake.ipynb +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/notebooks/Model Optimization.ipynb +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/notebooks/Query Scale Out.ipynb +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/notebooks/Report Analysis.ipynb +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/notebooks/SQL.ipynb +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/notebooks/Semantic Model Management.ipynb +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/notebooks/Semantic Model Refresh.ipynb +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/notebooks/Tabular Object Model.ipynb +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/setup.cfg +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/semantic_link_labs.egg-info/dependency_links.txt +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/semantic_link_labs.egg-info/top_level.txt +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_authentication.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_am-ET.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_ar-AE.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_bg-BG.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_ca-ES.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_cs-CZ.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_da-DK.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_de-DE.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_el-GR.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_es-ES.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_fa-IR.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_fi-FI.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_fr-FR.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_ga-IE.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_he-IL.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_hi-IN.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_hu-HU.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_id-ID.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_is-IS.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_it-IT.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_ja-JP.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_ko-KR.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_mt-MT.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_nl-NL.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_pl-PL.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_pt-BR.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_pt-PT.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_ro-RO.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_ru-RU.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_sk-SK.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_sl-SL.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_sv-SE.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_ta-IN.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_te-IN.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_th-TH.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_tr-TR.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_uk-UA.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_zh-CN.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_clear_cache.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_dashboards.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_data_pipelines.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_dax.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_deployment_pipelines.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_documentation.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_eventstreams.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_gateways.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_git.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_job_scheduler.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_kql_querysets.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_mirrored_warehouses.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_ml_models.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_model_auto_build.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_model_dependencies.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_mounted_data_factories.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_notebooks.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_query_scale_out.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_refresh_semantic_model.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_spark.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_translations.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_utils.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/_workloads.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/admin/__init__.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/admin/_activities.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/admin/_apps.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/admin/_artifacts.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/admin/_capacities.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/admin/_datasets.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/admin/_domains.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/admin/_external_data_share.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/admin/_git.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/admin/_items.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/admin/_shared.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/admin/_users.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/admin/_workspaces.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/directlake/__init__.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/directlake/_get_directlake_lakehouse.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/directlake/_get_shared_expression.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/directlake/_list_directlake_model_calc_tables.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/directlake/_show_unsupported_directlake_objects.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/directlake/_warm_cache.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/graph/__init__.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/lakehouse/_get_lakehouse_columns.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/lakehouse/_get_lakehouse_tables.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/lakehouse/_lakehouse.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/migration/__init__.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/migration/_create_pqt_file.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/migration/_migrate_calctables_to_lakehouse.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/migration/_migrate_calctables_to_semantic_model.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/migration/_refresh_calc_tables.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_BPAReportTemplate.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/.platform +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/1b08bce3bebabb0a27a8/visual.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/2f22ddb70c301693c165/visual.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/3b1182230aa6c600b43a/visual.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/58577ba6380c69891500/visual.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/a2a8fa5028b3b776c96c/visual.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/adfd47ef30652707b987/visual.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/b6a80ee459e716e170b1/visual.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/ce3130a721c020cc3d81/visual.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/visuals/66e60dfb526437cd78d1/visual.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/07deb8bce824e1be37d7/visual.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0b1c68838818b32ad03b/visual.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0c171de9d2683d10b930/visual.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0efa01be0510e40a645e/visual.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/6bf2f0eb830ab53cc668/visual.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/88d8141cb8500b60030c/visual.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/a753273590beed656a03/visual.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/b8fdc82cddd61ac447bc/visual.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/report.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition/version.json +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_bpareporttemplate/definition.pbir +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_export_report.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_paginated.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_report_bpa.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_report_bpa_rules.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/report/_report_list_functions.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/sempy_labs/tom/__init__.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/tests/__init__.py +0 -0
- {semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/tests/test_friendly_case.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: semantic-link-labs
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.7
|
|
4
4
|
Summary: Semantic Link Labs for Microsoft Fabric
|
|
5
5
|
Author: Microsoft Corporation
|
|
6
6
|
License: MIT License
|
|
@@ -15,18 +15,19 @@ 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.
|
|
18
|
+
Requires-Dist: semantic-link-sempy>=0.9.3
|
|
19
19
|
Requires-Dist: anytree
|
|
20
20
|
Requires-Dist: powerbiclient
|
|
21
21
|
Requires-Dist: polib
|
|
22
22
|
Requires-Dist: jsonpath_ng
|
|
23
23
|
Provides-Extra: test
|
|
24
24
|
Requires-Dist: pytest>=8.2.1; extra == "test"
|
|
25
|
+
Dynamic: license-file
|
|
25
26
|
|
|
26
27
|
# Semantic Link Labs
|
|
27
28
|
|
|
28
29
|
[](https://badge.fury.io/py/semantic-link-labs)
|
|
29
|
-
[](https://readthedocs.org/projects/semantic-link-labs/)
|
|
30
31
|
[](https://github.com/psf/black)
|
|
31
32
|
[](https://pepy.tech/project/semantic-link-labs)
|
|
32
33
|
|
|
@@ -148,6 +149,8 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
148
149
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
149
150
|
|
|
150
151
|
## Version History
|
|
152
|
+
* [0.9.7](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.7) (April 1, 2025)
|
|
153
|
+
* [0.9.6](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.6) (March 12, 2025)
|
|
151
154
|
* [0.9.5](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.5) (March 7, 2025)
|
|
152
155
|
* [0.9.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.4) (February 27, 2025)
|
|
153
156
|
* [0.9.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.3) (February 13, 2025)
|
|
@@ -308,7 +311,7 @@ We use [black](github.com/psf/black) formatting as a code formatting standard. M
|
|
|
308
311
|
|
|
309
312
|
Run this code to install black
|
|
310
313
|
```cli
|
|
311
|
-
pip install black
|
|
314
|
+
pip install black==25.1.0
|
|
312
315
|
```
|
|
313
316
|
|
|
314
317
|
Run this code to format your code using black
|
|
@@ -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
|
|
|
@@ -123,6 +123,8 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
123
123
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
124
124
|
|
|
125
125
|
## Version History
|
|
126
|
+
* [0.9.7](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.7) (April 1, 2025)
|
|
127
|
+
* [0.9.6](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.6) (March 12, 2025)
|
|
126
128
|
* [0.9.5](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.5) (March 7, 2025)
|
|
127
129
|
* [0.9.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.4) (February 27, 2025)
|
|
128
130
|
* [0.9.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.3) (February 13, 2025)
|
|
@@ -283,7 +285,7 @@ We use [black](github.com/psf/black) formatting as a code formatting standard. M
|
|
|
283
285
|
|
|
284
286
|
Run this code to install black
|
|
285
287
|
```cli
|
|
286
|
-
pip install black
|
|
288
|
+
pip install black==25.1.0
|
|
287
289
|
```
|
|
288
290
|
|
|
289
291
|
Run this code to format your code using black
|
|
@@ -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.9.
|
|
16
|
+
release = '0.9.7'
|
|
17
17
|
|
|
18
18
|
# -- General configuration ---------------------------------------------------
|
|
19
19
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
|
@@ -7,7 +7,7 @@ name="semantic-link-labs"
|
|
|
7
7
|
authors = [
|
|
8
8
|
{ name = "Microsoft Corporation" },
|
|
9
9
|
]
|
|
10
|
-
version="0.9.
|
|
10
|
+
version="0.9.7"
|
|
11
11
|
description="Semantic Link Labs for Microsoft Fabric"
|
|
12
12
|
readme="README.md"
|
|
13
13
|
requires-python=">=3.10,<3.12"
|
|
@@ -23,7 +23,7 @@ classifiers = [
|
|
|
23
23
|
license= { text = "MIT License" }
|
|
24
24
|
|
|
25
25
|
dependencies = [
|
|
26
|
-
"semantic-link-sempy>=0.
|
|
26
|
+
"semantic-link-sempy>=0.9.3",
|
|
27
27
|
"anytree",
|
|
28
28
|
"powerbiclient",
|
|
29
29
|
"polib",
|
{semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/semantic_link_labs.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: semantic-link-labs
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.7
|
|
4
4
|
Summary: Semantic Link Labs for Microsoft Fabric
|
|
5
5
|
Author: Microsoft Corporation
|
|
6
6
|
License: MIT License
|
|
@@ -15,18 +15,19 @@ 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.
|
|
18
|
+
Requires-Dist: semantic-link-sempy>=0.9.3
|
|
19
19
|
Requires-Dist: anytree
|
|
20
20
|
Requires-Dist: powerbiclient
|
|
21
21
|
Requires-Dist: polib
|
|
22
22
|
Requires-Dist: jsonpath_ng
|
|
23
23
|
Provides-Extra: test
|
|
24
24
|
Requires-Dist: pytest>=8.2.1; extra == "test"
|
|
25
|
+
Dynamic: license-file
|
|
25
26
|
|
|
26
27
|
# Semantic Link Labs
|
|
27
28
|
|
|
28
29
|
[](https://badge.fury.io/py/semantic-link-labs)
|
|
29
|
-
[](https://readthedocs.org/projects/semantic-link-labs/)
|
|
30
31
|
[](https://github.com/psf/black)
|
|
31
32
|
[](https://pepy.tech/project/semantic-link-labs)
|
|
32
33
|
|
|
@@ -148,6 +149,8 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
148
149
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
149
150
|
|
|
150
151
|
## Version History
|
|
152
|
+
* [0.9.7](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.7) (April 1, 2025)
|
|
153
|
+
* [0.9.6](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.6) (March 12, 2025)
|
|
151
154
|
* [0.9.5](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.5) (March 7, 2025)
|
|
152
155
|
* [0.9.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.4) (February 27, 2025)
|
|
153
156
|
* [0.9.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.3) (February 13, 2025)
|
|
@@ -308,7 +311,7 @@ We use [black](github.com/psf/black) formatting as a code formatting standard. M
|
|
|
308
311
|
|
|
309
312
|
Run this code to install black
|
|
310
313
|
```cli
|
|
311
|
-
pip install black
|
|
314
|
+
pip install black==25.1.0
|
|
312
315
|
```
|
|
313
316
|
|
|
314
317
|
Run this code to format your code using black
|
{semantic_link_labs-0.9.5 → semantic_link_labs-0.9.7}/src/semantic_link_labs.egg-info/SOURCES.txt
RENAMED
|
@@ -47,7 +47,9 @@ src/sempy_labs/_dashboards.py
|
|
|
47
47
|
src/sempy_labs/_data_pipelines.py
|
|
48
48
|
src/sempy_labs/_dataflows.py
|
|
49
49
|
src/sempy_labs/_dax.py
|
|
50
|
+
src/sempy_labs/_dax_query_view.py
|
|
50
51
|
src/sempy_labs/_delta_analyzer.py
|
|
52
|
+
src/sempy_labs/_delta_analyzer_history.py
|
|
51
53
|
src/sempy_labs/_deployment_pipelines.py
|
|
52
54
|
src/sempy_labs/_documentation.py
|
|
53
55
|
src/sempy_labs/_environments.py
|
|
@@ -163,6 +165,7 @@ src/sempy_labs/graph/_groups.py
|
|
|
163
165
|
src/sempy_labs/graph/_teams.py
|
|
164
166
|
src/sempy_labs/graph/_users.py
|
|
165
167
|
src/sempy_labs/lakehouse/__init__.py
|
|
168
|
+
src/sempy_labs/lakehouse/_blobs.py
|
|
166
169
|
src/sempy_labs/lakehouse/_get_lakehouse_columns.py
|
|
167
170
|
src/sempy_labs/lakehouse/_get_lakehouse_tables.py
|
|
168
171
|
src/sempy_labs/lakehouse/_lakehouse.py
|
|
@@ -189,6 +192,7 @@ src/sempy_labs/report/_report_helper.py
|
|
|
189
192
|
src/sempy_labs/report/_report_list_functions.py
|
|
190
193
|
src/sempy_labs/report/_report_rebind.py
|
|
191
194
|
src/sempy_labs/report/_reportwrapper.py
|
|
195
|
+
src/sempy_labs/report/_save_report.py
|
|
192
196
|
src/sempy_labs/report/_bpareporttemplate/.platform
|
|
193
197
|
src/sempy_labs/report/_bpareporttemplate/definition.pbir
|
|
194
198
|
src/sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json
|
|
@@ -221,5 +225,4 @@ src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/v
|
|
|
221
225
|
src/sempy_labs/tom/__init__.py
|
|
222
226
|
src/sempy_labs/tom/_model.py
|
|
223
227
|
tests/__init__.py
|
|
224
|
-
tests/test_friendly_case.py
|
|
225
|
-
tests/test_tom.py
|
|
228
|
+
tests/test_friendly_case.py
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
from sempy_labs._delta_analyzer_history import (
|
|
2
|
+
delta_analyzer_history,
|
|
3
|
+
)
|
|
4
|
+
from sempy_labs._dax_query_view import (
|
|
5
|
+
generate_dax_query_view_url,
|
|
6
|
+
)
|
|
1
7
|
from sempy_labs._mounted_data_factories import (
|
|
2
8
|
list_mounted_data_factories,
|
|
3
9
|
get_mounted_data_factory_definition,
|
|
@@ -7,6 +13,7 @@ from sempy_labs._mounted_data_factories import (
|
|
|
7
13
|
from sempy_labs._semantic_models import (
|
|
8
14
|
get_semantic_model_refresh_schedule,
|
|
9
15
|
enable_semantic_model_scheduled_refresh,
|
|
16
|
+
delete_semantic_model,
|
|
10
17
|
)
|
|
11
18
|
from sempy_labs._graphQL import (
|
|
12
19
|
list_graphql_apis,
|
|
@@ -148,6 +155,7 @@ from sempy_labs._capacities import (
|
|
|
148
155
|
create_or_update_resource_group,
|
|
149
156
|
list_resource_groups,
|
|
150
157
|
get_resource_group,
|
|
158
|
+
list_capacities,
|
|
151
159
|
)
|
|
152
160
|
from sempy_labs._spark import (
|
|
153
161
|
get_spark_settings,
|
|
@@ -165,6 +173,7 @@ from sempy_labs._workspaces import (
|
|
|
165
173
|
assign_workspace_to_capacity,
|
|
166
174
|
unassign_workspace_from_capacity,
|
|
167
175
|
list_workspace_role_assignments,
|
|
176
|
+
delete_workspace,
|
|
168
177
|
)
|
|
169
178
|
from sempy_labs._notebooks import (
|
|
170
179
|
get_notebook_definition,
|
|
@@ -180,6 +189,9 @@ from sempy_labs._sql import (
|
|
|
180
189
|
from sempy_labs._sqldatabase import (
|
|
181
190
|
get_sql_database_columns,
|
|
182
191
|
get_sql_database_tables,
|
|
192
|
+
create_sql_database,
|
|
193
|
+
delete_sql_database,
|
|
194
|
+
list_sql_databases,
|
|
183
195
|
)
|
|
184
196
|
from sempy_labs._workspace_identity import (
|
|
185
197
|
provision_workspace_identity,
|
|
@@ -244,7 +256,6 @@ from sempy_labs._list_functions import (
|
|
|
244
256
|
list_semantic_model_objects,
|
|
245
257
|
list_shortcuts,
|
|
246
258
|
get_object_level_security,
|
|
247
|
-
list_capacities,
|
|
248
259
|
list_datamarts,
|
|
249
260
|
list_lakehouses,
|
|
250
261
|
list_sql_endpoints,
|
|
@@ -540,4 +551,11 @@ __all__ = [
|
|
|
540
551
|
"list_mounted_data_factories",
|
|
541
552
|
"get_mounted_data_factory_definition",
|
|
542
553
|
"delete_mounted_data_factory",
|
|
554
|
+
"generate_dax_query_view_url",
|
|
555
|
+
"delete_semantic_model",
|
|
556
|
+
"delete_workspace",
|
|
557
|
+
"create_sql_database",
|
|
558
|
+
"delete_sql_database",
|
|
559
|
+
"list_sql_databases",
|
|
560
|
+
"delta_analyzer_history",
|
|
543
561
|
]
|
|
@@ -216,7 +216,9 @@ def generate_aggs(
|
|
|
216
216
|
f"{icons.green_dot} The '{aggLakeTName}' table has been created/updated in the lakehouse."
|
|
217
217
|
|
|
218
218
|
# Create/update semantic model agg table
|
|
219
|
-
tom_server = fabric.create_tom_server(
|
|
219
|
+
tom_server = fabric.create_tom_server(
|
|
220
|
+
dataset=dataset, readonly=False, workspace=workspace
|
|
221
|
+
)
|
|
220
222
|
m = tom_server.Databases.GetByName(dataset).Model
|
|
221
223
|
print(f"\n{icons.in_progress} Updating the '{dataset}' semantic model...")
|
|
222
224
|
dfC_agg = dfC[dfC["Table Name"] == aggTableName]
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import sempy.fabric as fabric
|
|
2
1
|
from typing import Optional, List, Tuple
|
|
3
2
|
from sempy._utils._log import log
|
|
4
3
|
import sempy_labs._icons as icons
|
|
@@ -242,7 +241,7 @@ def list_vcores() -> pd.DataFrame:
|
|
|
242
241
|
|
|
243
242
|
def get_capacity_resource_governance(capacity_name: str):
|
|
244
243
|
|
|
245
|
-
dfC =
|
|
244
|
+
dfC = list_capacities()
|
|
246
245
|
dfC_filt = dfC[dfC["Display Name"] == capacity_name]
|
|
247
246
|
capacity_id = dfC_filt["Id"].iloc[0].upper()
|
|
248
247
|
|
|
@@ -1131,3 +1130,39 @@ def get_resource_group(azure_subscription_id: str, resource_group: str) -> pd.Da
|
|
|
1131
1130
|
}
|
|
1132
1131
|
|
|
1133
1132
|
return pd.DataFrame(new_data, index=[0])
|
|
1133
|
+
|
|
1134
|
+
|
|
1135
|
+
def list_capacities() -> pd.DataFrame:
|
|
1136
|
+
"""
|
|
1137
|
+
Shows the capacities and their properties.
|
|
1138
|
+
|
|
1139
|
+
Returns
|
|
1140
|
+
-------
|
|
1141
|
+
pandas.DataFrame
|
|
1142
|
+
A pandas dataframe showing the capacities and their properties
|
|
1143
|
+
"""
|
|
1144
|
+
|
|
1145
|
+
columns = {
|
|
1146
|
+
"Id": "string",
|
|
1147
|
+
"Display Name": "string",
|
|
1148
|
+
"Sku": "string",
|
|
1149
|
+
"Region": "string",
|
|
1150
|
+
"State": "string",
|
|
1151
|
+
"Admins": "string",
|
|
1152
|
+
}
|
|
1153
|
+
df = _create_dataframe(columns=columns)
|
|
1154
|
+
|
|
1155
|
+
response = _base_api(request="/v1.0/myorg/capacities", client="fabric_sp")
|
|
1156
|
+
|
|
1157
|
+
for i in response.json().get("value", []):
|
|
1158
|
+
new_data = {
|
|
1159
|
+
"Id": i.get("id").lower(),
|
|
1160
|
+
"Display Name": i.get("displayName"),
|
|
1161
|
+
"Sku": i.get("sku"),
|
|
1162
|
+
"Region": i.get("region"),
|
|
1163
|
+
"State": i.get("state"),
|
|
1164
|
+
"Admins": [i.get("admins", [])],
|
|
1165
|
+
}
|
|
1166
|
+
df = pd.concat([df, pd.DataFrame(new_data, index=[0])], ignore_index=True)
|
|
1167
|
+
|
|
1168
|
+
return df
|
|
@@ -106,17 +106,13 @@ def migrate_workspaces(
|
|
|
106
106
|
migrated_workspaces = []
|
|
107
107
|
|
|
108
108
|
for i, r in dfW.iterrows():
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
if workspaces is None or
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
if assign_workspace_to_capacity(
|
|
117
|
-
capacity_name=target_capacity, workspace=workspace
|
|
118
|
-
):
|
|
119
|
-
migrated_workspaces.append(workspace)
|
|
109
|
+
workspace_id = r["Id"]
|
|
110
|
+
workspace_name = r["Name"]
|
|
111
|
+
if workspaces is None or workspace_name in workspaces:
|
|
112
|
+
assign_workspace_to_capacity(
|
|
113
|
+
capacity=target_capacity, workspace=workspace_id
|
|
114
|
+
)
|
|
115
|
+
migrated_workspaces.append(workspace_name)
|
|
120
116
|
|
|
121
117
|
if len(migrated_workspaces) < workspace_count:
|
|
122
118
|
print(
|
|
@@ -124,10 +120,11 @@ def migrate_workspaces(
|
|
|
124
120
|
)
|
|
125
121
|
print(f"{icons.in_progress} Initiating rollback...")
|
|
126
122
|
for i, r in dfW.iterrows():
|
|
127
|
-
|
|
128
|
-
|
|
123
|
+
workspace_id = r["Id"]
|
|
124
|
+
workspace_name = r["Name"]
|
|
125
|
+
if workspace_name in migrated_workspaces:
|
|
129
126
|
assign_workspace_to_capacity(
|
|
130
|
-
|
|
127
|
+
capacity=source_capacity, workspace=workspace_id
|
|
131
128
|
)
|
|
132
129
|
print(
|
|
133
130
|
f"{icons.green_dot} Rollback of the workspaces to the '{source_capacity}' capacity is complete."
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import sempy.fabric as fabric
|
|
2
1
|
import pandas as pd
|
|
3
2
|
from typing import Optional
|
|
4
3
|
from sempy_labs._helper_functions import (
|
|
@@ -7,6 +6,7 @@ from sempy_labs._helper_functions import (
|
|
|
7
6
|
_update_dataframe_datatypes,
|
|
8
7
|
_base_api,
|
|
9
8
|
_create_dataframe,
|
|
9
|
+
resolve_item_id,
|
|
10
10
|
)
|
|
11
11
|
from uuid import UUID
|
|
12
12
|
import sempy_labs._icons as icons
|
|
@@ -230,9 +230,7 @@ def list_item_connections(
|
|
|
230
230
|
|
|
231
231
|
(workspace_name, workspace_id) = resolve_workspace_name_and_id(workspace)
|
|
232
232
|
item_type = item_type[0].upper() + item_type[1:]
|
|
233
|
-
item_id =
|
|
234
|
-
item_name=item_name, type=item_type, workspace=workspace_id
|
|
235
|
-
)
|
|
233
|
+
item_id = resolve_item_id(item=item_name, type=item_type, workspace=workspace_id)
|
|
236
234
|
|
|
237
235
|
columns = {
|
|
238
236
|
"Connection Name": "string",
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import sempy.fabric as fabric
|
|
2
1
|
import pandas as pd
|
|
3
2
|
from sempy_labs._helper_functions import (
|
|
4
3
|
resolve_workspace_name_and_id,
|
|
@@ -6,6 +5,7 @@ from sempy_labs._helper_functions import (
|
|
|
6
5
|
_update_dataframe_datatypes,
|
|
7
6
|
_base_api,
|
|
8
7
|
_create_dataframe,
|
|
8
|
+
resolve_workspace_name,
|
|
9
9
|
)
|
|
10
10
|
from typing import Optional, Tuple
|
|
11
11
|
import sempy_labs._icons as icons
|
|
@@ -187,7 +187,7 @@ def list_upstream_dataflows(
|
|
|
187
187
|
for v in values:
|
|
188
188
|
tgt_dataflow_id = v.get("targetDataflowId")
|
|
189
189
|
tgt_workspace_id = v.get("groupId")
|
|
190
|
-
tgt_workspace_name =
|
|
190
|
+
tgt_workspace_name = resolve_workspace_name(workspace_id=tgt_workspace_id)
|
|
191
191
|
(tgt_dataflow_name, _) = _resolve_dataflow_name_and_id(
|
|
192
192
|
dataflow=tgt_dataflow_id, workspace=tgt_workspace_id
|
|
193
193
|
)
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
from uuid import UUID
|
|
3
|
+
from sempy_labs._helper_functions import (
|
|
4
|
+
resolve_dataset_id,
|
|
5
|
+
_get_fabric_context_setting,
|
|
6
|
+
resolve_workspace_id,
|
|
7
|
+
)
|
|
8
|
+
from sempy._utils._log import log
|
|
9
|
+
import gzip
|
|
10
|
+
import base64
|
|
11
|
+
import urllib.parse
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@log
|
|
15
|
+
def generate_dax_query_view_url(
|
|
16
|
+
dataset: str | UUID, dax_string: str, workspace: Optional[str | UUID] = None
|
|
17
|
+
):
|
|
18
|
+
"""
|
|
19
|
+
Prints a URL based on query provided. This URL opens `DAX query view <https://learn.microsoft.com/power-bi/transform-model/dax-query-view>`_ in the Power BI service, connected to the semantic model and using the query provided.
|
|
20
|
+
|
|
21
|
+
Parameters
|
|
22
|
+
----------
|
|
23
|
+
dataset : str | uuid.UUID
|
|
24
|
+
The semantic model name or ID.
|
|
25
|
+
dax_string : str
|
|
26
|
+
The DAX query string.
|
|
27
|
+
workspace : str | uuid.UUID, default=None
|
|
28
|
+
The workspace name or ID.
|
|
29
|
+
Defaults to None which resolves to the workspace of the attached lakehouse
|
|
30
|
+
or if no lakehouse attached, resolves to the workspace of the notebook.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
workspace_id = resolve_workspace_id(workspace=workspace)
|
|
34
|
+
dataset_id = resolve_dataset_id(dataset=dataset, workspace=workspace_id)
|
|
35
|
+
|
|
36
|
+
prefix = _get_fabric_context_setting(name="spark.trident.pbienv").lower()
|
|
37
|
+
|
|
38
|
+
if prefix == "prod":
|
|
39
|
+
prefix = "app"
|
|
40
|
+
|
|
41
|
+
def gzip_base64_urlsafe(input_string):
|
|
42
|
+
# Compress the string with gzip
|
|
43
|
+
compressed_data = gzip.compress(input_string.encode("utf-8"))
|
|
44
|
+
|
|
45
|
+
# Encode the compressed data in base64
|
|
46
|
+
base64_data = base64.b64encode(compressed_data)
|
|
47
|
+
|
|
48
|
+
# Make the base64 string URL-safe
|
|
49
|
+
urlsafe_data = urllib.parse.quote_plus(base64_data.decode("utf-8"))
|
|
50
|
+
|
|
51
|
+
return urlsafe_data
|
|
52
|
+
|
|
53
|
+
formatted_query = gzip_base64_urlsafe(dax_string)
|
|
54
|
+
|
|
55
|
+
url = f"https://{prefix}.powerbi.com/groups/{workspace_id}/modeling/{dataset_id}/daxQueryView?query={formatted_query}"
|
|
56
|
+
|
|
57
|
+
print(url)
|
|
@@ -52,6 +52,7 @@ def delta_analyzer(
|
|
|
52
52
|
workspace: Optional[str | UUID] = None,
|
|
53
53
|
column_stats: bool = True,
|
|
54
54
|
skip_cardinality: bool = True,
|
|
55
|
+
schema: Optional[str] = None,
|
|
55
56
|
) -> Dict[str, pd.DataFrame]:
|
|
56
57
|
"""
|
|
57
58
|
Analyzes a delta table and shows the results in dictionary containing a set of 5 dataframes. If 'export' is set to True, the results will be saved to delta tables in the lakehouse attached to the notebook.
|
|
@@ -85,6 +86,8 @@ def delta_analyzer(
|
|
|
85
86
|
If True, collects data about column chunks and columns. If False, skips that step and only returns the other 3 dataframes.
|
|
86
87
|
skip_cardinality : bool, default=True
|
|
87
88
|
If True, skips the cardinality calculation for each column. If False, calculates the cardinality for each column.
|
|
89
|
+
schema : str, default=None
|
|
90
|
+
The name of the schema to which the table belongs (for schema-enabled lakehouses). If None, the default schema is used.
|
|
88
91
|
|
|
89
92
|
Returns
|
|
90
93
|
-------
|
|
@@ -96,25 +99,21 @@ def delta_analyzer(
|
|
|
96
99
|
if not skip_cardinality:
|
|
97
100
|
column_stats = True
|
|
98
101
|
|
|
99
|
-
# display_toggle = notebookutils.common.configs.pandas_display
|
|
100
|
-
|
|
101
|
-
# Turn off notebookutils display
|
|
102
|
-
# if display_toggle is True:
|
|
103
|
-
# notebookutils.common.configs.pandas_display = False
|
|
104
|
-
|
|
105
102
|
prefix = "SLL_DeltaAnalyzer_"
|
|
106
103
|
now = datetime.now()
|
|
107
104
|
(workspace_name, workspace_id) = resolve_workspace_name_and_id(workspace=workspace)
|
|
108
105
|
(lakehouse_name, lakehouse_id) = resolve_lakehouse_name_and_id(
|
|
109
106
|
lakehouse=lakehouse, workspace=workspace
|
|
110
107
|
)
|
|
111
|
-
path = create_abfss_path(lakehouse_id, workspace_id, table_name)
|
|
112
|
-
local_path = _mount(lakehouse=lakehouse, workspace=workspace)
|
|
113
|
-
table_path = f"{local_path}/Tables/{table_name}"
|
|
114
|
-
delta_table_path = create_abfss_path(lakehouse_id, workspace_id, table_name)
|
|
115
108
|
|
|
116
|
-
|
|
117
|
-
|
|
109
|
+
delta_table_path = create_abfss_path(
|
|
110
|
+
lakehouse_id, workspace_id, table_name, schema=schema
|
|
111
|
+
)
|
|
112
|
+
local_path = _mount(lakehouse=lakehouse, workspace=workspace)
|
|
113
|
+
if schema is not None:
|
|
114
|
+
table_path = f"{local_path}/Tables/{schema}/{table_name}"
|
|
115
|
+
else:
|
|
116
|
+
table_path = f"{local_path}/Tables/{table_name}"
|
|
118
117
|
|
|
119
118
|
parquet_file_df_columns = {
|
|
120
119
|
# "Dataset": "string",
|
|
@@ -183,7 +182,7 @@ def delta_analyzer(
|
|
|
183
182
|
# min_reader_version = table_details.get("minReaderVersion")
|
|
184
183
|
# min_writer_version = table_details.get("minWriterVersion")
|
|
185
184
|
|
|
186
|
-
latest_files = _read_delta_table(
|
|
185
|
+
latest_files = _read_delta_table(delta_table_path).inputFiles()
|
|
187
186
|
# file_paths = [f.split("/")[-1] for f in latest_files]
|
|
188
187
|
all_parquet_files = get_parquet_file_infos(delta_table_path)
|
|
189
188
|
common_file_paths = set(
|
|
@@ -430,6 +429,7 @@ def get_delta_table_history(
|
|
|
430
429
|
table_name: str,
|
|
431
430
|
lakehouse: Optional[str | UUID] = None,
|
|
432
431
|
workspace: Optional[str | UUID] = None,
|
|
432
|
+
schema: Optional[str] = None,
|
|
433
433
|
) -> pd.DataFrame:
|
|
434
434
|
"""
|
|
435
435
|
Returns the history of a delta table as a pandas dataframe.
|
|
@@ -445,6 +445,8 @@ def get_delta_table_history(
|
|
|
445
445
|
The Fabric workspace name or ID used by the lakehouse.
|
|
446
446
|
Defaults to None which resolves to the workspace of the attached lakehouse
|
|
447
447
|
or if no lakehouse attached, resolves to the workspace of the notebook.
|
|
448
|
+
schema : str, default=None
|
|
449
|
+
The name of the schema to which the table belongs (for schema-enabled lakehouses). If None, the default schema is used.
|
|
448
450
|
|
|
449
451
|
Returns
|
|
450
452
|
-------
|
|
@@ -461,7 +463,7 @@ def get_delta_table_history(
|
|
|
461
463
|
(lakehouse_name, lakehouse_id) = resolve_lakehouse_name_and_id(
|
|
462
464
|
lakehouse=lakehouse, workspace=workspace
|
|
463
465
|
)
|
|
464
|
-
path = create_abfss_path(lakehouse_id, workspace_id, table_name)
|
|
466
|
+
path = create_abfss_path(lakehouse_id, workspace_id, table_name, schema)
|
|
465
467
|
|
|
466
468
|
from delta import DeltaTable
|
|
467
469
|
|