semantic-link-labs 0.12.2__tar.gz → 0.12.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.12.2 → semantic_link_labs-0.12.3}/PKG-INFO +3 -2
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/README.md +2 -1
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/docs/source/conf.py +1 -1
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/pyproject.toml +1 -1
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/semantic_link_labs.egg-info/PKG-INFO +3 -2
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/semantic_link_labs.egg-info/SOURCES.txt +2 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/__init__.py +8 -2
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_a_lib_info.py +1 -1
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_generate_semantic_model.py +2 -2
- semantic_link_labs-0.12.3/src/sempy_labs/_get_connection_string.py +84 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_helper_functions.py +1 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_semantic_models.py +118 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_sql_endpoints.py +12 -24
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_warehouses.py +1 -56
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/graph/__init__.py +4 -0
- semantic_link_labs-0.12.3/src/sempy_labs/graph/_sensitivity_labels.py +81 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/tom/_model.py +30 -12
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/.github/ISSUE_TEMPLATE/issue--question---advice-needed.md +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/.github/workflows/build.yaml +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/.github/workflows/codeql.yaml +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/.gitignore +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/.readthedocs.yaml +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/.vscode/settings.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/CODE_OF_CONDUCT.md +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/LICENSE +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/SECURITY.md +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/SUPPORT.md +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/docs/Makefile +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/docs/make.bat +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/docs/requirements.txt +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/docs/source/index.rst +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/docs/source/modules.rst +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/environment.yml +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/notebooks/Best Practice Analyzer Report.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/notebooks/Capacity Migration.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/notebooks/Delta Analyzer.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/notebooks/Migration to Direct Lake.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/notebooks/Model Optimization.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/notebooks/Query Scale Out.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/notebooks/Report Analysis.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/notebooks/SQL.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/notebooks/Semantic Model Management.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/notebooks/Semantic Model Refresh.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/notebooks/Service Principal.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/notebooks/Tabular Object Model.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/setup.cfg +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/semantic_link_labs.egg-info/dependency_links.txt +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/semantic_link_labs.egg-info/requires.txt +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/semantic_link_labs.egg-info/top_level.txt +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_ai.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_authentication.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_am-ET.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_ar-AE.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_bg-BG.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_ca-ES.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_cs-CZ.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_da-DK.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_de-DE.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_el-GR.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_es-ES.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_fa-IR.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_fi-FI.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_fr-FR.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_ga-IE.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_he-IL.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_hi-IN.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_hu-HU.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_id-ID.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_is-IS.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_it-IT.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_ja-JP.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_ko-KR.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_mt-MT.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_nl-NL.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_pl-PL.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_pt-BR.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_pt-PT.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_ro-RO.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_ru-RU.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_sk-SK.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_sl-SL.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_sv-SE.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_ta-IN.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_te-IN.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_th-TH.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_tr-TR.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_uk-UA.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_zh-CN.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_capacities.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_capacity_migration.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_clear_cache.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_connections.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_dashboards.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_data_access_security.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_data_pipelines.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_dataflows.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_dax.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_daxformatter.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_delta_analyzer.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_delta_analyzer_history.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_deployment_pipelines.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_dictionary_diffs.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_documentation.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_environments.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_eventhouses.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_eventstreams.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_external_data_shares.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_gateways.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_git.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_graphQL.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_icons.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_job_scheduler.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_kql_databases.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_kql_querysets.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_kusto.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_labels.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_list_functions.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_managed_private_endpoints.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_mirrored_databases.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_mirrored_warehouses.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_ml_experiments.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_model_auto_build.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_model_bpa.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_model_bpa_bulk.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_model_bpa_rules.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_model_dependencies.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_mounted_data_factories.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_notebooks.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_one_lake_integration.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_query_scale_out.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_refresh_semantic_model.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_spark.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_sql.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_sqldatabase.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_tags.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_translations.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_user_delegation_key.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_utils.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_vertipaq.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_vpax.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_workloads.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_workspace_identity.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_workspaces.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_activities.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_apps.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_artifacts.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_basic_functions.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_capacities.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_dataflows.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_datasets.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_domains.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_external_data_share.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_git.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_items.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_reports.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_scanner.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_shared.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_sharing_links.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_tags.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_tenant.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_tenant_keys.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_users.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/admin/_workspaces.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/directlake/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/directlake/_directlake_schema_compare.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/directlake/_directlake_schema_sync.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/directlake/_dl_helper.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/directlake/_generate_shared_expression.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/directlake/_get_directlake_lakehouse.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/directlake/_get_shared_expression.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/directlake/_guardrails.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/directlake/_list_directlake_model_calc_tables.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/directlake/_show_unsupported_directlake_objects.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/directlake/_update_directlake_partition_entity.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/directlake/_warm_cache.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/dotnet_lib/dotnet.runtime.config.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/graph/_groups.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/graph/_teams.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/graph/_users.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/lakehouse/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/lakehouse/_blobs.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/lakehouse/_get_lakehouse_columns.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/lakehouse/_get_lakehouse_tables.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/lakehouse/_helper.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/lakehouse/_lakehouse.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/lakehouse/_livy_sessions.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/lakehouse/_materialized_lake_views.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/lakehouse/_shortcuts.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/migration/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/migration/_create_pqt_file.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/migration/_direct_lake_to_import.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/migration/_migrate_calctables_to_lakehouse.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/migration/_migrate_calctables_to_semantic_model.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/migration/_migration_validation.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/migration/_refresh_calc_tables.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/mirrored_azure_databricks_catalog/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/mirrored_azure_databricks_catalog/_discover.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/mirrored_azure_databricks_catalog/_refresh_catalog_metadata.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/ml_model/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/ml_model/_functions.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_BPAReportTemplate.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/.platform +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/1b08bce3bebabb0a27a8/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/2f22ddb70c301693c165/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/3b1182230aa6c600b43a/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/58577ba6380c69891500/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/a2a8fa5028b3b776c96c/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/adfd47ef30652707b987/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/b6a80ee459e716e170b1/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/ce3130a721c020cc3d81/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/visuals/66e60dfb526437cd78d1/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/07deb8bce824e1be37d7/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0b1c68838818b32ad03b/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0c171de9d2683d10b930/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0efa01be0510e40a645e/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/6bf2f0eb830ab53cc668/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/88d8141cb8500b60030c/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/a753273590beed656a03/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/b8fdc82cddd61ac447bc/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/report.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition/version.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_bpareporttemplate/definition.pbir +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_download_report.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_export_report.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_generate_report.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_paginated.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_report_bpa.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_report_bpa_rules.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_report_functions.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_report_helper.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_report_list_functions.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_report_rebind.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_reportwrapper.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/report/_save_report.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/theme/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/theme/_org_themes.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/tom/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/variable_library/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/variable_library/_functions.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/tests/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: semantic-link-labs
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.3
|
|
4
4
|
Summary: Semantic Link Labs for Microsoft Fabric
|
|
5
5
|
Author: Microsoft Corporation
|
|
6
6
|
License: MIT License
|
|
@@ -26,7 +26,7 @@ Dynamic: license-file
|
|
|
26
26
|
# Semantic Link Labs
|
|
27
27
|
|
|
28
28
|
[](https://badge.fury.io/py/semantic-link-labs)
|
|
29
|
-
[](https://readthedocs.org/projects/semantic-link-labs/)
|
|
30
30
|
[](https://github.com/psf/black)
|
|
31
31
|
[](https://pepy.tech/project/semantic-link-labs)
|
|
32
32
|
|
|
@@ -154,6 +154,7 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
154
154
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
155
155
|
|
|
156
156
|
## Version History
|
|
157
|
+
* [0.12.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.3) (September 17, 2025)
|
|
157
158
|
* [0.12.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.2) (September 12, 2025)
|
|
158
159
|
* [0.12.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.1) (September 4, 2025)
|
|
159
160
|
* [0.12.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.0) (September 2, 2025)
|
|
@@ -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
|
|
|
@@ -129,6 +129,7 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
129
129
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
130
130
|
|
|
131
131
|
## Version History
|
|
132
|
+
* [0.12.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.3) (September 17, 2025)
|
|
132
133
|
* [0.12.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.2) (September 12, 2025)
|
|
133
134
|
* [0.12.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.1) (September 4, 2025)
|
|
134
135
|
* [0.12.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.0) (September 2, 2025)
|
|
@@ -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.12.
|
|
16
|
+
release = '0.12.3'
|
|
17
17
|
|
|
18
18
|
# -- General configuration ---------------------------------------------------
|
|
19
19
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
{semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/semantic_link_labs.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: semantic-link-labs
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.3
|
|
4
4
|
Summary: Semantic Link Labs for Microsoft Fabric
|
|
5
5
|
Author: Microsoft Corporation
|
|
6
6
|
License: MIT License
|
|
@@ -26,7 +26,7 @@ Dynamic: license-file
|
|
|
26
26
|
# Semantic Link Labs
|
|
27
27
|
|
|
28
28
|
[](https://badge.fury.io/py/semantic-link-labs)
|
|
29
|
-
[](https://readthedocs.org/projects/semantic-link-labs/)
|
|
30
30
|
[](https://github.com/psf/black)
|
|
31
31
|
[](https://pepy.tech/project/semantic-link-labs)
|
|
32
32
|
|
|
@@ -154,6 +154,7 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
154
154
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
155
155
|
|
|
156
156
|
## Version History
|
|
157
|
+
* [0.12.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.3) (September 17, 2025)
|
|
157
158
|
* [0.12.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.2) (September 12, 2025)
|
|
158
159
|
* [0.12.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.1) (September 4, 2025)
|
|
159
160
|
* [0.12.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.0) (September 2, 2025)
|
{semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/semantic_link_labs.egg-info/SOURCES.txt
RENAMED
|
@@ -61,6 +61,7 @@ src/sempy_labs/_eventstreams.py
|
|
|
61
61
|
src/sempy_labs/_external_data_shares.py
|
|
62
62
|
src/sempy_labs/_gateways.py
|
|
63
63
|
src/sempy_labs/_generate_semantic_model.py
|
|
64
|
+
src/sempy_labs/_get_connection_string.py
|
|
64
65
|
src/sempy_labs/_git.py
|
|
65
66
|
src/sempy_labs/_graphQL.py
|
|
66
67
|
src/sempy_labs/_helper_functions.py
|
|
@@ -175,6 +176,7 @@ src/sempy_labs/directlake/_warm_cache.py
|
|
|
175
176
|
src/sempy_labs/dotnet_lib/dotnet.runtime.config.json
|
|
176
177
|
src/sempy_labs/graph/__init__.py
|
|
177
178
|
src/sempy_labs/graph/_groups.py
|
|
179
|
+
src/sempy_labs/graph/_sensitivity_labels.py
|
|
178
180
|
src/sempy_labs/graph/_teams.py
|
|
179
181
|
src/sempy_labs/graph/_users.py
|
|
180
182
|
src/sempy_labs/lakehouse/__init__.py
|
|
@@ -31,6 +31,8 @@ from ._semantic_models import (
|
|
|
31
31
|
delete_semantic_model,
|
|
32
32
|
update_semantic_model_refresh_schedule,
|
|
33
33
|
list_semantic_model_datasources,
|
|
34
|
+
bind_semantic_model_connection,
|
|
35
|
+
unbind_semantic_model_connection,
|
|
34
36
|
)
|
|
35
37
|
from ._graphQL import (
|
|
36
38
|
list_graphql_apis,
|
|
@@ -100,7 +102,6 @@ from ._warehouses import (
|
|
|
100
102
|
delete_warehouse,
|
|
101
103
|
get_warehouse_columns,
|
|
102
104
|
get_warehouse_tables,
|
|
103
|
-
get_warehouse_connection_string,
|
|
104
105
|
)
|
|
105
106
|
from ._data_pipelines import (
|
|
106
107
|
list_data_pipelines,
|
|
@@ -351,6 +352,9 @@ from ._user_delegation_key import (
|
|
|
351
352
|
from ._data_access_security import (
|
|
352
353
|
list_data_access_roles,
|
|
353
354
|
)
|
|
355
|
+
from ._get_connection_string import (
|
|
356
|
+
get_connection_string,
|
|
357
|
+
)
|
|
354
358
|
|
|
355
359
|
__all__ = [
|
|
356
360
|
"resolve_warehouse_id",
|
|
@@ -603,6 +607,8 @@ __all__ = [
|
|
|
603
607
|
"get_item_definition",
|
|
604
608
|
"get_workspace_network_communication_policy",
|
|
605
609
|
"set_workspace_network_communication_policy",
|
|
606
|
-
"
|
|
610
|
+
"get_connection_string",
|
|
607
611
|
"list_data_access_roles",
|
|
612
|
+
"bind_semantic_model_connection",
|
|
613
|
+
"unbind_semantic_model_connection",
|
|
608
614
|
]
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
lib_name = "semanticlinklabs"
|
|
2
|
-
lib_version = "0.12.
|
|
2
|
+
lib_version = "0.12.3"
|
{semantic_link_labs-0.12.2 → semantic_link_labs-0.12.3}/src/sempy_labs/_generate_semantic_model.py
RENAMED
|
@@ -22,7 +22,7 @@ from uuid import UUID
|
|
|
22
22
|
@log
|
|
23
23
|
def create_blank_semantic_model(
|
|
24
24
|
dataset: str,
|
|
25
|
-
compatibility_level: int =
|
|
25
|
+
compatibility_level: int = 1702,
|
|
26
26
|
workspace: Optional[str | UUID] = None,
|
|
27
27
|
overwrite: bool = True,
|
|
28
28
|
):
|
|
@@ -33,7 +33,7 @@ def create_blank_semantic_model(
|
|
|
33
33
|
----------
|
|
34
34
|
dataset : str
|
|
35
35
|
Name of the semantic model.
|
|
36
|
-
compatibility_level : int, default=
|
|
36
|
+
compatibility_level : int, default=1702
|
|
37
37
|
The compatibility level of the semantic model.
|
|
38
38
|
workspace : str | uuid.UUID, default=None
|
|
39
39
|
The Fabric workspace name or ID.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
from sempy_labs._helper_functions import (
|
|
2
|
+
resolve_item_id,
|
|
3
|
+
_base_api,
|
|
4
|
+
resolve_workspace_id,
|
|
5
|
+
)
|
|
6
|
+
from typing import Optional, Literal
|
|
7
|
+
import sempy_labs._icons as icons
|
|
8
|
+
from uuid import UUID
|
|
9
|
+
from sempy._utils._log import log
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@log
|
|
13
|
+
def get_connection_string(
|
|
14
|
+
item: str | UUID,
|
|
15
|
+
type: Literal["Lakehouse", "Warehouse", "SQLEndpoint"],
|
|
16
|
+
workspace: Optional[str | UUID] = None,
|
|
17
|
+
guest_tenant_id: Optional[UUID] = None,
|
|
18
|
+
private_link_type: Optional[str] = None,
|
|
19
|
+
) -> str:
|
|
20
|
+
"""
|
|
21
|
+
Returns the SQL connection string of the specified item.
|
|
22
|
+
|
|
23
|
+
Parameters
|
|
24
|
+
----------
|
|
25
|
+
item : str | uuid.UUID
|
|
26
|
+
The name or ID of the item (Lakehouse or MirroredDatabase).
|
|
27
|
+
type : Literal['Lakehouse', 'Warehouse', 'SQLEndpoint']
|
|
28
|
+
The type of the item. Must be 'Lakehouse' or 'MirroredDatabase'.
|
|
29
|
+
workspace : str | uuid.UUID, default=None
|
|
30
|
+
The Fabric workspace name or ID.
|
|
31
|
+
Defaults to None which resolves to the workspace of the attached lakehouse
|
|
32
|
+
or if no lakehouse attached, resolves to the workspace of the notebook.
|
|
33
|
+
guest_tenant_id : uuid.UUID, default=None
|
|
34
|
+
The guest tenant ID if the end user's tenant is different from the warehouse tenant.
|
|
35
|
+
private_link_type : str, default=None
|
|
36
|
+
Indicates the type of private link this connection string uses. Must be either 'Workspace' or 'None' or left as None.
|
|
37
|
+
|
|
38
|
+
Returns
|
|
39
|
+
-------
|
|
40
|
+
str
|
|
41
|
+
Returns the SQL connection string of the specified item.
|
|
42
|
+
"""
|
|
43
|
+
workspace_id = resolve_workspace_id(workspace)
|
|
44
|
+
item_id = resolve_item_id(item=item, type=type, workspace=workspace)
|
|
45
|
+
|
|
46
|
+
type_dict = {
|
|
47
|
+
"Warehouse": "warehouses",
|
|
48
|
+
"SQLEndpoint": "sqlEndpoints",
|
|
49
|
+
}
|
|
50
|
+
type_for_url = type_dict.get(type)
|
|
51
|
+
|
|
52
|
+
if type == "Lakehouse":
|
|
53
|
+
response = _base_api(
|
|
54
|
+
f"/v1/workspaces/{workspace_id}/lakehouses/{item_id}", client="fabric_sp"
|
|
55
|
+
).json()
|
|
56
|
+
return (
|
|
57
|
+
response.get("properties", {})
|
|
58
|
+
.get("sqlEndpointProperties", {})
|
|
59
|
+
.get("connectionString", {})
|
|
60
|
+
)
|
|
61
|
+
if type in ["SQLEndpoint", "Warehouse"]:
|
|
62
|
+
url = f"/v1/workspaces/{workspace_id}/{type_for_url}/{item_id}/connectionString"
|
|
63
|
+
else:
|
|
64
|
+
raise ValueError(
|
|
65
|
+
f"{icons.red_dot} The type must be 'Lakehouse', 'Warehouse' or 'SQLEndpoint'."
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
if private_link_type is not None and private_link_type not in ["Workspace", "None"]:
|
|
69
|
+
raise ValueError(
|
|
70
|
+
f"{icons.red_dot} private_link_type must be 'Workspace' or 'None' or left as None."
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
if guest_tenant_id or private_link_type:
|
|
74
|
+
params = []
|
|
75
|
+
if guest_tenant_id:
|
|
76
|
+
params.append(f"guestTenantId={guest_tenant_id}")
|
|
77
|
+
if private_link_type:
|
|
78
|
+
params.append(f"privateLinkType={private_link_type}")
|
|
79
|
+
param_str = "?" + "&".join(params)
|
|
80
|
+
url += param_str
|
|
81
|
+
|
|
82
|
+
response = _base_api(request=url, client="fabric_sp")
|
|
83
|
+
|
|
84
|
+
return response.json().get("connectionString")
|
|
@@ -348,3 +348,121 @@ def list_semantic_model_datasources(
|
|
|
348
348
|
df = pd.DataFrame(rows, columns=list(columns.keys()))
|
|
349
349
|
|
|
350
350
|
return df
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
@log
|
|
354
|
+
def bind_semantic_model_connection(
|
|
355
|
+
dataset: str | UUID,
|
|
356
|
+
connection_id: UUID,
|
|
357
|
+
connectivity_type: str,
|
|
358
|
+
connection_type: str,
|
|
359
|
+
connection_path: str,
|
|
360
|
+
workspace: Optional[str | UUID] = None,
|
|
361
|
+
):
|
|
362
|
+
"""
|
|
363
|
+
Binds a semantic model data source reference to a data connection.
|
|
364
|
+
This API can also be used to unbind data source references.
|
|
365
|
+
|
|
366
|
+
This is a wrapper function for the following API: `Items - Bind Semantic Model Connection <https://learn.microsoft.com/rest/api/fabric/semanticmodel/items/bind-semantic-model-connection>`_.
|
|
367
|
+
|
|
368
|
+
Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
|
|
369
|
+
|
|
370
|
+
Parameters
|
|
371
|
+
----------
|
|
372
|
+
dataset : str | uuid.UUID
|
|
373
|
+
Name or ID of the semantic model.
|
|
374
|
+
connection_id : uuid.UUID
|
|
375
|
+
The object ID of the connection.
|
|
376
|
+
connectivity_type : str
|
|
377
|
+
The connectivity type of the connection. Additional connectivity types may be added over time.
|
|
378
|
+
connection_type : str
|
|
379
|
+
The `type <https://learn.microsoft.com/rest/api/fabric/semanticmodel/items/bind-semantic-model-connection?tabs=HTTP#connectivitytype>`_ of the connection.
|
|
380
|
+
connection_path : str
|
|
381
|
+
The path of the connection.
|
|
382
|
+
workspace : str | uuid.UUID, default=None
|
|
383
|
+
The workspace name or ID.
|
|
384
|
+
Defaults to None which resolves to the workspace of the attached lakehouse
|
|
385
|
+
or if no lakehouse attached, resolves to the workspace of the notebook.
|
|
386
|
+
"""
|
|
387
|
+
|
|
388
|
+
(workspace_name, workspace_id) = resolve_workspace_name_and_id(workspace)
|
|
389
|
+
(dataset_name, dataset_id) = resolve_dataset_name_and_id(
|
|
390
|
+
dataset=dataset, workspace=workspace_id
|
|
391
|
+
)
|
|
392
|
+
|
|
393
|
+
payload = {
|
|
394
|
+
"connectionBinding": {
|
|
395
|
+
"id": str(connection_id),
|
|
396
|
+
"connectivityType": connectivity_type,
|
|
397
|
+
"connectionDetails": {
|
|
398
|
+
"type": connection_type,
|
|
399
|
+
"path": connection_path,
|
|
400
|
+
},
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
_base_api(
|
|
405
|
+
request=f"/v1/workspaces/{workspace_id}/semanticModels/{dataset_id}/bindConnection",
|
|
406
|
+
method="post",
|
|
407
|
+
client="fabric_sp",
|
|
408
|
+
payload=payload,
|
|
409
|
+
)
|
|
410
|
+
|
|
411
|
+
print(
|
|
412
|
+
f"{icons.green_dot} Connection '{connection_id}' has been bound to the '{dataset_name}' semantic model within the '{workspace_name}' workspace."
|
|
413
|
+
)
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
@log
|
|
417
|
+
def unbind_semantic_model_connection(
|
|
418
|
+
dataset: str | UUID,
|
|
419
|
+
connection_type: str,
|
|
420
|
+
connection_path: str,
|
|
421
|
+
workspace: Optional[str | UUID] = None,
|
|
422
|
+
):
|
|
423
|
+
"""
|
|
424
|
+
Unbinds a semantic model data source reference to a data connection.
|
|
425
|
+
|
|
426
|
+
This is a wrapper function for the following API: `Items - Bind Semantic Model Connection <https://learn.microsoft.com/rest/api/fabric/semanticmodel/items/bind-semantic-model-connection>`_.
|
|
427
|
+
|
|
428
|
+
Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
|
|
429
|
+
|
|
430
|
+
Parameters
|
|
431
|
+
----------
|
|
432
|
+
dataset : str | uuid.UUID
|
|
433
|
+
Name or ID of the semantic model.
|
|
434
|
+
connection_type : str
|
|
435
|
+
The `type <https://learn.microsoft.com/rest/api/fabric/semanticmodel/items/bind-semantic-model-connection?tabs=HTTP#connectivitytype>`_ of the connection.
|
|
436
|
+
connection_path : str
|
|
437
|
+
The path of the connection.
|
|
438
|
+
workspace : str | uuid.UUID, default=None
|
|
439
|
+
The workspace name or ID.
|
|
440
|
+
Defaults to None which resolves to the workspace of the attached lakehouse
|
|
441
|
+
or if no lakehouse attached, resolves to the workspace of the notebook.
|
|
442
|
+
"""
|
|
443
|
+
|
|
444
|
+
(workspace_name, workspace_id) = resolve_workspace_name_and_id(workspace)
|
|
445
|
+
(dataset_name, dataset_id) = resolve_dataset_name_and_id(
|
|
446
|
+
dataset=dataset, workspace=workspace_id
|
|
447
|
+
)
|
|
448
|
+
|
|
449
|
+
payload = {
|
|
450
|
+
"connectionBinding": {
|
|
451
|
+
"connectivityType": "None",
|
|
452
|
+
"connectionDetails": {
|
|
453
|
+
"type": connection_type,
|
|
454
|
+
"path": connection_path,
|
|
455
|
+
},
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
_base_api(
|
|
460
|
+
request=f"/v1/workspaces/{workspace_id}/semanticModels/{dataset_id}/bindConnection",
|
|
461
|
+
method="post",
|
|
462
|
+
client="fabric_sp",
|
|
463
|
+
payload=payload,
|
|
464
|
+
)
|
|
465
|
+
|
|
466
|
+
print(
|
|
467
|
+
f"{icons.green_dot} The '{dataset_name}' semantic model within the '{workspace_name}' workspace has been unbound from its connection."
|
|
468
|
+
)
|
|
@@ -66,7 +66,8 @@ def refresh_sql_endpoint_metadata(
|
|
|
66
66
|
item: str | UUID,
|
|
67
67
|
type: Literal["Lakehouse", "MirroredDatabase"],
|
|
68
68
|
workspace: Optional[str | UUID] = None,
|
|
69
|
-
|
|
69
|
+
timeout_unit: Literal["Seconds", "Minutes", "Hours", "Days"] = "Minutes",
|
|
70
|
+
timeout_value: int = 15,
|
|
70
71
|
) -> pd.DataFrame:
|
|
71
72
|
"""
|
|
72
73
|
Refreshes the metadata of a SQL endpoint.
|
|
@@ -85,15 +86,10 @@ def refresh_sql_endpoint_metadata(
|
|
|
85
86
|
The Fabric workspace name or ID.
|
|
86
87
|
Defaults to None which resolves to the workspace of the attached lakehouse
|
|
87
88
|
or if no lakehouse attached, resolves to the workspace of the notebook.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
Example:
|
|
93
|
-
{
|
|
94
|
-
"dbo": ["DimDate", "DimGeography"],
|
|
95
|
-
"sls": ["FactSales", "FactBudget"],
|
|
96
|
-
}
|
|
89
|
+
timeout_unit : Literal['Seconds', 'Minutes', 'Hours', 'Days'], default='Minutes'
|
|
90
|
+
The unit of time for the request duration before timing out. Additional duration types may be added over time.
|
|
91
|
+
timeout_value : int, default=15
|
|
92
|
+
The number of time units in the request duration.
|
|
97
93
|
|
|
98
94
|
Returns
|
|
99
95
|
-------
|
|
@@ -132,14 +128,10 @@ def refresh_sql_endpoint_metadata(
|
|
|
132
128
|
else:
|
|
133
129
|
raise ValueError("Invalid type. Must be 'Lakehouse' or 'MirroredDatabase'.")
|
|
134
130
|
|
|
135
|
-
payload =
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
{"schema": schema, "tableNames": tables}
|
|
140
|
-
for schema, tables in tables.items()
|
|
141
|
-
]
|
|
142
|
-
}
|
|
131
|
+
payload = None
|
|
132
|
+
timeout_unit = timeout_unit.capitalize()
|
|
133
|
+
if timeout_unit != "Minutes" and timeout_value != 15:
|
|
134
|
+
payload = {"timeout": {"timeUnit": timeout_unit, "value": timeout_value}}
|
|
143
135
|
|
|
144
136
|
result = _base_api(
|
|
145
137
|
request=f"v1/workspaces/{workspace_id}/sqlEndpoints/{sql_endpoint_id}/refreshMetadata",
|
|
@@ -195,10 +187,8 @@ def refresh_sql_endpoint_metadata(
|
|
|
195
187
|
df = df[column_order]
|
|
196
188
|
|
|
197
189
|
printout = f"{icons.green_dot} The metadata of the SQL endpoint for the '{item_name}' {type.lower()} within the '{workspace_name}' workspace has been refreshed"
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
else:
|
|
201
|
-
print(f"{printout} for all tables.")
|
|
190
|
+
print(f"{printout} for all tables.")
|
|
191
|
+
_update_dataframe_datatypes(df, columns)
|
|
202
192
|
else:
|
|
203
193
|
# If the target item has no tables to refresh the metadata for
|
|
204
194
|
df = pd.DataFrame(columns=columns.keys())
|
|
@@ -206,6 +196,4 @@ def refresh_sql_endpoint_metadata(
|
|
|
206
196
|
f"{icons.yellow_dot} The SQL endpoint '{item_name}' {type.lower()} within the '{workspace_name}' workspace has no tables to refresh..."
|
|
207
197
|
)
|
|
208
198
|
|
|
209
|
-
_update_dataframe_datatypes(df, columns)
|
|
210
|
-
|
|
211
199
|
return df
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
from ._helper_functions import (
|
|
2
|
-
resolve_item_id,
|
|
1
|
+
from sempy_labs._helper_functions import (
|
|
3
2
|
resolve_workspace_name_and_id,
|
|
4
3
|
_base_api,
|
|
5
4
|
_create_dataframe,
|
|
@@ -233,57 +232,3 @@ def get_warehouse_columns(
|
|
|
233
232
|
)
|
|
234
233
|
|
|
235
234
|
return df
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
@log
|
|
239
|
-
def get_warehouse_connection_string(
|
|
240
|
-
warehouse: str | UUID,
|
|
241
|
-
workspace: Optional[str | UUID] = None,
|
|
242
|
-
guest_tenant_id: Optional[UUID] = None,
|
|
243
|
-
private_link_type: Optional[str] = None,
|
|
244
|
-
) -> str:
|
|
245
|
-
"""
|
|
246
|
-
Returns the SQL connection string of the specified warehouse.
|
|
247
|
-
|
|
248
|
-
Parameters
|
|
249
|
-
----------
|
|
250
|
-
warehouse : str | uuid.UUID
|
|
251
|
-
Name or ID of the Fabric warehouse.
|
|
252
|
-
workspace : str | uuid.UUID, default=None
|
|
253
|
-
The Fabric workspace name or ID.
|
|
254
|
-
Defaults to None which resolves to the workspace of the attached lakehouse
|
|
255
|
-
or if no lakehouse attached, resolves to the workspace of the notebook.
|
|
256
|
-
guest_tenant_id : uuid.UUID, default=None
|
|
257
|
-
The guest tenant ID if the end user's tenant is different from the warehouse tenant.
|
|
258
|
-
private_link_type : str, default=None
|
|
259
|
-
Indicates the type of private link this connection string uses. Must be either 'Workspace' or 'None' or left as None.
|
|
260
|
-
|
|
261
|
-
Returns
|
|
262
|
-
-------
|
|
263
|
-
str
|
|
264
|
-
Returns the SQL connection string of the specified warehouse.
|
|
265
|
-
"""
|
|
266
|
-
workspace_id = resolve_workspace_id(workspace)
|
|
267
|
-
warehouse_id = resolve_item_id(
|
|
268
|
-
item=warehouse, type="Warehouse", workspace=workspace
|
|
269
|
-
)
|
|
270
|
-
|
|
271
|
-
url = f"/v1/workspaces/{workspace_id}/warehouses/{warehouse_id}/connectionString"
|
|
272
|
-
|
|
273
|
-
if private_link_type is not None and private_link_type not in ["Workspace", "None"]:
|
|
274
|
-
raise ValueError(
|
|
275
|
-
f"{icons.red_dot} private_link_type must be 'Workspace' or 'None' or left as None."
|
|
276
|
-
)
|
|
277
|
-
|
|
278
|
-
if guest_tenant_id or private_link_type:
|
|
279
|
-
params = []
|
|
280
|
-
if guest_tenant_id:
|
|
281
|
-
params.append(f"guestTenantId={guest_tenant_id}")
|
|
282
|
-
if private_link_type:
|
|
283
|
-
params.append(f"privateLinkType={private_link_type}")
|
|
284
|
-
param_str = "?" + "&".join(params)
|
|
285
|
-
url += param_str
|
|
286
|
-
|
|
287
|
-
response = _base_api(request=url, client="fabric_sp")
|
|
288
|
-
|
|
289
|
-
return response.json().get("connectionString")
|
|
@@ -22,6 +22,9 @@ from ._users import (
|
|
|
22
22
|
from ._teams import (
|
|
23
23
|
list_teams,
|
|
24
24
|
)
|
|
25
|
+
from ._sensitivity_labels import (
|
|
26
|
+
list_sensitivity_labels,
|
|
27
|
+
)
|
|
25
28
|
|
|
26
29
|
__all__ = [
|
|
27
30
|
"list_groups",
|
|
@@ -42,4 +45,5 @@ __all__ = [
|
|
|
42
45
|
"delete_group",
|
|
43
46
|
"update_user",
|
|
44
47
|
"update_group",
|
|
48
|
+
"list_sensitivity_labels",
|
|
45
49
|
]
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import pandas as pd
|
|
2
|
+
from uuid import UUID
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from sempy_labs._helper_functions import (
|
|
5
|
+
_base_api,
|
|
6
|
+
_create_dataframe,
|
|
7
|
+
_update_dataframe_datatypes,
|
|
8
|
+
)
|
|
9
|
+
from sempy._utils._log import log
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@log
|
|
13
|
+
def list_sensitivity_labels(user: Optional[str | UUID] = None) -> pd.DataFrame:
|
|
14
|
+
"""
|
|
15
|
+
Get a list of `sensitivity label <https://learn.microsoft.com/graph/api/resources/security-sensitivitylabel>`_ objects associated with a user or organization.
|
|
16
|
+
|
|
17
|
+
This is a wrapper function for the following API: `List sensitivityLabels https://learn.microsoft.com/graph/api/security-informationprotection-list-sensitivitylabels>`_.
|
|
18
|
+
|
|
19
|
+
Service Principal Authentication is required (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
|
|
20
|
+
|
|
21
|
+
Parameters
|
|
22
|
+
----------
|
|
23
|
+
user : str | uuid.UUID
|
|
24
|
+
The user ID or user principal name.
|
|
25
|
+
|
|
26
|
+
Returns
|
|
27
|
+
-------
|
|
28
|
+
pandas.DataFrame
|
|
29
|
+
A pandas dataframe showing a list of `sensitivity label <https://learn.microsoft.com/graph/api/resources/security-sensitivitylabel>`_ objects associated with a user or organization.
|
|
30
|
+
"""
|
|
31
|
+
from sempy_labs.graph import resolve_user_id
|
|
32
|
+
|
|
33
|
+
url = "/security/informationProtection/sensitivityLabels"
|
|
34
|
+
|
|
35
|
+
if user is not None:
|
|
36
|
+
user_id = resolve_user_id(user=user)
|
|
37
|
+
url = f"users/{user_id}{url}"
|
|
38
|
+
|
|
39
|
+
result = _base_api(request=url, client="graph").json()
|
|
40
|
+
|
|
41
|
+
columns = {
|
|
42
|
+
"Sensitivity Label Id": "str",
|
|
43
|
+
"Sensitivity Label Name": "str",
|
|
44
|
+
"Description": "str",
|
|
45
|
+
"Color": "str",
|
|
46
|
+
"Sensitivity": "int",
|
|
47
|
+
"Tooltip": "str",
|
|
48
|
+
"Is Active": "bool",
|
|
49
|
+
"Is Appliable": "bool",
|
|
50
|
+
"Has Protection": "bool",
|
|
51
|
+
"Parent Sensitivity Label Id": "str",
|
|
52
|
+
"Parent Sensitivity Label Name": "str",
|
|
53
|
+
}
|
|
54
|
+
df = _create_dataframe(columns=columns)
|
|
55
|
+
|
|
56
|
+
rows = []
|
|
57
|
+
for item in result.get("value", []):
|
|
58
|
+
row = {
|
|
59
|
+
"Sensitivity Label Id": item.get("id"),
|
|
60
|
+
"Sensitivity Label Name": item.get("name"),
|
|
61
|
+
"Description": item.get("description"),
|
|
62
|
+
"Color": item.get("color"),
|
|
63
|
+
"Sensitivity": item.get("sensitivity"),
|
|
64
|
+
"Tooltip": item.get("tooltip"),
|
|
65
|
+
"Is Active": item.get("isActive"),
|
|
66
|
+
"Is Appliable": item.get("isAppliable"),
|
|
67
|
+
"Has Protection": item.get("hasProtection"),
|
|
68
|
+
"Parent Sensitivity Label Id": (
|
|
69
|
+
item.get("parent", {}).get("id") if item.get("parent") else None
|
|
70
|
+
),
|
|
71
|
+
"Parent Sensitivity Label Name": (
|
|
72
|
+
item.get("parent", {}).get("name") if item.get("parent") else None
|
|
73
|
+
),
|
|
74
|
+
}
|
|
75
|
+
rows.append(row)
|
|
76
|
+
|
|
77
|
+
if rows:
|
|
78
|
+
df = pd.DataFrame(rows, columns=list(columns.keys()))
|
|
79
|
+
_update_dataframe_datatypes(dataframe=df, column_map=columns)
|
|
80
|
+
|
|
81
|
+
return df
|