semantic-link-labs 0.9.0__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.0 → semantic_link_labs-0.9.2}/PKG-INFO +68 -7
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/README.md +67 -6
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/docs/source/conf.py +1 -1
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Capacity Migration.ipynb +3 -3
- 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.0 → semantic_link_labs-0.9.2}/notebooks/Service Principal.ipynb +35 -6
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Tabular Object Model.ipynb +3 -3
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/pyproject.toml +1 -1
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/PKG-INFO +68 -7
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/SOURCES.txt +8 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/__init__.py +14 -12
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_authentication.py +0 -2
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_capacities.py +120 -142
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_capacity_migration.py +61 -94
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_clear_cache.py +9 -8
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_connections.py +72 -105
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_data_pipelines.py +47 -49
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_dataflows.py +45 -51
- {semantic_link_labs-0.9.0 → 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.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_deployment_pipelines.py +72 -66
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_environments.py +39 -36
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_eventhouses.py +35 -35
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_eventstreams.py +38 -39
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_external_data_shares.py +29 -42
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_gateways.py +57 -101
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_generate_semantic_model.py +22 -30
- {semantic_link_labs-0.9.0 → 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.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_helper_functions.py +175 -30
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_job_scheduler.py +47 -59
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_kql_databases.py +27 -34
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_kql_querysets.py +23 -30
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_list_functions.py +262 -164
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_managed_private_endpoints.py +52 -47
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_mirrored_databases.py +110 -134
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_mirrored_warehouses.py +13 -13
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_ml_experiments.py +36 -36
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_ml_models.py +37 -38
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_dependencies.py +2 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_notebooks.py +28 -29
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_one_lake_integration.py +2 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_query_scale_out.py +63 -81
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_refresh_semantic_model.py +12 -14
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_spark.py +54 -79
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_sql.py +7 -11
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_vertipaq.py +8 -3
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_warehouses.py +30 -33
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_workloads.py +15 -20
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_workspace_identity.py +13 -17
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_workspaces.py +49 -48
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/__init__.py +2 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_basic_functions.py +244 -281
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_domains.py +188 -103
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_external_data_share.py +26 -31
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_git.py +17 -22
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_items.py +34 -48
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/admin/_scanner.py +20 -13
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_directlake_schema_compare.py +2 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_dl_helper.py +10 -11
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_generate_shared_expression.py +4 -5
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_get_directlake_lakehouse.py +1 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_list_directlake_model_calc_tables.py +1 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_show_unsupported_directlake_objects.py +2 -0
- {semantic_link_labs-0.9.0 → 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.0 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/__init__.py +4 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/_get_lakehouse_columns.py +10 -10
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/_get_lakehouse_tables.py +14 -20
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/_lakehouse.py +101 -4
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/lakehouse/_shortcuts.py +42 -20
- {semantic_link_labs-0.9.0 → 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.0 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migrate_calctables_to_lakehouse.py +1 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migrate_calctables_to_semantic_model.py +1 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +1 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +2 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_download_report.py +8 -13
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_generate_report.py +49 -46
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_paginated.py +20 -26
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_functions.py +50 -45
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_list_functions.py +2 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_rebind.py +6 -10
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_reportwrapper.py +187 -220
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/tom/_model.py +8 -5
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/tests/test_tom.py +1 -0
- semantic_link_labs-0.9.0/notebooks/SQL.ipynb +0 -1
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/.github/ISSUE_TEMPLATE/issue--question---advice-needed.md +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/.github/workflows/build.yaml +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/.github/workflows/codeql.yaml +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/.gitignore +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/.readthedocs.yaml +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/.vscode/settings.json +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/CODE_OF_CONDUCT.md +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/LICENSE +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/SECURITY.md +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/SUPPORT.md +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/docs/Makefile +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/docs/make.bat +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/docs/requirements.txt +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/docs/source/index.rst +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/docs/source/modules.rst +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/environment.yml +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Best Practice Analyzer Report.ipynb +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Migration to Direct Lake.ipynb +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Model Optimization.ipynb +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Query Scale Out.ipynb +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Report Analysis.ipynb +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Semantic Model Management.ipynb +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/notebooks/Semantic Model Refresh.ipynb +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/setup.cfg +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/dependency_links.txt +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/requires.txt +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/semantic_link_labs.egg-info/top_level.txt +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_ai.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_am-ET.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ar-AE.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_bg-BG.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ca-ES.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_cs-CZ.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_da-DK.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_de-DE.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_el-GR.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_es-ES.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_fa-IR.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_fi-FI.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_fr-FR.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ga-IE.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_he-IL.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_hi-IN.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_hu-HU.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_id-ID.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_is-IS.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_it-IT.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ja-JP.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ko-KR.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_mt-MT.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_nl-NL.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_pl-PL.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_pt-BR.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_pt-PT.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ro-RO.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ru-RU.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_sk-SK.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_sl-SL.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_sv-SE.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_ta-IN.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_te-IN.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_th-TH.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_tr-TR.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_uk-UA.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_zh-CN.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_documentation.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_icons.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_auto_build.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_bpa.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_bpa_bulk.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_model_bpa_rules.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/_translations.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/__init__.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_directlake_schema_sync.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_get_shared_expression.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_guardrails.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/directlake/_update_directlake_partition_entity.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_create_pqt_file.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_migration_validation.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/migration/_refresh_calc_tables.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_BPAReportTemplate.json +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/__init__.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/.platform +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +0 -0
- {semantic_link_labs-0.9.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +0 -0
- {semantic_link_labs-0.9.0 → 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.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +0 -0
- {semantic_link_labs-0.9.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +0 -0
- {semantic_link_labs-0.9.0 → 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.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/report.json +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition/version.json +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_bpareporttemplate/definition.pbir +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_bpa.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_bpa_rules.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/report/_report_helper.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/src/sempy_labs/tom/__init__.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/tests/__init__.py +0 -0
- {semantic_link_labs-0.9.0 → semantic_link_labs-0.9.2}/tests/test_friendly_case.py +0 -0
- {semantic_link_labs-0.9.0 → 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,13 @@ 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
|
|
90
|
+
* Service Principal Authentication
|
|
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.
|
|
87
92
|
|
|
88
93
|
## Helper Notebooks
|
|
89
94
|
|
|
@@ -111,13 +116,11 @@ for file_name, file_url in notebook_files.items():
|
|
|
111
116
|
## Once installed, run this code to import the library into your notebook
|
|
112
117
|
```python
|
|
113
118
|
import sempy_labs as labs
|
|
114
|
-
from sempy_labs import migration, directlake, admin
|
|
119
|
+
from sempy_labs import migration, directlake, admin, graph
|
|
115
120
|
from sempy_labs import lakehouse as lake
|
|
116
121
|
from sempy_labs import report as rep
|
|
117
122
|
from sempy_labs.tom import connect_semantic_model
|
|
118
123
|
from sempy_labs.report import ReportWrapper
|
|
119
|
-
from sempy_labs import ConnectWarehouse
|
|
120
|
-
from sempy_labs import ConnectLakehouse
|
|
121
124
|
```
|
|
122
125
|
|
|
123
126
|
## Load Semantic Link Labs into a custom [Fabric environment](https://learn.microsoft.com/fabric/data-engineering/create-and-use-environment)
|
|
@@ -141,7 +144,9 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
141
144
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
142
145
|
|
|
143
146
|
## Version History
|
|
144
|
-
* [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)
|
|
145
150
|
* [0.8.11](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.11) (December 19, 2024)
|
|
146
151
|
* [0.8.10](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.10) (December 16, 2024)
|
|
147
152
|
* [0.8.9](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.9) (December 4, 2024)
|
|
@@ -235,6 +240,62 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope
|
|
|
235
240
|
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
|
|
236
241
|
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
|
|
237
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
|
+
|
|
238
299
|
## Trademarks
|
|
239
300
|
|
|
240
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,13 @@ 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
|
|
65
|
+
* Service Principal Authentication
|
|
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.
|
|
62
67
|
|
|
63
68
|
## Helper Notebooks
|
|
64
69
|
|
|
@@ -86,13 +91,11 @@ for file_name, file_url in notebook_files.items():
|
|
|
86
91
|
## Once installed, run this code to import the library into your notebook
|
|
87
92
|
```python
|
|
88
93
|
import sempy_labs as labs
|
|
89
|
-
from sempy_labs import migration, directlake, admin
|
|
94
|
+
from sempy_labs import migration, directlake, admin, graph
|
|
90
95
|
from sempy_labs import lakehouse as lake
|
|
91
96
|
from sempy_labs import report as rep
|
|
92
97
|
from sempy_labs.tom import connect_semantic_model
|
|
93
98
|
from sempy_labs.report import ReportWrapper
|
|
94
|
-
from sempy_labs import ConnectWarehouse
|
|
95
|
-
from sempy_labs import ConnectLakehouse
|
|
96
99
|
```
|
|
97
100
|
|
|
98
101
|
## Load Semantic Link Labs into a custom [Fabric environment](https://learn.microsoft.com/fabric/data-engineering/create-and-use-environment)
|
|
@@ -116,7 +119,9 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
116
119
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
117
120
|
|
|
118
121
|
## Version History
|
|
119
|
-
* [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)
|
|
120
125
|
* [0.8.11](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.11) (December 19, 2024)
|
|
121
126
|
* [0.8.10](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.10) (December 16, 2024)
|
|
122
127
|
* [0.8.9](https://github.com/microsoft/semantic-link-labs/releases/tag/0.8.9) (December 4, 2024)
|
|
@@ -210,6 +215,62 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope
|
|
|
210
215
|
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
|
|
211
216
|
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
|
|
212
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
|
+
|
|
213
274
|
## Trademarks
|
|
214
275
|
|
|
215
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
|
|
@@ -83,9 +83,9 @@
|
|
|
83
83
|
"resource_group = '' # Enter the name of the resource group (to be used to create the new F skus)\n",
|
|
84
84
|
"\n",
|
|
85
85
|
"key_vault_uri = '', # Enter your key vault URI\n",
|
|
86
|
-
"key_vault_tenant_id = '', # Enter the key vault secret
|
|
87
|
-
"key_vault_client_id = '', # Enter the key vault secret
|
|
88
|
-
"key_vault_client_secret = '' # Enter the key vault secret
|
|
86
|
+
"key_vault_tenant_id = '', # Enter the key vault key to the secret storing your Tenant ID\n",
|
|
87
|
+
"key_vault_client_id = '', # Enter the key vault key to the secret storing your Client ID (Application ID)\n",
|
|
88
|
+
"key_vault_client_secret = '' # Enter the key vault key to the secret storing your Client Secret"
|
|
89
89
|
]
|
|
90
90
|
},
|
|
91
91
|
{
|
|
@@ -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
|
+
}
|