semantic-link-labs 0.9.1__tar.gz → 0.9.2__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.1 → semantic_link_labs-0.9.2}/PKG-INFO +66 -8
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/README.md +65 -7
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/docs/source/conf.py +1 -1
- semantic_link_labs-0.9.2/notebooks/Delta Analyzer.ipynb +155 -0
- semantic_link_labs-0.9.2/notebooks/SQL.ipynb +226 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Service Principal.ipynb +26 -1
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/pyproject.toml +1 -1
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/PKG-INFO +66 -8
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/SOURCES.txt +8 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/__init__.py +14 -12
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_capacities.py +120 -142
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_capacity_migration.py +61 -94
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_clear_cache.py +9 -8
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_connections.py +72 -105
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_data_pipelines.py +47 -49
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_dataflows.py +45 -51
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_dax.py +228 -6
- semantic_link_labs-0.9.2/src/sempy_labs/_delta_analyzer.py +303 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_deployment_pipelines.py +72 -66
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_environments.py +39 -36
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_eventhouses.py +35 -35
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_eventstreams.py +38 -39
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_external_data_shares.py +29 -42
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_gateways.py +57 -101
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_generate_semantic_model.py +22 -30
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_git.py +46 -66
- semantic_link_labs-0.9.2/src/sempy_labs/_graphQL.py +95 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_helper_functions.py +175 -30
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_job_scheduler.py +47 -59
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_kql_databases.py +27 -34
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_kql_querysets.py +23 -30
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_list_functions.py +262 -164
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_managed_private_endpoints.py +52 -47
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_mirrored_databases.py +110 -134
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_mirrored_warehouses.py +13 -13
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_ml_experiments.py +36 -36
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_ml_models.py +37 -38
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_dependencies.py +2 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_notebooks.py +28 -29
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_one_lake_integration.py +2 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_query_scale_out.py +63 -81
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_refresh_semantic_model.py +12 -14
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_spark.py +54 -79
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_sql.py +7 -11
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_vertipaq.py +8 -3
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_warehouses.py +30 -33
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_workloads.py +15 -20
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_workspace_identity.py +13 -17
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_workspaces.py +49 -48
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/__init__.py +2 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_basic_functions.py +244 -281
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_domains.py +188 -103
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_external_data_share.py +26 -31
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_git.py +17 -22
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_items.py +34 -48
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_scanner.py +20 -13
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_directlake_schema_compare.py +2 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_dl_helper.py +10 -11
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_generate_shared_expression.py +4 -5
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_get_directlake_lakehouse.py +1 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_list_directlake_model_calc_tables.py +1 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_show_unsupported_directlake_objects.py +2 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_warm_cache.py +2 -0
- semantic_link_labs-0.9.2/src/sempy_labs/graph/__init__.py +33 -0
- semantic_link_labs-0.9.2/src/sempy_labs/graph/_groups.py +402 -0
- semantic_link_labs-0.9.2/src/sempy_labs/graph/_teams.py +113 -0
- semantic_link_labs-0.9.2/src/sempy_labs/graph/_users.py +191 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/__init__.py +4 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/_get_lakehouse_columns.py +10 -10
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/_get_lakehouse_tables.py +14 -20
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/_lakehouse.py +101 -4
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/_shortcuts.py +42 -20
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/__init__.py +4 -0
- semantic_link_labs-0.9.2/src/sempy_labs/migration/_direct_lake_to_import.py +66 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migrate_calctables_to_lakehouse.py +1 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migrate_calctables_to_semantic_model.py +1 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +1 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +2 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_download_report.py +8 -13
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_generate_report.py +49 -46
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_paginated.py +20 -26
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_functions.py +50 -45
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_list_functions.py +2 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_rebind.py +6 -10
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_reportwrapper.py +187 -220
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/tom/_model.py +8 -5
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/tests/test_tom.py +1 -0
- semantic_link_labs-0.9.1/notebooks/SQL.ipynb +0 -1
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/.github/ISSUE_TEMPLATE/issue--question---advice-needed.md +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/.github/workflows/build.yaml +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/.github/workflows/codeql.yaml +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/.gitignore +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/.readthedocs.yaml +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/.vscode/settings.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/CODE_OF_CONDUCT.md +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/LICENSE +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/SECURITY.md +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/SUPPORT.md +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/docs/Makefile +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/docs/make.bat +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/docs/requirements.txt +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/docs/source/index.rst +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/docs/source/modules.rst +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/environment.yml +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Best Practice Analyzer Report.ipynb +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Capacity Migration.ipynb +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Migration to Direct Lake.ipynb +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Model Optimization.ipynb +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Query Scale Out.ipynb +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Report Analysis.ipynb +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Semantic Model Management.ipynb +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Semantic Model Refresh.ipynb +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/notebooks/Tabular Object Model.ipynb +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/setup.cfg +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/dependency_links.txt +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/requires.txt +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/top_level.txt +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_ai.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_authentication.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_am-ET.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ar-AE.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_bg-BG.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ca-ES.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_cs-CZ.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_da-DK.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_de-DE.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_el-GR.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_es-ES.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_fa-IR.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_fi-FI.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_fr-FR.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ga-IE.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_he-IL.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_hi-IN.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_hu-HU.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_id-ID.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_is-IS.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_it-IT.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ja-JP.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ko-KR.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_mt-MT.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_nl-NL.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_pl-PL.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_pt-BR.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_pt-PT.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ro-RO.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ru-RU.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_sk-SK.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_sl-SL.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_sv-SE.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ta-IN.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_te-IN.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_th-TH.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_tr-TR.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_uk-UA.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_zh-CN.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_documentation.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_icons.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_auto_build.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_bpa.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_bpa_bulk.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_bpa_rules.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/_translations.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/__init__.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_directlake_schema_sync.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_get_shared_expression.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_guardrails.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_update_directlake_partition_entity.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_create_pqt_file.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migration_validation.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_refresh_calc_tables.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_BPAReportTemplate.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/__init__.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/.platform +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/1b08bce3bebabb0a27a8/visual.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/2f22ddb70c301693c165/visual.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/3b1182230aa6c600b43a/visual.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/58577ba6380c69891500/visual.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/a2a8fa5028b3b776c96c/visual.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/adfd47ef30652707b987/visual.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/b6a80ee459e716e170b1/visual.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/ce3130a721c020cc3d81/visual.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/visuals/66e60dfb526437cd78d1/visual.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/07deb8bce824e1be37d7/visual.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0b1c68838818b32ad03b/visual.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0c171de9d2683d10b930/visual.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0efa01be0510e40a645e/visual.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/6bf2f0eb830ab53cc668/visual.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/88d8141cb8500b60030c/visual.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/a753273590beed656a03/visual.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/b8fdc82cddd61ac447bc/visual.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/report.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/version.json +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition.pbir +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_bpa.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_bpa_rules.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_helper.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/src/sempy_labs/tom/__init__.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/tests/__init__.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/tests/test_friendly_case.py +0 -0
- {semantic_link_labs-0.9.1 → semantic_link_labs-0.9.2}/tests/test_shortcuts.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: semantic-link-labs
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.2
|
|
4
4
|
Summary: Semantic Link Labs for Microsoft Fabric
|
|
5
5
|
Author: Microsoft Corporation
|
|
6
6
|
License: MIT License
|
|
@@ -26,7 +26,7 @@ Requires-Dist: pytest>=8.2.1; extra == "test"
|
|
|
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
|
|
|
@@ -64,6 +64,8 @@ Check out the video below for an introduction to Semantic Link, Semantic Link La
|
|
|
64
64
|
* [Check why a Direct Lake semantic model would fallback to DirectQuery](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.directlake.html#sempy_labs.directlake.check_fallback_reason)
|
|
65
65
|
* [View a measure dependency tree](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.measure_dependency_tree)
|
|
66
66
|
* [View unique columns touched in a single (or multiple) DAX query(ies)](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.get_dax_query_dependencies)
|
|
67
|
+
* [Analyze delta tables for Direct Lake semantic models using Delta Analyzer](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Delta%20Analyzer.ipynb)
|
|
68
|
+
* [View synonyms from the linguistic schema](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_synonyms)
|
|
67
69
|
* Reports
|
|
68
70
|
* [Report Best Practice Analyzer (BPA)](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.report.html#sempy_labs.report.run_report_bpa)
|
|
69
71
|
* [View report metadata](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Report%20Analysis.ipynb)
|
|
@@ -80,10 +82,11 @@ Check out the video below for an introduction to Semantic Link, Semantic Link La
|
|
|
80
82
|
* [Optimize lakehouse tables](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.optimize_lakehouse_tables)
|
|
81
83
|
* [Vacuum lakehouse tables](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.vacuum_lakehouse_tables)
|
|
82
84
|
* [Create](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.create_shortcut_onelake), [delete](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.delete_shortcut), and [view shortcuts](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_shortcuts)
|
|
85
|
+
* [Analyze delta tables for Direct Lake semantic models using Delta Analyzer](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Delta%20Analyzer.ipynb)
|
|
83
86
|
* Notebooks
|
|
84
87
|
* [Import a notebook from the web](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.import_notebook_from_web)
|
|
85
88
|
* APIs
|
|
86
|
-
* Wrapper functions for [Power BI](https://learn.microsoft.com/rest/api/power-bi/), [Fabric](https://learn.microsoft.com/rest/api/fabric/articles/using-fabric-apis),
|
|
89
|
+
* Wrapper functions for [Power BI](https://learn.microsoft.com/rest/api/power-bi/), [Fabric](https://learn.microsoft.com/rest/api/fabric/articles/using-fabric-apis), [Azure](https://learn.microsoft.com/rest/api/microsoftfabric/fabric-capacities?view=rest-microsoftfabric-2023-11-01), and [Microsoft Graph](https://learn.microsoft.com/graph/api/overview?view=graph-rest-1.0) APIs
|
|
87
90
|
* Service Principal Authentication
|
|
88
91
|
* Now supported using the [service_principal_authentication](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.service_principal_authentication) context manager for the [admin](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.admin.html) subpackage, Azure API wrapper functions, and [connect_semantic_model](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.connect_semantic_model). See this [helper notebook](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb) for additional instructions.
|
|
89
92
|
|
|
@@ -113,13 +116,11 @@ for file_name, file_url in notebook_files.items():
|
|
|
113
116
|
## Once installed, run this code to import the library into your notebook
|
|
114
117
|
```python
|
|
115
118
|
import sempy_labs as labs
|
|
116
|
-
from sempy_labs import migration, directlake, admin
|
|
119
|
+
from sempy_labs import migration, directlake, admin, graph
|
|
117
120
|
from sempy_labs import lakehouse as lake
|
|
118
121
|
from sempy_labs import report as rep
|
|
119
122
|
from sempy_labs.tom import connect_semantic_model
|
|
120
123
|
from sempy_labs.report import ReportWrapper
|
|
121
|
-
from sempy_labs import ConnectWarehouse
|
|
122
|
-
from sempy_labs import ConnectLakehouse
|
|
123
124
|
```
|
|
124
125
|
|
|
125
126
|
## Load Semantic Link Labs into a custom [Fabric environment](https://learn.microsoft.com/fabric/data-engineering/create-and-use-environment)
|
|
@@ -143,8 +144,9 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
143
144
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
144
145
|
|
|
145
146
|
## Version History
|
|
146
|
-
* [0.9.
|
|
147
|
-
* [0.9.
|
|
147
|
+
* [0.9.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.2) (February 5, 2025)
|
|
148
|
+
* [0.9.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.1) (January 22, 2025)
|
|
149
|
+
* [0.9.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.0) (January 22, 2025)
|
|
148
150
|
* [0.8.11](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.11) (December 19, 2024)
|
|
149
151
|
* [0.8.10](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.10) (December 16, 2024)
|
|
150
152
|
* [0.8.9](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.9) (December 4, 2024)
|
|
@@ -238,6 +240,62 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope
|
|
|
238
240
|
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
|
|
239
241
|
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
|
|
240
242
|
|
|
243
|
+
## How to Contribute
|
|
244
|
+
|
|
245
|
+
#### Initial setup
|
|
246
|
+
1. Fork the Semantic Link Labs GitHub repository (Fork -> Create a new fork).
|
|
247
|
+
2. Click on the green icon '<> Code' and copy the 'HTTPS' URL to the clipboard.
|
|
248
|
+
3. Open Visual Studio Code.
|
|
249
|
+
4. Select 'Clone Git Repository'.
|
|
250
|
+
5. Paste the URL copied in step 2.
|
|
251
|
+
6. Select 'Clone from URL'.
|
|
252
|
+
7. Select/create a folder to map the cloned repository to your computer.
|
|
253
|
+
8. When prompted to open the cloned repository, click 'Open'.
|
|
254
|
+
9. Open the integrated terminal (View -> Terminal).
|
|
255
|
+
10. Run the following code in the terminal to ensure a virtual environment exists.
|
|
256
|
+
```python
|
|
257
|
+
python -m venv venv
|
|
258
|
+
```
|
|
259
|
+
11. Run the following code in the terminal to activate the virtual environment.
|
|
260
|
+
```python
|
|
261
|
+
.\venv\Scripts\Activate.ps1
|
|
262
|
+
```
|
|
263
|
+
12. Run the following code in the terminal to install the build module.
|
|
264
|
+
```
|
|
265
|
+
pip install build
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
#### Branching
|
|
269
|
+
When making changes, always create a new branch.
|
|
270
|
+
|
|
271
|
+
1. Navigate to the Souce Control tab within Visual Studio Code.
|
|
272
|
+
2. Click on the Source Control icon at the bottom left corner of the screen.
|
|
273
|
+
3. Click 'Create new branch...'.
|
|
274
|
+
4. Enter the branch name (i.e. yourusername/branchname).
|
|
275
|
+
5. Click 'Enter'.
|
|
276
|
+
|
|
277
|
+
#### Building the .whl file
|
|
278
|
+
Running the following in the terminal in Visual Studio Code will create a .whl file in the 'dist' folder within your locally-cloned repository.
|
|
279
|
+
|
|
280
|
+
```cli
|
|
281
|
+
python -m build
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
#### Running and testing the .whl file
|
|
285
|
+
1. Open a notebook in a Fabric workspace.
|
|
286
|
+
2. Navigate to 'Resources' within the Explorer tab.
|
|
287
|
+
3. Upload the .whl file here.
|
|
288
|
+
4. Drag the .whl file into a notebook cell.
|
|
289
|
+
5. Run the %pip install command generated by step 4.
|
|
290
|
+
|
|
291
|
+
#### Submitting a Pull Request (PR)
|
|
292
|
+
1. Within the 'Source Control' tab, commit your changes to the branch.
|
|
293
|
+
2. Navigate to the [GitHub repo](https://github.com/microsoft/semantic-link-labs).
|
|
294
|
+
3. A 'Create pull request' will appear at the top of the screen in green. Click it.
|
|
295
|
+
4. Enter details into the description.
|
|
296
|
+
5. Click 'Create'.
|
|
297
|
+
|
|
298
|
+
|
|
241
299
|
## Trademarks
|
|
242
300
|
|
|
243
301
|
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
|
|
@@ -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
|
|
|
@@ -39,6 +39,8 @@ Check out the video below for an introduction to Semantic Link, Semantic Link La
|
|
|
39
39
|
* [Check why a Direct Lake semantic model would fallback to DirectQuery](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.directlake.html#sempy_labs.directlake.check_fallback_reason)
|
|
40
40
|
* [View a measure dependency tree](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.measure_dependency_tree)
|
|
41
41
|
* [View unique columns touched in a single (or multiple) DAX query(ies)](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.get_dax_query_dependencies)
|
|
42
|
+
* [Analyze delta tables for Direct Lake semantic models using Delta Analyzer](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Delta%20Analyzer.ipynb)
|
|
43
|
+
* [View synonyms from the linguistic schema](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_synonyms)
|
|
42
44
|
* Reports
|
|
43
45
|
* [Report Best Practice Analyzer (BPA)](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.report.html#sempy_labs.report.run_report_bpa)
|
|
44
46
|
* [View report metadata](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Report%20Analysis.ipynb)
|
|
@@ -55,10 +57,11 @@ Check out the video below for an introduction to Semantic Link, Semantic Link La
|
|
|
55
57
|
* [Optimize lakehouse tables](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.optimize_lakehouse_tables)
|
|
56
58
|
* [Vacuum lakehouse tables](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.vacuum_lakehouse_tables)
|
|
57
59
|
* [Create](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.create_shortcut_onelake), [delete](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.lakehouse.html#sempy_labs.lakehouse.delete_shortcut), and [view shortcuts](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.list_shortcuts)
|
|
60
|
+
* [Analyze delta tables for Direct Lake semantic models using Delta Analyzer](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Delta%20Analyzer.ipynb)
|
|
58
61
|
* Notebooks
|
|
59
62
|
* [Import a notebook from the web](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.import_notebook_from_web)
|
|
60
63
|
* APIs
|
|
61
|
-
* Wrapper functions for [Power BI](https://learn.microsoft.com/rest/api/power-bi/), [Fabric](https://learn.microsoft.com/rest/api/fabric/articles/using-fabric-apis),
|
|
64
|
+
* Wrapper functions for [Power BI](https://learn.microsoft.com/rest/api/power-bi/), [Fabric](https://learn.microsoft.com/rest/api/fabric/articles/using-fabric-apis), [Azure](https://learn.microsoft.com/rest/api/microsoftfabric/fabric-capacities?view=rest-microsoftfabric-2023-11-01), and [Microsoft Graph](https://learn.microsoft.com/graph/api/overview?view=graph-rest-1.0) APIs
|
|
62
65
|
* Service Principal Authentication
|
|
63
66
|
* Now supported using the [service_principal_authentication](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.html#sempy_labs.service_principal_authentication) context manager for the [admin](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.admin.html) subpackage, Azure API wrapper functions, and [connect_semantic_model](https://semantic-link-labs.readthedocs.io/en/stable/sempy_labs.tom.html#sempy_labs.tom.connect_semantic_model). See this [helper notebook](https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb) for additional instructions.
|
|
64
67
|
|
|
@@ -88,13 +91,11 @@ for file_name, file_url in notebook_files.items():
|
|
|
88
91
|
## Once installed, run this code to import the library into your notebook
|
|
89
92
|
```python
|
|
90
93
|
import sempy_labs as labs
|
|
91
|
-
from sempy_labs import migration, directlake, admin
|
|
94
|
+
from sempy_labs import migration, directlake, admin, graph
|
|
92
95
|
from sempy_labs import lakehouse as lake
|
|
93
96
|
from sempy_labs import report as rep
|
|
94
97
|
from sempy_labs.tom import connect_semantic_model
|
|
95
98
|
from sempy_labs.report import ReportWrapper
|
|
96
|
-
from sempy_labs import ConnectWarehouse
|
|
97
|
-
from sempy_labs import ConnectLakehouse
|
|
98
99
|
```
|
|
99
100
|
|
|
100
101
|
## Load Semantic Link Labs into a custom [Fabric environment](https://learn.microsoft.com/fabric/data-engineering/create-and-use-environment)
|
|
@@ -118,8 +119,9 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
118
119
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
119
120
|
|
|
120
121
|
## Version History
|
|
121
|
-
* [0.9.
|
|
122
|
-
* [0.9.
|
|
122
|
+
* [0.9.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.2) (February 5, 2025)
|
|
123
|
+
* [0.9.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.1) (January 22, 2025)
|
|
124
|
+
* [0.9.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.0) (January 22, 2025)
|
|
123
125
|
* [0.8.11](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.11) (December 19, 2024)
|
|
124
126
|
* [0.8.10](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.10) (December 16, 2024)
|
|
125
127
|
* [0.8.9](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.9) (December 4, 2024)
|
|
@@ -213,6 +215,62 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope
|
|
|
213
215
|
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
|
|
214
216
|
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
|
|
215
217
|
|
|
218
|
+
## How to Contribute
|
|
219
|
+
|
|
220
|
+
#### Initial setup
|
|
221
|
+
1. Fork the Semantic Link Labs GitHub repository (Fork -> Create a new fork).
|
|
222
|
+
2. Click on the green icon '<> Code' and copy the 'HTTPS' URL to the clipboard.
|
|
223
|
+
3. Open Visual Studio Code.
|
|
224
|
+
4. Select 'Clone Git Repository'.
|
|
225
|
+
5. Paste the URL copied in step 2.
|
|
226
|
+
6. Select 'Clone from URL'.
|
|
227
|
+
7. Select/create a folder to map the cloned repository to your computer.
|
|
228
|
+
8. When prompted to open the cloned repository, click 'Open'.
|
|
229
|
+
9. Open the integrated terminal (View -> Terminal).
|
|
230
|
+
10. Run the following code in the terminal to ensure a virtual environment exists.
|
|
231
|
+
```python
|
|
232
|
+
python -m venv venv
|
|
233
|
+
```
|
|
234
|
+
11. Run the following code in the terminal to activate the virtual environment.
|
|
235
|
+
```python
|
|
236
|
+
.\venv\Scripts\Activate.ps1
|
|
237
|
+
```
|
|
238
|
+
12. Run the following code in the terminal to install the build module.
|
|
239
|
+
```
|
|
240
|
+
pip install build
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
#### Branching
|
|
244
|
+
When making changes, always create a new branch.
|
|
245
|
+
|
|
246
|
+
1. Navigate to the Souce Control tab within Visual Studio Code.
|
|
247
|
+
2. Click on the Source Control icon at the bottom left corner of the screen.
|
|
248
|
+
3. Click 'Create new branch...'.
|
|
249
|
+
4. Enter the branch name (i.e. yourusername/branchname).
|
|
250
|
+
5. Click 'Enter'.
|
|
251
|
+
|
|
252
|
+
#### Building the .whl file
|
|
253
|
+
Running the following in the terminal in Visual Studio Code will create a .whl file in the 'dist' folder within your locally-cloned repository.
|
|
254
|
+
|
|
255
|
+
```cli
|
|
256
|
+
python -m build
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
#### Running and testing the .whl file
|
|
260
|
+
1. Open a notebook in a Fabric workspace.
|
|
261
|
+
2. Navigate to 'Resources' within the Explorer tab.
|
|
262
|
+
3. Upload the .whl file here.
|
|
263
|
+
4. Drag the .whl file into a notebook cell.
|
|
264
|
+
5. Run the %pip install command generated by step 4.
|
|
265
|
+
|
|
266
|
+
#### Submitting a Pull Request (PR)
|
|
267
|
+
1. Within the 'Source Control' tab, commit your changes to the branch.
|
|
268
|
+
2. Navigate to the [GitHub repo](https://github.com/microsoft/semantic-link-labs).
|
|
269
|
+
3. A 'Create pull request' will appear at the top of the screen in green. Click it.
|
|
270
|
+
4. Enter details into the description.
|
|
271
|
+
5. Click 'Create'.
|
|
272
|
+
|
|
273
|
+
|
|
216
274
|
## Trademarks
|
|
217
275
|
|
|
218
276
|
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
|
|
@@ -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.2'
|
|
17
17
|
|
|
18
18
|
# -- General configuration ---------------------------------------------------
|
|
19
19
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cells": [
|
|
3
|
+
{
|
|
4
|
+
"cell_type": "markdown",
|
|
5
|
+
"id": "5c27dfd1-4fe0-4a97-92e6-ddf78889aa93",
|
|
6
|
+
"metadata": {
|
|
7
|
+
"nteract": {
|
|
8
|
+
"transient": {
|
|
9
|
+
"deleting": false
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"source": [
|
|
14
|
+
"### Install the latest .whl package\n",
|
|
15
|
+
"\n",
|
|
16
|
+
"Check [here](https://pypi.org/project/semantic-link-labs/) to see the latest version."
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"cell_type": "code",
|
|
21
|
+
"execution_count": null,
|
|
22
|
+
"id": "d5cae9db-cef9-48a8-a351-9c5fcc99645c",
|
|
23
|
+
"metadata": {
|
|
24
|
+
"jupyter": {
|
|
25
|
+
"outputs_hidden": true,
|
|
26
|
+
"source_hidden": false
|
|
27
|
+
},
|
|
28
|
+
"nteract": {
|
|
29
|
+
"transient": {
|
|
30
|
+
"deleting": false
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"outputs": [],
|
|
35
|
+
"source": [
|
|
36
|
+
"%pip install semantic-link-labs"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"cell_type": "markdown",
|
|
41
|
+
"id": "b195eae8",
|
|
42
|
+
"metadata": {},
|
|
43
|
+
"source": [
|
|
44
|
+
"### Import the library"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"cell_type": "code",
|
|
49
|
+
"execution_count": null,
|
|
50
|
+
"id": "1344e286",
|
|
51
|
+
"metadata": {},
|
|
52
|
+
"outputs": [],
|
|
53
|
+
"source": [
|
|
54
|
+
"import sempy_labs as labs\n",
|
|
55
|
+
"table_name = 'MyTable'"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"cell_type": "markdown",
|
|
60
|
+
"id": "baa24264",
|
|
61
|
+
"metadata": {},
|
|
62
|
+
"source": [
|
|
63
|
+
"### Run Delta Analyzer for a given table in the lakehouse attached to your notebook"
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"cell_type": "code",
|
|
68
|
+
"execution_count": null,
|
|
69
|
+
"id": "0a1903c0",
|
|
70
|
+
"metadata": {},
|
|
71
|
+
"outputs": [],
|
|
72
|
+
"source": [
|
|
73
|
+
"x = labs.delta_analyzer(table_name=table_name)"
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"cell_type": "code",
|
|
78
|
+
"execution_count": null,
|
|
79
|
+
"id": "285986d1",
|
|
80
|
+
"metadata": {},
|
|
81
|
+
"outputs": [],
|
|
82
|
+
"source": [
|
|
83
|
+
"for name, df in x.items():\n",
|
|
84
|
+
" print(name)\n",
|
|
85
|
+
" display(df)"
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"cell_type": "markdown",
|
|
90
|
+
"id": "e1d118dd",
|
|
91
|
+
"metadata": {},
|
|
92
|
+
"source": [
|
|
93
|
+
"### Get actual (not approximate) distinct counts"
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"cell_type": "code",
|
|
98
|
+
"execution_count": null,
|
|
99
|
+
"id": "d1ecf538",
|
|
100
|
+
"metadata": {},
|
|
101
|
+
"outputs": [],
|
|
102
|
+
"source": [
|
|
103
|
+
"x = labs.delta_analyzer(table_name=table_name, approx_distinct_count=False)"
|
|
104
|
+
]
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"cell_type": "markdown",
|
|
108
|
+
"id": "60aa6592",
|
|
109
|
+
"metadata": {},
|
|
110
|
+
"source": [
|
|
111
|
+
"### Export the results of Delta Analyzer to a set of delta tables in your lakehouse\n",
|
|
112
|
+
"The export always appends results to the delta tables"
|
|
113
|
+
]
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"cell_type": "code",
|
|
117
|
+
"execution_count": null,
|
|
118
|
+
"id": "1d4235ff",
|
|
119
|
+
"metadata": {},
|
|
120
|
+
"outputs": [],
|
|
121
|
+
"source": [
|
|
122
|
+
"x = labs.delta_analyzer(table_name=table_name, export=True)"
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
],
|
|
126
|
+
"metadata": {
|
|
127
|
+
"kernel_info": {
|
|
128
|
+
"name": "synapse_pyspark"
|
|
129
|
+
},
|
|
130
|
+
"kernelspec": {
|
|
131
|
+
"display_name": "Synapse PySpark",
|
|
132
|
+
"language": "Python",
|
|
133
|
+
"name": "synapse_pyspark"
|
|
134
|
+
},
|
|
135
|
+
"language_info": {
|
|
136
|
+
"name": "python"
|
|
137
|
+
},
|
|
138
|
+
"microsoft": {
|
|
139
|
+
"language": "python"
|
|
140
|
+
},
|
|
141
|
+
"nteract": {
|
|
142
|
+
"version": "nteract-front-end@1.0.0"
|
|
143
|
+
},
|
|
144
|
+
"spark_compute": {
|
|
145
|
+
"compute_id": "/trident/default"
|
|
146
|
+
},
|
|
147
|
+
"synapse_widget": {
|
|
148
|
+
"state": {},
|
|
149
|
+
"version": "0.1"
|
|
150
|
+
},
|
|
151
|
+
"widgets": {}
|
|
152
|
+
},
|
|
153
|
+
"nbformat": 4,
|
|
154
|
+
"nbformat_minor": 5
|
|
155
|
+
}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cells": [
|
|
3
|
+
{
|
|
4
|
+
"cell_type": "markdown",
|
|
5
|
+
"id": "5c27dfd1-4fe0-4a97-92e6-ddf78889aa93",
|
|
6
|
+
"metadata": {
|
|
7
|
+
"nteract": {
|
|
8
|
+
"transient": {
|
|
9
|
+
"deleting": false
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"source": [
|
|
14
|
+
"### Install the latest .whl package\n",
|
|
15
|
+
"\n",
|
|
16
|
+
"Check [here](https://pypi.org/project/semantic-link-labs/) to see the latest version."
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"cell_type": "code",
|
|
21
|
+
"execution_count": null,
|
|
22
|
+
"id": "d5cae9db-cef9-48a8-a351-9c5fcc99645c",
|
|
23
|
+
"metadata": {
|
|
24
|
+
"jupyter": {
|
|
25
|
+
"outputs_hidden": true,
|
|
26
|
+
"source_hidden": false
|
|
27
|
+
},
|
|
28
|
+
"nteract": {
|
|
29
|
+
"transient": {
|
|
30
|
+
"deleting": false
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"outputs": [],
|
|
35
|
+
"source": [
|
|
36
|
+
"%pip install semantic-link-labs"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"cell_type": "markdown",
|
|
41
|
+
"id": "b195eae8",
|
|
42
|
+
"metadata": {},
|
|
43
|
+
"source": [
|
|
44
|
+
"### Import the library and necessary packages"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"cell_type": "code",
|
|
49
|
+
"execution_count": null,
|
|
50
|
+
"id": "1344e286",
|
|
51
|
+
"metadata": {},
|
|
52
|
+
"outputs": [],
|
|
53
|
+
"source": [
|
|
54
|
+
"import sempy_labs as labs\n",
|
|
55
|
+
"\n",
|
|
56
|
+
"lakehouse_name = ''\n",
|
|
57
|
+
"lakehouse_workspace_name = ''\n",
|
|
58
|
+
"warehouse_name = ''\n",
|
|
59
|
+
"warehouse_workspace_name = ''"
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"cell_type": "markdown",
|
|
64
|
+
"id": "55e5ca67",
|
|
65
|
+
"metadata": {},
|
|
66
|
+
"source": [
|
|
67
|
+
"### Run a SQL query (or queries) against a Fabric warehouse"
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"cell_type": "code",
|
|
72
|
+
"execution_count": null,
|
|
73
|
+
"id": "a9f984e9",
|
|
74
|
+
"metadata": {},
|
|
75
|
+
"outputs": [],
|
|
76
|
+
"source": [
|
|
77
|
+
"with labs.ConnectWarehouse(warehouse=warehouse_name, workspace=warehouse_workspace_name) as sql:\n",
|
|
78
|
+
" df = sql.query(\"SELECT * FROM Product\")\n",
|
|
79
|
+
" display(df)"
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"cell_type": "code",
|
|
84
|
+
"execution_count": null,
|
|
85
|
+
"id": "865ac4a1",
|
|
86
|
+
"metadata": {},
|
|
87
|
+
"outputs": [],
|
|
88
|
+
"source": [
|
|
89
|
+
"with labs.ConnectWarehouse(warehouse=warehouse_name, workspace=warehouse_workspace_name) as sql:\n",
|
|
90
|
+
" dfs = sql.query([\"SELECT * FROM Product\", \"SELECT DISTINCT [Category] FROM Product\"])\n",
|
|
91
|
+
"\n",
|
|
92
|
+
"for df in dfs:\n",
|
|
93
|
+
" display(df)"
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"cell_type": "markdown",
|
|
98
|
+
"id": "bca53cd8",
|
|
99
|
+
"metadata": {},
|
|
100
|
+
"source": [
|
|
101
|
+
"#### See the tables in a warehouse"
|
|
102
|
+
]
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"cell_type": "code",
|
|
106
|
+
"execution_count": null,
|
|
107
|
+
"id": "9af2cce7",
|
|
108
|
+
"metadata": {},
|
|
109
|
+
"outputs": [],
|
|
110
|
+
"source": [
|
|
111
|
+
"labs.get_warehouse_tables(warehouse=warehouse_name, workspace=warehouse_workspace_name)"
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"cell_type": "markdown",
|
|
116
|
+
"id": "765f99ae",
|
|
117
|
+
"metadata": {},
|
|
118
|
+
"source": [
|
|
119
|
+
"#### See the columns in each table in a warehouse"
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"cell_type": "code",
|
|
124
|
+
"execution_count": null,
|
|
125
|
+
"id": "1fabe168",
|
|
126
|
+
"metadata": {},
|
|
127
|
+
"outputs": [],
|
|
128
|
+
"source": [
|
|
129
|
+
"labs.get_warehouse_columns(warehouse=warehouse_name, workspace=warehouse_workspace_name)"
|
|
130
|
+
]
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"cell_type": "markdown",
|
|
134
|
+
"id": "634700c3",
|
|
135
|
+
"metadata": {},
|
|
136
|
+
"source": [
|
|
137
|
+
"### Run a T-SQL query (or queries) against a Fabric warehouse"
|
|
138
|
+
]
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"cell_type": "code",
|
|
142
|
+
"execution_count": null,
|
|
143
|
+
"id": "5dbf34f3",
|
|
144
|
+
"metadata": {},
|
|
145
|
+
"outputs": [],
|
|
146
|
+
"source": [
|
|
147
|
+
"with labs.ConnectWarehouse(warehouse=warehouse_name, workspace=warehouse_workspace_name) as sql:\n",
|
|
148
|
+
" sql.query(\"CREATE SCHEMA [Business]\")"
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"cell_type": "code",
|
|
153
|
+
"execution_count": null,
|
|
154
|
+
"id": "ec8ddb81",
|
|
155
|
+
"metadata": {},
|
|
156
|
+
"outputs": [],
|
|
157
|
+
"source": [
|
|
158
|
+
"with labs.ConnectWarehouse(warehouse=warehouse_name, workspace=warehouse_workspace_name) as sql:\n",
|
|
159
|
+
" sql.query([\"CREATE SCHEMA [Business]\", \"CREATE SCHEMA [Marketing]\"])"
|
|
160
|
+
]
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"cell_type": "markdown",
|
|
164
|
+
"id": "d5b090da",
|
|
165
|
+
"metadata": {},
|
|
166
|
+
"source": [
|
|
167
|
+
"### Run a SQL query (or queries) against a Fabric lakehouse"
|
|
168
|
+
]
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"cell_type": "code",
|
|
172
|
+
"execution_count": null,
|
|
173
|
+
"id": "4dca7f4a",
|
|
174
|
+
"metadata": {},
|
|
175
|
+
"outputs": [],
|
|
176
|
+
"source": [
|
|
177
|
+
"with labs.ConnectLakehouse(lakehouse=lakehouse_name, workspace=lakehouse_workspace_name) as sql:\n",
|
|
178
|
+
" df = sql.query(\"SELECT * FROM Product\")\n",
|
|
179
|
+
" display(df)"
|
|
180
|
+
]
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"cell_type": "code",
|
|
184
|
+
"execution_count": null,
|
|
185
|
+
"id": "b9606ae8",
|
|
186
|
+
"metadata": {},
|
|
187
|
+
"outputs": [],
|
|
188
|
+
"source": [
|
|
189
|
+
"with labs.ConnectLakehouse(lakehouse=lakehouse_name, workspace=lakehouse_workspace_name) as sql:\n",
|
|
190
|
+
" dfs = sql.query([\"SELECT * FROM Product\", \"SELECT DISTINCT [Category] FROM Product\"])\n",
|
|
191
|
+
"\n",
|
|
192
|
+
"for df in dfs:\n",
|
|
193
|
+
" display(df)"
|
|
194
|
+
]
|
|
195
|
+
}
|
|
196
|
+
],
|
|
197
|
+
"metadata": {
|
|
198
|
+
"kernel_info": {
|
|
199
|
+
"name": "synapse_pyspark"
|
|
200
|
+
},
|
|
201
|
+
"kernelspec": {
|
|
202
|
+
"display_name": "Synapse PySpark",
|
|
203
|
+
"language": "Python",
|
|
204
|
+
"name": "synapse_pyspark"
|
|
205
|
+
},
|
|
206
|
+
"language_info": {
|
|
207
|
+
"name": "python"
|
|
208
|
+
},
|
|
209
|
+
"microsoft": {
|
|
210
|
+
"language": "python"
|
|
211
|
+
},
|
|
212
|
+
"nteract": {
|
|
213
|
+
"version": "nteract-front-end@1.0.0"
|
|
214
|
+
},
|
|
215
|
+
"spark_compute": {
|
|
216
|
+
"compute_id": "/trident/default"
|
|
217
|
+
},
|
|
218
|
+
"synapse_widget": {
|
|
219
|
+
"state": {},
|
|
220
|
+
"version": "0.1"
|
|
221
|
+
},
|
|
222
|
+
"widgets": {}
|
|
223
|
+
},
|
|
224
|
+
"nbformat": 4,
|
|
225
|
+
"nbformat_minor": 5
|
|
226
|
+
}
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"outputs": [],
|
|
80
80
|
"source": [
|
|
81
81
|
"import sempy_labs as labs\n",
|
|
82
|
-
"from sempy_labs import admin\n",
|
|
82
|
+
"from sempy_labs import admin, graph\n",
|
|
83
83
|
"from sempy_labs.tom import connect_semantic_model\n",
|
|
84
84
|
"\n",
|
|
85
85
|
"key_vault_uri = '' # Enter your key vault URI\n",
|
|
@@ -150,6 +150,31 @@
|
|
|
150
150
|
" )"
|
|
151
151
|
]
|
|
152
152
|
},
|
|
153
|
+
{
|
|
154
|
+
"cell_type": "markdown",
|
|
155
|
+
"id": "931a9ee0",
|
|
156
|
+
"metadata": {},
|
|
157
|
+
"source": [
|
|
158
|
+
"### Using wrapper functions for [Microsoft Graph](https://learn.microsoft.com/graph/overview)"
|
|
159
|
+
]
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"cell_type": "code",
|
|
163
|
+
"execution_count": null,
|
|
164
|
+
"id": "f0cb20d0",
|
|
165
|
+
"metadata": {},
|
|
166
|
+
"outputs": [],
|
|
167
|
+
"source": [
|
|
168
|
+
"with labs.service_principal_authentication(\n",
|
|
169
|
+
" key_vault_uri=key_vault_uri, \n",
|
|
170
|
+
" key_vault_tenant_id=key_vault_tenant_id,\n",
|
|
171
|
+
" key_vault_client_id=key_vault_client_id,\n",
|
|
172
|
+
" key_vault_client_secret=key_vault_client_secret):\n",
|
|
173
|
+
"\n",
|
|
174
|
+
" df = graph.list_users()\n",
|
|
175
|
+
" display(df)"
|
|
176
|
+
]
|
|
177
|
+
},
|
|
153
178
|
{
|
|
154
179
|
"cell_type": "markdown",
|
|
155
180
|
"id": "fcde09a7",
|