semantic-link-labs 0.12.2__tar.gz → 0.12.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of semantic-link-labs might be problematic. Click here for more details.
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/PKG-INFO +5 -3
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/README.md +3 -1
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/docs/source/conf.py +1 -1
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/environment.yml +1 -1
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/pyproject.toml +2 -2
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/semantic_link_labs.egg-info/PKG-INFO +5 -3
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/semantic_link_labs.egg-info/SOURCES.txt +9 -1
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/semantic_link_labs.egg-info/requires.txt +1 -1
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/__init__.py +18 -10
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_a_lib_info.py +1 -1
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_authentication.py +1 -1
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_capacities.py +1 -1
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_generate_semantic_model.py +2 -2
- semantic_link_labs-0.12.4/src/sempy_labs/_get_connection_string.py +84 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_git.py +1 -1
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_helper_functions.py +28 -4
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_list_functions.py +55 -5
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_managed_private_endpoints.py +1 -1
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_notebooks.py +4 -2
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_semantic_models.py +118 -0
- semantic_link_labs-0.12.4/src/sempy_labs/_sql_audit_settings.py +208 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_sql_endpoints.py +27 -24
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_utils.py +2 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_warehouses.py +1 -56
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/__init__.py +6 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_items.py +3 -3
- semantic_link_labs-0.12.4/src/sempy_labs/admin/_labels.py +211 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/directlake/_warm_cache.py +3 -1
- semantic_link_labs-0.12.4/src/sempy_labs/eventstream/__init__.py +37 -0
- semantic_link_labs-0.12.4/src/sempy_labs/eventstream/_items.py +263 -0
- semantic_link_labs-0.12.4/src/sempy_labs/eventstream/_topology.py +652 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/graph/__init__.py +12 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/graph/_groups.py +60 -53
- semantic_link_labs-0.12.4/src/sempy_labs/graph/_sensitivity_labels.py +120 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/graph/_teams.py +19 -18
- semantic_link_labs-0.12.4/src/sempy_labs/graph/_user_licenses.py +96 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/graph/_users.py +23 -16
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/lakehouse/_get_lakehouse_tables.py +33 -1
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/lakehouse/_lakehouse.py +6 -2
- semantic_link_labs-0.12.4/src/sempy_labs/lakehouse/_partitioning.py +165 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_reportwrapper.py +15 -5
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/tom/_model.py +111 -16
- semantic_link_labs-0.12.2/src/sempy_labs/_eventstreams.py +0 -123
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/.github/ISSUE_TEMPLATE/issue--question---advice-needed.md +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/.github/workflows/build.yaml +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/.github/workflows/codeql.yaml +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/.gitignore +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/.readthedocs.yaml +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/.vscode/settings.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/CODE_OF_CONDUCT.md +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/LICENSE +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/SECURITY.md +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/SUPPORT.md +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/docs/Makefile +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/docs/make.bat +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/docs/requirements.txt +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/docs/source/index.rst +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/docs/source/modules.rst +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/notebooks/Best Practice Analyzer Report.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/notebooks/Capacity Migration.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/notebooks/Delta Analyzer.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/notebooks/Migration to Direct Lake.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/notebooks/Model Optimization.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/notebooks/Query Scale Out.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/notebooks/Report Analysis.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/notebooks/SQL.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/notebooks/Semantic Model Management.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/notebooks/Semantic Model Refresh.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/notebooks/Service Principal.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/notebooks/Tabular Object Model.ipynb +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/setup.cfg +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/semantic_link_labs.egg-info/dependency_links.txt +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/semantic_link_labs.egg-info/top_level.txt +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_ai.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_am-ET.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_ar-AE.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_bg-BG.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_ca-ES.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_cs-CZ.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_da-DK.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_de-DE.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_el-GR.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_es-ES.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_fa-IR.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_fi-FI.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_fr-FR.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_ga-IE.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_he-IL.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_hi-IN.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_hu-HU.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_id-ID.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_is-IS.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_it-IT.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_ja-JP.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_ko-KR.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_mt-MT.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_nl-NL.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_pl-PL.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_pt-BR.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_pt-PT.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_ro-RO.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_ru-RU.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_sk-SK.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_sl-SL.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_sv-SE.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_ta-IN.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_te-IN.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_th-TH.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_tr-TR.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_uk-UA.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_zh-CN.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_capacity_migration.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_clear_cache.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_connections.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_dashboards.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_data_access_security.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_data_pipelines.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_dataflows.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_dax.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_daxformatter.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_delta_analyzer.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_delta_analyzer_history.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_deployment_pipelines.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_dictionary_diffs.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_documentation.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_environments.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_eventhouses.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_external_data_shares.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_gateways.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_graphQL.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_icons.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_job_scheduler.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_kql_databases.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_kql_querysets.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_kusto.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_labels.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_mirrored_databases.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_mirrored_warehouses.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_ml_experiments.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_model_auto_build.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_model_bpa.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_model_bpa_bulk.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_model_bpa_rules.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_model_dependencies.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_mounted_data_factories.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_one_lake_integration.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_query_scale_out.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_refresh_semantic_model.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_spark.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_sql.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_sqldatabase.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_tags.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_translations.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_user_delegation_key.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_vertipaq.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_vpax.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_workloads.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_workspace_identity.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_workspaces.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_activities.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_apps.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_artifacts.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_basic_functions.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_capacities.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_dataflows.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_datasets.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_domains.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_external_data_share.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_git.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_reports.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_scanner.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_shared.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_sharing_links.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_tags.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_tenant.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_tenant_keys.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_users.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/admin/_workspaces.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/directlake/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/directlake/_directlake_schema_compare.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/directlake/_directlake_schema_sync.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/directlake/_dl_helper.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/directlake/_generate_shared_expression.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/directlake/_get_directlake_lakehouse.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/directlake/_get_shared_expression.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/directlake/_guardrails.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/directlake/_list_directlake_model_calc_tables.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/directlake/_show_unsupported_directlake_objects.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/directlake/_update_directlake_partition_entity.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/dotnet_lib/dotnet.runtime.config.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/lakehouse/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/lakehouse/_blobs.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/lakehouse/_get_lakehouse_columns.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/lakehouse/_helper.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/lakehouse/_livy_sessions.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/lakehouse/_materialized_lake_views.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/lakehouse/_shortcuts.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/migration/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/migration/_create_pqt_file.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/migration/_direct_lake_to_import.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/migration/_migrate_calctables_to_lakehouse.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/migration/_migrate_calctables_to_semantic_model.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/migration/_migration_validation.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/migration/_refresh_calc_tables.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/mirrored_azure_databricks_catalog/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/mirrored_azure_databricks_catalog/_discover.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/mirrored_azure_databricks_catalog/_refresh_catalog_metadata.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/ml_model/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/ml_model/_functions.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_BPAReportTemplate.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/.platform +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/1b08bce3bebabb0a27a8/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/2f22ddb70c301693c165/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/3b1182230aa6c600b43a/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/58577ba6380c69891500/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/a2a8fa5028b3b776c96c/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/adfd47ef30652707b987/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/b6a80ee459e716e170b1/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/ce3130a721c020cc3d81/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/visuals/66e60dfb526437cd78d1/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/07deb8bce824e1be37d7/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0b1c68838818b32ad03b/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0c171de9d2683d10b930/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0efa01be0510e40a645e/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/6bf2f0eb830ab53cc668/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/88d8141cb8500b60030c/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/a753273590beed656a03/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/b8fdc82cddd61ac447bc/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/report.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition/version.json +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_bpareporttemplate/definition.pbir +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_download_report.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_export_report.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_generate_report.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_paginated.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_report_bpa.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_report_bpa_rules.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_report_functions.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_report_helper.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_report_list_functions.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_report_rebind.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/report/_save_report.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/theme/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/theme/_org_themes.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/tom/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/variable_library/__init__.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/variable_library/_functions.py +0 -0
- {semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/tests/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: semantic-link-labs
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.4
|
|
4
4
|
Summary: Semantic Link Labs for Microsoft Fabric
|
|
5
5
|
Author: Microsoft Corporation
|
|
6
6
|
License: MIT License
|
|
@@ -15,7 +15,7 @@ Classifier: Framework :: Jupyter
|
|
|
15
15
|
Requires-Python: <3.12,>=3.10
|
|
16
16
|
Description-Content-Type: text/markdown
|
|
17
17
|
License-File: LICENSE
|
|
18
|
-
Requires-Dist: semantic-link-sempy>=0.12.
|
|
18
|
+
Requires-Dist: semantic-link-sempy>=0.12.1
|
|
19
19
|
Requires-Dist: anytree
|
|
20
20
|
Requires-Dist: polib
|
|
21
21
|
Requires-Dist: jsonpath_ng
|
|
@@ -26,7 +26,7 @@ Dynamic: license-file
|
|
|
26
26
|
# Semantic Link Labs
|
|
27
27
|
|
|
28
28
|
[](https://badge.fury.io/py/semantic-link-labs)
|
|
29
|
-
[](https://readthedocs.org/projects/semantic-link-labs/)
|
|
30
30
|
[](https://github.com/psf/black)
|
|
31
31
|
[](https://pepy.tech/project/semantic-link-labs)
|
|
32
32
|
|
|
@@ -154,6 +154,8 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
154
154
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
155
155
|
|
|
156
156
|
## Version History
|
|
157
|
+
* [0.12.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.4) (October 16, 2025)
|
|
158
|
+
* [0.12.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.3) (September 17, 2025)
|
|
157
159
|
* [0.12.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.2) (September 12, 2025)
|
|
158
160
|
* [0.12.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.1) (September 4, 2025)
|
|
159
161
|
* [0.12.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.0) (September 2, 2025)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Semantic Link Labs
|
|
2
2
|
|
|
3
3
|
[](https://badge.fury.io/py/semantic-link-labs)
|
|
4
|
-
[](https://readthedocs.org/projects/semantic-link-labs/)
|
|
5
5
|
[](https://github.com/psf/black)
|
|
6
6
|
[](https://pepy.tech/project/semantic-link-labs)
|
|
7
7
|
|
|
@@ -129,6 +129,8 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
129
129
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
130
130
|
|
|
131
131
|
## Version History
|
|
132
|
+
* [0.12.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.4) (October 16, 2025)
|
|
133
|
+
* [0.12.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.3) (September 17, 2025)
|
|
132
134
|
* [0.12.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.2) (September 12, 2025)
|
|
133
135
|
* [0.12.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.1) (September 4, 2025)
|
|
134
136
|
* [0.12.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.0) (September 2, 2025)
|
|
@@ -13,7 +13,7 @@ sys.path.insert(0, os.path.abspath('../../src/'))
|
|
|
13
13
|
project = 'semantic-link-labs'
|
|
14
14
|
copyright = '2024, Microsoft and community'
|
|
15
15
|
author = 'Microsoft and community'
|
|
16
|
-
release = '0.12.
|
|
16
|
+
release = '0.12.4'
|
|
17
17
|
|
|
18
18
|
# -- General configuration ---------------------------------------------------
|
|
19
19
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
|
@@ -7,7 +7,7 @@ name="semantic-link-labs"
|
|
|
7
7
|
authors = [
|
|
8
8
|
{ name = "Microsoft Corporation" },
|
|
9
9
|
]
|
|
10
|
-
version="0.12.
|
|
10
|
+
version="0.12.4"
|
|
11
11
|
description="Semantic Link Labs for Microsoft Fabric"
|
|
12
12
|
readme="README.md"
|
|
13
13
|
requires-python=">=3.10,<3.12"
|
|
@@ -23,7 +23,7 @@ classifiers = [
|
|
|
23
23
|
license= { text = "MIT License" }
|
|
24
24
|
|
|
25
25
|
dependencies = [
|
|
26
|
-
"semantic-link-sempy>=0.12.
|
|
26
|
+
"semantic-link-sempy>=0.12.1",
|
|
27
27
|
"anytree",
|
|
28
28
|
"polib",
|
|
29
29
|
"jsonpath_ng",
|
{semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/semantic_link_labs.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: semantic-link-labs
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.4
|
|
4
4
|
Summary: Semantic Link Labs for Microsoft Fabric
|
|
5
5
|
Author: Microsoft Corporation
|
|
6
6
|
License: MIT License
|
|
@@ -15,7 +15,7 @@ Classifier: Framework :: Jupyter
|
|
|
15
15
|
Requires-Python: <3.12,>=3.10
|
|
16
16
|
Description-Content-Type: text/markdown
|
|
17
17
|
License-File: LICENSE
|
|
18
|
-
Requires-Dist: semantic-link-sempy>=0.12.
|
|
18
|
+
Requires-Dist: semantic-link-sempy>=0.12.1
|
|
19
19
|
Requires-Dist: anytree
|
|
20
20
|
Requires-Dist: polib
|
|
21
21
|
Requires-Dist: jsonpath_ng
|
|
@@ -26,7 +26,7 @@ Dynamic: license-file
|
|
|
26
26
|
# Semantic Link Labs
|
|
27
27
|
|
|
28
28
|
[](https://badge.fury.io/py/semantic-link-labs)
|
|
29
|
-
[](https://readthedocs.org/projects/semantic-link-labs/)
|
|
30
30
|
[](https://github.com/psf/black)
|
|
31
31
|
[](https://pepy.tech/project/semantic-link-labs)
|
|
32
32
|
|
|
@@ -154,6 +154,8 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
154
154
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
155
155
|
|
|
156
156
|
## Version History
|
|
157
|
+
* [0.12.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.4) (October 16, 2025)
|
|
158
|
+
* [0.12.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.3) (September 17, 2025)
|
|
157
159
|
* [0.12.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.2) (September 12, 2025)
|
|
158
160
|
* [0.12.1](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.1) (September 4, 2025)
|
|
159
161
|
* [0.12.0](https://github.com/microsoft/semantic-link-labs/releases/tag/0.12.0) (September 2, 2025)
|
{semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/semantic_link_labs.egg-info/SOURCES.txt
RENAMED
|
@@ -57,10 +57,10 @@ src/sempy_labs/_dictionary_diffs.py
|
|
|
57
57
|
src/sempy_labs/_documentation.py
|
|
58
58
|
src/sempy_labs/_environments.py
|
|
59
59
|
src/sempy_labs/_eventhouses.py
|
|
60
|
-
src/sempy_labs/_eventstreams.py
|
|
61
60
|
src/sempy_labs/_external_data_shares.py
|
|
62
61
|
src/sempy_labs/_gateways.py
|
|
63
62
|
src/sempy_labs/_generate_semantic_model.py
|
|
63
|
+
src/sempy_labs/_get_connection_string.py
|
|
64
64
|
src/sempy_labs/_git.py
|
|
65
65
|
src/sempy_labs/_graphQL.py
|
|
66
66
|
src/sempy_labs/_helper_functions.py
|
|
@@ -88,6 +88,7 @@ src/sempy_labs/_refresh_semantic_model.py
|
|
|
88
88
|
src/sempy_labs/_semantic_models.py
|
|
89
89
|
src/sempy_labs/_spark.py
|
|
90
90
|
src/sempy_labs/_sql.py
|
|
91
|
+
src/sempy_labs/_sql_audit_settings.py
|
|
91
92
|
src/sempy_labs/_sql_endpoints.py
|
|
92
93
|
src/sempy_labs/_sqldatabase.py
|
|
93
94
|
src/sempy_labs/_tags.py
|
|
@@ -150,6 +151,7 @@ src/sempy_labs/admin/_domains.py
|
|
|
150
151
|
src/sempy_labs/admin/_external_data_share.py
|
|
151
152
|
src/sempy_labs/admin/_git.py
|
|
152
153
|
src/sempy_labs/admin/_items.py
|
|
154
|
+
src/sempy_labs/admin/_labels.py
|
|
153
155
|
src/sempy_labs/admin/_reports.py
|
|
154
156
|
src/sempy_labs/admin/_scanner.py
|
|
155
157
|
src/sempy_labs/admin/_shared.py
|
|
@@ -173,9 +175,14 @@ src/sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py
|
|
|
173
175
|
src/sempy_labs/directlake/_update_directlake_partition_entity.py
|
|
174
176
|
src/sempy_labs/directlake/_warm_cache.py
|
|
175
177
|
src/sempy_labs/dotnet_lib/dotnet.runtime.config.json
|
|
178
|
+
src/sempy_labs/eventstream/__init__.py
|
|
179
|
+
src/sempy_labs/eventstream/_items.py
|
|
180
|
+
src/sempy_labs/eventstream/_topology.py
|
|
176
181
|
src/sempy_labs/graph/__init__.py
|
|
177
182
|
src/sempy_labs/graph/_groups.py
|
|
183
|
+
src/sempy_labs/graph/_sensitivity_labels.py
|
|
178
184
|
src/sempy_labs/graph/_teams.py
|
|
185
|
+
src/sempy_labs/graph/_user_licenses.py
|
|
179
186
|
src/sempy_labs/graph/_users.py
|
|
180
187
|
src/sempy_labs/lakehouse/__init__.py
|
|
181
188
|
src/sempy_labs/lakehouse/_blobs.py
|
|
@@ -185,6 +192,7 @@ src/sempy_labs/lakehouse/_helper.py
|
|
|
185
192
|
src/sempy_labs/lakehouse/_lakehouse.py
|
|
186
193
|
src/sempy_labs/lakehouse/_livy_sessions.py
|
|
187
194
|
src/sempy_labs/lakehouse/_materialized_lake_views.py
|
|
195
|
+
src/sempy_labs/lakehouse/_partitioning.py
|
|
188
196
|
src/sempy_labs/lakehouse/_shortcuts.py
|
|
189
197
|
src/sempy_labs/migration/__init__.py
|
|
190
198
|
src/sempy_labs/migration/_create_pqt_file.py
|
|
@@ -31,6 +31,8 @@ from ._semantic_models import (
|
|
|
31
31
|
delete_semantic_model,
|
|
32
32
|
update_semantic_model_refresh_schedule,
|
|
33
33
|
list_semantic_model_datasources,
|
|
34
|
+
bind_semantic_model_connection,
|
|
35
|
+
unbind_semantic_model_connection,
|
|
34
36
|
)
|
|
35
37
|
from ._graphQL import (
|
|
36
38
|
list_graphql_apis,
|
|
@@ -100,7 +102,6 @@ from ._warehouses import (
|
|
|
100
102
|
delete_warehouse,
|
|
101
103
|
get_warehouse_columns,
|
|
102
104
|
get_warehouse_tables,
|
|
103
|
-
get_warehouse_connection_string,
|
|
104
105
|
)
|
|
105
106
|
from ._data_pipelines import (
|
|
106
107
|
list_data_pipelines,
|
|
@@ -114,11 +115,6 @@ from ._eventhouses import (
|
|
|
114
115
|
delete_eventhouse,
|
|
115
116
|
get_eventhouse_definition,
|
|
116
117
|
)
|
|
117
|
-
from ._eventstreams import (
|
|
118
|
-
list_eventstreams,
|
|
119
|
-
create_eventstream,
|
|
120
|
-
delete_eventstream,
|
|
121
|
-
)
|
|
122
118
|
from ._kql_querysets import (
|
|
123
119
|
list_kql_querysets,
|
|
124
120
|
create_kql_queryset,
|
|
@@ -283,6 +279,7 @@ from ._list_functions import (
|
|
|
283
279
|
list_server_properties,
|
|
284
280
|
list_semantic_model_errors,
|
|
285
281
|
list_synonyms,
|
|
282
|
+
list_user_defined_functions,
|
|
286
283
|
)
|
|
287
284
|
from ._helper_functions import (
|
|
288
285
|
get_item_definition,
|
|
@@ -351,6 +348,14 @@ from ._user_delegation_key import (
|
|
|
351
348
|
from ._data_access_security import (
|
|
352
349
|
list_data_access_roles,
|
|
353
350
|
)
|
|
351
|
+
from ._get_connection_string import (
|
|
352
|
+
get_connection_string,
|
|
353
|
+
)
|
|
354
|
+
from ._sql_audit_settings import (
|
|
355
|
+
get_sql_audit_settings,
|
|
356
|
+
update_sql_audit_settings,
|
|
357
|
+
set_audit_actions_and_group,
|
|
358
|
+
)
|
|
354
359
|
|
|
355
360
|
__all__ = [
|
|
356
361
|
"resolve_warehouse_id",
|
|
@@ -482,9 +487,6 @@ __all__ = [
|
|
|
482
487
|
"list_data_pipelines",
|
|
483
488
|
"create_data_pipeline",
|
|
484
489
|
"delete_data_pipeline",
|
|
485
|
-
"list_eventstreams",
|
|
486
|
-
"create_eventstream",
|
|
487
|
-
"delete_eventstream",
|
|
488
490
|
"list_kql_querysets",
|
|
489
491
|
"create_kql_queryset",
|
|
490
492
|
"delete_kql_queryset",
|
|
@@ -603,6 +605,12 @@ __all__ = [
|
|
|
603
605
|
"get_item_definition",
|
|
604
606
|
"get_workspace_network_communication_policy",
|
|
605
607
|
"set_workspace_network_communication_policy",
|
|
606
|
-
"
|
|
608
|
+
"get_connection_string",
|
|
607
609
|
"list_data_access_roles",
|
|
610
|
+
"bind_semantic_model_connection",
|
|
611
|
+
"unbind_semantic_model_connection",
|
|
612
|
+
"list_user_defined_functions",
|
|
613
|
+
"get_sql_audit_settings",
|
|
614
|
+
"update_sql_audit_settings",
|
|
615
|
+
"set_audit_actions_and_group",
|
|
608
616
|
]
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
lib_name = "semanticlinklabs"
|
|
2
|
-
lib_version = "0.12.
|
|
2
|
+
lib_version = "0.12.4"
|
|
@@ -130,7 +130,7 @@ class ServicePrincipalTokenProvider(TokenCredential):
|
|
|
130
130
|
if audience not in self._shorthand_scopes:
|
|
131
131
|
raise NotImplementedError
|
|
132
132
|
|
|
133
|
-
return self.get_token(audience).token
|
|
133
|
+
return self.get_token(audience, region=region).token
|
|
134
134
|
|
|
135
135
|
def get_token(self, *scopes, **kwargs) -> AccessToken:
|
|
136
136
|
"""
|
|
@@ -876,7 +876,7 @@ def create_storage_account(
|
|
|
876
876
|
"""
|
|
877
877
|
Asynchronously creates a new storage account with the specified parameters. If an account is already created and a subsequent create request is issued with different properties, the account properties will be updated. If an account is already created and a subsequent create or update request is issued with the exact same set of properties, the request will succeed.
|
|
878
878
|
|
|
879
|
-
This is a wrapper function for the following API: `Storage Accounts - Create <https://learn.microsoft.com/rest/api/storagerp/storage-accounts/create
|
|
879
|
+
This is a wrapper function for the following API: `Storage Accounts - Create <https://learn.microsoft.com/rest/api/storagerp/storage-accounts/create>`_.
|
|
880
880
|
|
|
881
881
|
Service Principal Authentication is required (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
|
|
882
882
|
|
{semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_generate_semantic_model.py
RENAMED
|
@@ -22,7 +22,7 @@ from uuid import UUID
|
|
|
22
22
|
@log
|
|
23
23
|
def create_blank_semantic_model(
|
|
24
24
|
dataset: str,
|
|
25
|
-
compatibility_level: int =
|
|
25
|
+
compatibility_level: int = 1702,
|
|
26
26
|
workspace: Optional[str | UUID] = None,
|
|
27
27
|
overwrite: bool = True,
|
|
28
28
|
):
|
|
@@ -33,7 +33,7 @@ def create_blank_semantic_model(
|
|
|
33
33
|
----------
|
|
34
34
|
dataset : str
|
|
35
35
|
Name of the semantic model.
|
|
36
|
-
compatibility_level : int, default=
|
|
36
|
+
compatibility_level : int, default=1702
|
|
37
37
|
The compatibility level of the semantic model.
|
|
38
38
|
workspace : str | uuid.UUID, default=None
|
|
39
39
|
The Fabric workspace name or ID.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
from sempy_labs._helper_functions import (
|
|
2
|
+
resolve_item_id,
|
|
3
|
+
_base_api,
|
|
4
|
+
resolve_workspace_id,
|
|
5
|
+
)
|
|
6
|
+
from typing import Optional, Literal
|
|
7
|
+
import sempy_labs._icons as icons
|
|
8
|
+
from uuid import UUID
|
|
9
|
+
from sempy._utils._log import log
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@log
|
|
13
|
+
def get_connection_string(
|
|
14
|
+
item: str | UUID,
|
|
15
|
+
type: Literal["Lakehouse", "Warehouse", "SQLEndpoint"],
|
|
16
|
+
workspace: Optional[str | UUID] = None,
|
|
17
|
+
guest_tenant_id: Optional[UUID] = None,
|
|
18
|
+
private_link_type: Optional[str] = None,
|
|
19
|
+
) -> str:
|
|
20
|
+
"""
|
|
21
|
+
Returns the SQL connection string of the specified item.
|
|
22
|
+
|
|
23
|
+
Parameters
|
|
24
|
+
----------
|
|
25
|
+
item : str | uuid.UUID
|
|
26
|
+
The name or ID of the item (Lakehouse or MirroredDatabase).
|
|
27
|
+
type : Literal['Lakehouse', 'Warehouse', 'SQLEndpoint']
|
|
28
|
+
The type of the item. Must be 'Lakehouse' or 'MirroredDatabase'.
|
|
29
|
+
workspace : str | uuid.UUID, default=None
|
|
30
|
+
The Fabric workspace name or ID.
|
|
31
|
+
Defaults to None which resolves to the workspace of the attached lakehouse
|
|
32
|
+
or if no lakehouse attached, resolves to the workspace of the notebook.
|
|
33
|
+
guest_tenant_id : uuid.UUID, default=None
|
|
34
|
+
The guest tenant ID if the end user's tenant is different from the warehouse tenant.
|
|
35
|
+
private_link_type : str, default=None
|
|
36
|
+
Indicates the type of private link this connection string uses. Must be either 'Workspace' or 'None' or left as None.
|
|
37
|
+
|
|
38
|
+
Returns
|
|
39
|
+
-------
|
|
40
|
+
str
|
|
41
|
+
Returns the SQL connection string of the specified item.
|
|
42
|
+
"""
|
|
43
|
+
workspace_id = resolve_workspace_id(workspace)
|
|
44
|
+
item_id = resolve_item_id(item=item, type=type, workspace=workspace)
|
|
45
|
+
|
|
46
|
+
type_dict = {
|
|
47
|
+
"Warehouse": "warehouses",
|
|
48
|
+
"SQLEndpoint": "sqlEndpoints",
|
|
49
|
+
}
|
|
50
|
+
type_for_url = type_dict.get(type)
|
|
51
|
+
|
|
52
|
+
if type == "Lakehouse":
|
|
53
|
+
response = _base_api(
|
|
54
|
+
f"/v1/workspaces/{workspace_id}/lakehouses/{item_id}", client="fabric_sp"
|
|
55
|
+
).json()
|
|
56
|
+
return (
|
|
57
|
+
response.get("properties", {})
|
|
58
|
+
.get("sqlEndpointProperties", {})
|
|
59
|
+
.get("connectionString", {})
|
|
60
|
+
)
|
|
61
|
+
if type in ["SQLEndpoint", "Warehouse"]:
|
|
62
|
+
url = f"/v1/workspaces/{workspace_id}/{type_for_url}/{item_id}/connectionString"
|
|
63
|
+
else:
|
|
64
|
+
raise ValueError(
|
|
65
|
+
f"{icons.red_dot} The type must be 'Lakehouse', 'Warehouse' or 'SQLEndpoint'."
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
if private_link_type is not None and private_link_type not in ["Workspace", "None"]:
|
|
69
|
+
raise ValueError(
|
|
70
|
+
f"{icons.red_dot} private_link_type must be 'Workspace' or 'None' or left as None."
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
if guest_tenant_id or private_link_type:
|
|
74
|
+
params = []
|
|
75
|
+
if guest_tenant_id:
|
|
76
|
+
params.append(f"guestTenantId={guest_tenant_id}")
|
|
77
|
+
if private_link_type:
|
|
78
|
+
params.append(f"privateLinkType={private_link_type}")
|
|
79
|
+
param_str = "?" + "&".join(params)
|
|
80
|
+
url += param_str
|
|
81
|
+
|
|
82
|
+
response = _base_api(request=url, client="fabric_sp")
|
|
83
|
+
|
|
84
|
+
return response.json().get("connectionString")
|
|
@@ -157,7 +157,7 @@ def get_git_status(workspace: Optional[str | UUID] = None) -> pd.DataFrame:
|
|
|
157
157
|
"""
|
|
158
158
|
Obtains the Git status of items in the workspace, that can be committed to Git.
|
|
159
159
|
|
|
160
|
-
This is a wrapper function for the following API: `Git - Get Status <https://learn.microsoft.com/rest/api/fabric/core/git/get-status
|
|
160
|
+
This is a wrapper function for the following API: `Git - Get Status <https://learn.microsoft.com/rest/api/fabric/core/git/get-status>`_.
|
|
161
161
|
|
|
162
162
|
Parameters
|
|
163
163
|
----------
|
|
@@ -282,8 +282,7 @@ def create_item(
|
|
|
282
282
|
"""
|
|
283
283
|
|
|
284
284
|
(workspace_name, workspace_id) = resolve_workspace_name_and_id(workspace)
|
|
285
|
-
|
|
286
|
-
item_type_url = utils.item_types.get(type)[1]
|
|
285
|
+
item_type_url = utils.items.get(type)
|
|
287
286
|
|
|
288
287
|
payload = {
|
|
289
288
|
"displayName": name,
|
|
@@ -306,7 +305,7 @@ def create_item(
|
|
|
306
305
|
client="fabric_sp",
|
|
307
306
|
)
|
|
308
307
|
print(
|
|
309
|
-
f"{icons.green_dot} The '{name}' {
|
|
308
|
+
f"{icons.green_dot} The '{name}' {type} has been successfully created within the '{workspace_name}' workspace."
|
|
310
309
|
)
|
|
311
310
|
|
|
312
311
|
|
|
@@ -549,6 +548,7 @@ def get_item_definition(
|
|
|
549
548
|
definition["definition"]["parts"].append(
|
|
550
549
|
{"path": path, "payload": decoded_payload}
|
|
551
550
|
)
|
|
551
|
+
return definition
|
|
552
552
|
else:
|
|
553
553
|
return result
|
|
554
554
|
|
|
@@ -1618,6 +1618,27 @@ def pagination(client, response):
|
|
|
1618
1618
|
return responses
|
|
1619
1619
|
|
|
1620
1620
|
|
|
1621
|
+
def graph_pagination(response, headers):
|
|
1622
|
+
|
|
1623
|
+
responses = []
|
|
1624
|
+
response_json = response.json()
|
|
1625
|
+
responses.append(response_json)
|
|
1626
|
+
|
|
1627
|
+
# Check for pagination
|
|
1628
|
+
odata_next_link = response_json.get("@odata.nextLink")
|
|
1629
|
+
|
|
1630
|
+
# Loop to handle pagination
|
|
1631
|
+
while odata_next_link is not None:
|
|
1632
|
+
response = requests.get(odata_next_link, headers=headers)
|
|
1633
|
+
response_json = response.json()
|
|
1634
|
+
responses.append(response_json)
|
|
1635
|
+
|
|
1636
|
+
# Update the odata next link for the next iteration
|
|
1637
|
+
odata_next_link = response_json.get("@odata.nextLink")
|
|
1638
|
+
|
|
1639
|
+
return responses
|
|
1640
|
+
|
|
1641
|
+
|
|
1621
1642
|
def resolve_deployment_pipeline_id(deployment_pipeline: str | UUID) -> UUID:
|
|
1622
1643
|
"""
|
|
1623
1644
|
Obtains the Id for a given deployment pipeline.
|
|
@@ -2253,7 +2274,10 @@ def _base_api(
|
|
|
2253
2274
|
if response.status_code not in status_codes:
|
|
2254
2275
|
raise FabricHTTPException(response)
|
|
2255
2276
|
if uses_pagination:
|
|
2256
|
-
|
|
2277
|
+
if client == "graph":
|
|
2278
|
+
responses = graph_pagination(response, headers)
|
|
2279
|
+
else:
|
|
2280
|
+
responses = pagination(c, response)
|
|
2257
2281
|
return responses
|
|
2258
2282
|
else:
|
|
2259
2283
|
return response
|
|
@@ -756,6 +756,53 @@ def update_item(
|
|
|
756
756
|
)
|
|
757
757
|
|
|
758
758
|
|
|
759
|
+
@log
|
|
760
|
+
def list_user_defined_functions(
|
|
761
|
+
dataset: str | UUID, workspace: Optional[str | UUID] = None
|
|
762
|
+
) -> pd.DataFrame:
|
|
763
|
+
"""
|
|
764
|
+
Shows a list of the user-defined functions within a semantic model.
|
|
765
|
+
|
|
766
|
+
Parameters
|
|
767
|
+
----------
|
|
768
|
+
dataset: str | uuid.UUID
|
|
769
|
+
Name or UUID of the semantic model.
|
|
770
|
+
workspace : str | uuid.UUID, default=None
|
|
771
|
+
The Fabric workspace name or ID.
|
|
772
|
+
Defaults to None which resolves to the workspace of the attached lakehouse
|
|
773
|
+
or if no lakehouse attached, resolves to the workspace of the notebook.
|
|
774
|
+
|
|
775
|
+
Returns
|
|
776
|
+
-------
|
|
777
|
+
pandas.DataFrame
|
|
778
|
+
A pandas dataframe showing a list of the user-defined functions within a semantic model.
|
|
779
|
+
"""
|
|
780
|
+
|
|
781
|
+
from sempy_labs.tom import connect_semantic_model
|
|
782
|
+
|
|
783
|
+
columns = {
|
|
784
|
+
"Function Name": "string",
|
|
785
|
+
"Expression": "string",
|
|
786
|
+
"Lineage Tag": "string",
|
|
787
|
+
}
|
|
788
|
+
df = _create_dataframe(columns=columns)
|
|
789
|
+
rows = []
|
|
790
|
+
with connect_semantic_model(dataset=dataset, workspace=workspace) as tom:
|
|
791
|
+
for f in tom.model.Functions:
|
|
792
|
+
rows.append(
|
|
793
|
+
{
|
|
794
|
+
"Function Name": f.Name,
|
|
795
|
+
"Expression": f.Expression,
|
|
796
|
+
"Lineage Tag": f.LineageTag,
|
|
797
|
+
}
|
|
798
|
+
)
|
|
799
|
+
|
|
800
|
+
if rows:
|
|
801
|
+
df = pd.DataFrame(rows)
|
|
802
|
+
|
|
803
|
+
return df
|
|
804
|
+
|
|
805
|
+
|
|
759
806
|
@log
|
|
760
807
|
def list_relationships(
|
|
761
808
|
dataset: str | UUID, workspace: Optional[str | UUID] = None, extended: bool = False
|
|
@@ -1484,15 +1531,14 @@ def list_semantic_model_errors(
|
|
|
1484
1531
|
|
|
1485
1532
|
from sempy_labs.tom import connect_semantic_model
|
|
1486
1533
|
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
dataset, workspace=workspace_id
|
|
1534
|
+
df = pd.DataFrame(
|
|
1535
|
+
columns=["Object Type", "Table Name", "Object Name", "Error Message"]
|
|
1490
1536
|
)
|
|
1491
1537
|
|
|
1492
1538
|
error_rows = []
|
|
1493
1539
|
|
|
1494
1540
|
with connect_semantic_model(
|
|
1495
|
-
dataset=
|
|
1541
|
+
dataset=dataset, workspace=workspace, readonly=True
|
|
1496
1542
|
) as tom:
|
|
1497
1543
|
# Define mappings of TOM objects to object types and attributes
|
|
1498
1544
|
error_checks = [
|
|
@@ -1546,6 +1592,7 @@ def list_semantic_model_errors(
|
|
|
1546
1592
|
else ""
|
|
1547
1593
|
),
|
|
1548
1594
|
),
|
|
1595
|
+
("Function", tom.all_functions, lambda o: o.ErrorMessage),
|
|
1549
1596
|
]
|
|
1550
1597
|
|
|
1551
1598
|
# Iterate over all error checks
|
|
@@ -1562,7 +1609,10 @@ def list_semantic_model_errors(
|
|
|
1562
1609
|
}
|
|
1563
1610
|
)
|
|
1564
1611
|
|
|
1565
|
-
|
|
1612
|
+
if error_rows:
|
|
1613
|
+
df = pd.DataFrame(error_rows)
|
|
1614
|
+
|
|
1615
|
+
return df
|
|
1566
1616
|
|
|
1567
1617
|
|
|
1568
1618
|
@log
|
{semantic_link_labs-0.12.2 → semantic_link_labs-0.12.4}/src/sempy_labs/_managed_private_endpoints.py
RENAMED
|
@@ -24,7 +24,7 @@ def create_managed_private_endpoint(
|
|
|
24
24
|
"""
|
|
25
25
|
Creates a managed private endpoint.
|
|
26
26
|
|
|
27
|
-
This is a wrapper function for the following API: `Managed Private Endpoints - Create Workspace Managed Private Endpoint <https://learn.microsoft.com/rest/api/fabric/core/managed-private-endpoints/create-workspace-managed-private-endpoint
|
|
27
|
+
This is a wrapper function for the following API: `Managed Private Endpoints - Create Workspace Managed Private Endpoint <https://learn.microsoft.com/rest/api/fabric/core/managed-private-endpoints/create-workspace-managed-private-endpoint>`_.
|
|
28
28
|
|
|
29
29
|
Service Principal Authentication is supported (see `here <https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Service%20Principal.ipynb>`_ for examples).
|
|
30
30
|
|
|
@@ -163,7 +163,7 @@ def import_notebook_from_web(
|
|
|
163
163
|
if len(dfI_filt) == 0:
|
|
164
164
|
create_notebook(
|
|
165
165
|
name=notebook_name,
|
|
166
|
-
notebook_content=response.content,
|
|
166
|
+
notebook_content=response.content.decode("utf-8"),
|
|
167
167
|
workspace=workspace_id,
|
|
168
168
|
description=description,
|
|
169
169
|
format="ipynb",
|
|
@@ -216,7 +216,9 @@ def create_notebook(
|
|
|
216
216
|
Defaults to None which places the notebook in the root of the workspace.
|
|
217
217
|
"""
|
|
218
218
|
|
|
219
|
-
notebook_payload = base64.b64encode(notebook_content
|
|
219
|
+
notebook_payload = base64.b64encode(notebook_content.encode("utf-8")).decode(
|
|
220
|
+
"utf-8"
|
|
221
|
+
)
|
|
220
222
|
|
|
221
223
|
definition_payload = {
|
|
222
224
|
"parts": [
|