semantic-link-labs 0.9.4__tar.gz → 0.9.5__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.4 → semantic_link_labs-0.9.5}/PKG-INFO +18 -2
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/README.md +17 -1
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/docs/source/conf.py +1 -1
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/pyproject.toml +1 -1
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/semantic_link_labs.egg-info/PKG-INFO +18 -2
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/semantic_link_labs.egg-info/SOURCES.txt +6 -1
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/__init__.py +18 -3
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_capacities.py +22 -127
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_capacity_migration.py +8 -7
- semantic_link_labs-0.9.5/src/sempy_labs/_dashboards.py +60 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_data_pipelines.py +5 -31
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_environments.py +20 -48
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_eventhouses.py +22 -52
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_eventstreams.py +16 -34
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_gateways.py +4 -4
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_generate_semantic_model.py +0 -1
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_git.py +90 -1
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_graphQL.py +3 -20
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_helper_functions.py +171 -43
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_kql_databases.py +19 -34
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_kql_querysets.py +15 -32
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_list_functions.py +12 -155
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_mirrored_databases.py +14 -48
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_ml_experiments.py +5 -30
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_ml_models.py +4 -28
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_model_bpa.py +2 -0
- semantic_link_labs-0.9.5/src/sempy_labs/_mounted_data_factories.py +119 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_notebooks.py +16 -26
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_sql.py +7 -6
- semantic_link_labs-0.9.5/src/sempy_labs/_utils.py +42 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_vertipaq.py +17 -2
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_warehouses.py +5 -17
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_workloads.py +23 -9
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_workspaces.py +13 -5
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/__init__.py +21 -1
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_apps.py +1 -1
- semantic_link_labs-0.9.5/src/sempy_labs/admin/_artifacts.py +62 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_basic_functions.py +0 -52
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_capacities.py +61 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_reports.py +74 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_shared.py +4 -2
- semantic_link_labs-0.9.5/src/sempy_labs/admin/_users.py +133 -0
- semantic_link_labs-0.9.5/src/sempy_labs/admin/_workspaces.py +148 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_update_directlake_partition_entity.py +9 -1
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/lakehouse/__init__.py +2 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/lakehouse/_lakehouse.py +6 -7
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/lakehouse/_shortcuts.py +192 -53
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_generate_report.py +9 -17
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_report_bpa.py +12 -19
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/tom/_model.py +34 -16
- semantic_link_labs-0.9.4/tests/test_shortcuts.py +0 -57
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/.github/ISSUE_TEMPLATE/issue--question---advice-needed.md +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/.github/workflows/build.yaml +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/.github/workflows/codeql.yaml +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/.gitignore +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/.readthedocs.yaml +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/.vscode/settings.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/CODE_OF_CONDUCT.md +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/LICENSE +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/SECURITY.md +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/SUPPORT.md +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/docs/Makefile +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/docs/make.bat +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/docs/requirements.txt +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/docs/source/index.rst +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/docs/source/modules.rst +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/environment.yml +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Best Practice Analyzer Report.ipynb +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Capacity Migration.ipynb +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Delta Analyzer.ipynb +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Migration to Direct Lake.ipynb +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Model Optimization.ipynb +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Query Scale Out.ipynb +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Report Analysis.ipynb +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/SQL.ipynb +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Semantic Model Management.ipynb +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Semantic Model Refresh.ipynb +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Service Principal.ipynb +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/notebooks/Tabular Object Model.ipynb +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/setup.cfg +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/semantic_link_labs.egg-info/dependency_links.txt +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/semantic_link_labs.egg-info/requires.txt +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/semantic_link_labs.egg-info/top_level.txt +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_ai.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_authentication.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_am-ET.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_ar-AE.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_bg-BG.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_ca-ES.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_cs-CZ.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_da-DK.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_de-DE.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_el-GR.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_es-ES.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_fa-IR.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_fi-FI.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_fr-FR.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_ga-IE.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_he-IL.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_hi-IN.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_hu-HU.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_id-ID.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_is-IS.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_it-IT.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_ja-JP.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_ko-KR.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_mt-MT.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_nl-NL.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_pl-PL.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_pt-BR.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_pt-PT.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_ro-RO.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_ru-RU.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_sk-SK.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_sl-SL.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_sv-SE.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_ta-IN.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_te-IN.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_th-TH.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_tr-TR.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_uk-UA.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_zh-CN.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_clear_cache.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_connections.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_dataflows.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_dax.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_delta_analyzer.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_deployment_pipelines.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_documentation.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_external_data_shares.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_icons.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_job_scheduler.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_managed_private_endpoints.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_mirrored_warehouses.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_model_auto_build.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_model_bpa_bulk.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_model_bpa_rules.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_model_dependencies.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_one_lake_integration.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_query_scale_out.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_refresh_semantic_model.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_semantic_models.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_spark.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_sqldatabase.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_translations.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/_workspace_identity.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_activities.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_datasets.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_domains.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_external_data_share.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_git.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_items.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_scanner.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/admin/_tenant.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/__init__.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_directlake_schema_compare.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_directlake_schema_sync.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_dl_helper.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_generate_shared_expression.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_get_directlake_lakehouse.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_get_shared_expression.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_guardrails.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_list_directlake_model_calc_tables.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_show_unsupported_directlake_objects.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_update_directlake_model_lakehouse_connection.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/directlake/_warm_cache.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/graph/__init__.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/graph/_groups.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/graph/_teams.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/graph/_users.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/lakehouse/_get_lakehouse_columns.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/lakehouse/_get_lakehouse_tables.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/migration/__init__.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/migration/_create_pqt_file.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/migration/_direct_lake_to_import.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/migration/_migrate_calctables_to_lakehouse.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/migration/_migrate_calctables_to_semantic_model.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/migration/_migration_validation.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/migration/_refresh_calc_tables.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_BPAReportTemplate.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/__init__.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/.platform +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/1b08bce3bebabb0a27a8/visual.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/2f22ddb70c301693c165/visual.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/3b1182230aa6c600b43a/visual.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/58577ba6380c69891500/visual.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/a2a8fa5028b3b776c96c/visual.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/adfd47ef30652707b987/visual.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/b6a80ee459e716e170b1/visual.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/ce3130a721c020cc3d81/visual.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/visuals/66e60dfb526437cd78d1/visual.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/07deb8bce824e1be37d7/visual.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0b1c68838818b32ad03b/visual.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0c171de9d2683d10b930/visual.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0efa01be0510e40a645e/visual.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/6bf2f0eb830ab53cc668/visual.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/88d8141cb8500b60030c/visual.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/a753273590beed656a03/visual.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/b8fdc82cddd61ac447bc/visual.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/report.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition/version.json +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_bpareporttemplate/definition.pbir +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_download_report.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_export_report.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_paginated.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_report_bpa_rules.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_report_functions.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_report_helper.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_report_list_functions.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_report_rebind.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/report/_reportwrapper.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/sempy_labs/tom/__init__.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/tests/__init__.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/tests/test_friendly_case.py +0 -0
- {semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/tests/test_tom.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.5
|
|
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
|
|
|
@@ -34,6 +34,9 @@ Requires-Dist: pytest>=8.2.1; extra == "test"
|
|
|
34
34
|
[Read the documentation on ReadTheDocs!](https://semantic-link-labs.readthedocs.io/en/stable/)
|
|
35
35
|
---
|
|
36
36
|
|
|
37
|
+
[Read the Wiki!](https://github.com/microsoft/semantic-link-labs/wiki)
|
|
38
|
+
---
|
|
39
|
+
|
|
37
40
|
Semantic Link Labs is a Python library designed for use in [Microsoft Fabric notebooks](https://learn.microsoft.com/fabric/data-engineering/how-to-use-notebook). This library extends the capabilities of [Semantic Link](https://learn.microsoft.com/fabric/data-science/semantic-link-overview) offering additional functionalities to seamlessly integrate and work alongside it. The goal of Semantic Link Labs is to simplify technical processes, empowering people to focus on higher level activities and allowing tasks that are better suited for machines to be efficiently handled without human intervention.
|
|
38
41
|
|
|
39
42
|
If you encounter any issues, please [raise a bug](https://github.com/microsoft/semantic-link-labs/issues/new?assignees=&labels=&projects=&template=bug_report.md&title=).
|
|
@@ -145,6 +148,7 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
145
148
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
146
149
|
|
|
147
150
|
## Version History
|
|
151
|
+
* [0.9.5](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.5) (March 7, 2025)
|
|
148
152
|
* [0.9.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.4) (February 27, 2025)
|
|
149
153
|
* [0.9.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.3) (February 13, 2025)
|
|
150
154
|
* [0.9.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.2) (February 5, 2025)
|
|
@@ -299,6 +303,18 @@ python -m build
|
|
|
299
303
|
4. Enter details into the description.
|
|
300
304
|
5. Click 'Create'.
|
|
301
305
|
|
|
306
|
+
#### Code Formatting
|
|
307
|
+
We use [black](github.com/psf/black) formatting as a code formatting standard. Make sure to run 'black' formatting on your code before submitting a pull request.
|
|
308
|
+
|
|
309
|
+
Run this code to install black
|
|
310
|
+
```cli
|
|
311
|
+
pip install black
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
Run this code to format your code using black
|
|
315
|
+
```cli
|
|
316
|
+
python -m black src
|
|
317
|
+
```
|
|
302
318
|
|
|
303
319
|
## Trademarks
|
|
304
320
|
|
|
@@ -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
|
|
|
@@ -9,6 +9,9 @@
|
|
|
9
9
|
[Read the documentation on ReadTheDocs!](https://semantic-link-labs.readthedocs.io/en/stable/)
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
+
[Read the Wiki!](https://github.com/microsoft/semantic-link-labs/wiki)
|
|
13
|
+
---
|
|
14
|
+
|
|
12
15
|
Semantic Link Labs is a Python library designed for use in [Microsoft Fabric notebooks](https://learn.microsoft.com/fabric/data-engineering/how-to-use-notebook). This library extends the capabilities of [Semantic Link](https://learn.microsoft.com/fabric/data-science/semantic-link-overview) offering additional functionalities to seamlessly integrate and work alongside it. The goal of Semantic Link Labs is to simplify technical processes, empowering people to focus on higher level activities and allowing tasks that are better suited for machines to be efficiently handled without human intervention.
|
|
13
16
|
|
|
14
17
|
If you encounter any issues, please [raise a bug](https://github.com/microsoft/semantic-link-labs/issues/new?assignees=&labels=&projects=&template=bug_report.md&title=).
|
|
@@ -120,6 +123,7 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
120
123
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
121
124
|
|
|
122
125
|
## Version History
|
|
126
|
+
* [0.9.5](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.5) (March 7, 2025)
|
|
123
127
|
* [0.9.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.4) (February 27, 2025)
|
|
124
128
|
* [0.9.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.3) (February 13, 2025)
|
|
125
129
|
* [0.9.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.2) (February 5, 2025)
|
|
@@ -274,6 +278,18 @@ python -m build
|
|
|
274
278
|
4. Enter details into the description.
|
|
275
279
|
5. Click 'Create'.
|
|
276
280
|
|
|
281
|
+
#### Code Formatting
|
|
282
|
+
We use [black](github.com/psf/black) formatting as a code formatting standard. Make sure to run 'black' formatting on your code before submitting a pull request.
|
|
283
|
+
|
|
284
|
+
Run this code to install black
|
|
285
|
+
```cli
|
|
286
|
+
pip install black
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
Run this code to format your code using black
|
|
290
|
+
```cli
|
|
291
|
+
python -m black src
|
|
292
|
+
```
|
|
277
293
|
|
|
278
294
|
## Trademarks
|
|
279
295
|
|
|
@@ -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.5'
|
|
17
17
|
|
|
18
18
|
# -- General configuration ---------------------------------------------------
|
|
19
19
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
{semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/semantic_link_labs.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: semantic-link-labs
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.5
|
|
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
|
|
|
@@ -34,6 +34,9 @@ Requires-Dist: pytest>=8.2.1; extra == "test"
|
|
|
34
34
|
[Read the documentation on ReadTheDocs!](https://semantic-link-labs.readthedocs.io/en/stable/)
|
|
35
35
|
---
|
|
36
36
|
|
|
37
|
+
[Read the Wiki!](https://github.com/microsoft/semantic-link-labs/wiki)
|
|
38
|
+
---
|
|
39
|
+
|
|
37
40
|
Semantic Link Labs is a Python library designed for use in [Microsoft Fabric notebooks](https://learn.microsoft.com/fabric/data-engineering/how-to-use-notebook). This library extends the capabilities of [Semantic Link](https://learn.microsoft.com/fabric/data-science/semantic-link-overview) offering additional functionalities to seamlessly integrate and work alongside it. The goal of Semantic Link Labs is to simplify technical processes, empowering people to focus on higher level activities and allowing tasks that are better suited for machines to be efficiently handled without human intervention.
|
|
38
41
|
|
|
39
42
|
If you encounter any issues, please [raise a bug](https://github.com/microsoft/semantic-link-labs/issues/new?assignees=&labels=&projects=&template=bug_report.md&title=).
|
|
@@ -145,6 +148,7 @@ An even better way to ensure the semantic-link-labs library is available in your
|
|
|
145
148
|
2. Select your newly created environment within the 'Environment' drop down in the navigation bar at the top of the notebook
|
|
146
149
|
|
|
147
150
|
## Version History
|
|
151
|
+
* [0.9.5](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.5) (March 7, 2025)
|
|
148
152
|
* [0.9.4](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.4) (February 27, 2025)
|
|
149
153
|
* [0.9.3](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.3) (February 13, 2025)
|
|
150
154
|
* [0.9.2](https://github.com/microsoft/semantic-link-labs/releases/tag/0.9.2) (February 5, 2025)
|
|
@@ -299,6 +303,18 @@ python -m build
|
|
|
299
303
|
4. Enter details into the description.
|
|
300
304
|
5. Click 'Create'.
|
|
301
305
|
|
|
306
|
+
#### Code Formatting
|
|
307
|
+
We use [black](github.com/psf/black) formatting as a code formatting standard. Make sure to run 'black' formatting on your code before submitting a pull request.
|
|
308
|
+
|
|
309
|
+
Run this code to install black
|
|
310
|
+
```cli
|
|
311
|
+
pip install black
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
Run this code to format your code using black
|
|
315
|
+
```cli
|
|
316
|
+
python -m black src
|
|
317
|
+
```
|
|
302
318
|
|
|
303
319
|
## Trademarks
|
|
304
320
|
|
{semantic_link_labs-0.9.4 → semantic_link_labs-0.9.5}/src/semantic_link_labs.egg-info/SOURCES.txt
RENAMED
|
@@ -43,6 +43,7 @@ src/sempy_labs/_capacities.py
|
|
|
43
43
|
src/sempy_labs/_capacity_migration.py
|
|
44
44
|
src/sempy_labs/_clear_cache.py
|
|
45
45
|
src/sempy_labs/_connections.py
|
|
46
|
+
src/sempy_labs/_dashboards.py
|
|
46
47
|
src/sempy_labs/_data_pipelines.py
|
|
47
48
|
src/sempy_labs/_dataflows.py
|
|
48
49
|
src/sempy_labs/_dax.py
|
|
@@ -73,6 +74,7 @@ src/sempy_labs/_model_bpa.py
|
|
|
73
74
|
src/sempy_labs/_model_bpa_bulk.py
|
|
74
75
|
src/sempy_labs/_model_bpa_rules.py
|
|
75
76
|
src/sempy_labs/_model_dependencies.py
|
|
77
|
+
src/sempy_labs/_mounted_data_factories.py
|
|
76
78
|
src/sempy_labs/_notebooks.py
|
|
77
79
|
src/sempy_labs/_one_lake_integration.py
|
|
78
80
|
src/sempy_labs/_query_scale_out.py
|
|
@@ -82,6 +84,7 @@ src/sempy_labs/_spark.py
|
|
|
82
84
|
src/sempy_labs/_sql.py
|
|
83
85
|
src/sempy_labs/_sqldatabase.py
|
|
84
86
|
src/sempy_labs/_translations.py
|
|
87
|
+
src/sempy_labs/_utils.py
|
|
85
88
|
src/sempy_labs/_vertipaq.py
|
|
86
89
|
src/sempy_labs/_warehouses.py
|
|
87
90
|
src/sempy_labs/_workloads.py
|
|
@@ -128,6 +131,7 @@ src/sempy_labs/_bpa_translation/_model/_translations_zu-ZA.po
|
|
|
128
131
|
src/sempy_labs/admin/__init__.py
|
|
129
132
|
src/sempy_labs/admin/_activities.py
|
|
130
133
|
src/sempy_labs/admin/_apps.py
|
|
134
|
+
src/sempy_labs/admin/_artifacts.py
|
|
131
135
|
src/sempy_labs/admin/_basic_functions.py
|
|
132
136
|
src/sempy_labs/admin/_capacities.py
|
|
133
137
|
src/sempy_labs/admin/_datasets.py
|
|
@@ -139,6 +143,8 @@ src/sempy_labs/admin/_reports.py
|
|
|
139
143
|
src/sempy_labs/admin/_scanner.py
|
|
140
144
|
src/sempy_labs/admin/_shared.py
|
|
141
145
|
src/sempy_labs/admin/_tenant.py
|
|
146
|
+
src/sempy_labs/admin/_users.py
|
|
147
|
+
src/sempy_labs/admin/_workspaces.py
|
|
142
148
|
src/sempy_labs/directlake/__init__.py
|
|
143
149
|
src/sempy_labs/directlake/_directlake_schema_compare.py
|
|
144
150
|
src/sempy_labs/directlake/_directlake_schema_sync.py
|
|
@@ -216,5 +222,4 @@ src/sempy_labs/tom/__init__.py
|
|
|
216
222
|
src/sempy_labs/tom/_model.py
|
|
217
223
|
tests/__init__.py
|
|
218
224
|
tests/test_friendly_case.py
|
|
219
|
-
tests/test_shortcuts.py
|
|
220
225
|
tests/test_tom.py
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
from sempy_labs._mounted_data_factories import (
|
|
2
|
+
list_mounted_data_factories,
|
|
3
|
+
get_mounted_data_factory_definition,
|
|
4
|
+
delete_mounted_data_factory,
|
|
5
|
+
)
|
|
6
|
+
|
|
1
7
|
from sempy_labs._semantic_models import (
|
|
2
8
|
get_semantic_model_refresh_schedule,
|
|
3
9
|
enable_semantic_model_scheduled_refresh,
|
|
@@ -99,7 +105,7 @@ from sempy_labs._kql_querysets import (
|
|
|
99
105
|
)
|
|
100
106
|
from sempy_labs._kql_databases import (
|
|
101
107
|
list_kql_databases,
|
|
102
|
-
create_kql_database,
|
|
108
|
+
# create_kql_database,
|
|
103
109
|
delete_kql_database,
|
|
104
110
|
)
|
|
105
111
|
from sempy_labs._mirrored_warehouses import list_mirrored_warehouses
|
|
@@ -193,6 +199,8 @@ from sempy_labs._git import (
|
|
|
193
199
|
connect_workspace_to_azure_dev_ops,
|
|
194
200
|
connect_workspace_to_github,
|
|
195
201
|
disconnect_workspace_from_git,
|
|
202
|
+
get_my_git_credentials,
|
|
203
|
+
update_my_git_credentials,
|
|
196
204
|
)
|
|
197
205
|
from sempy_labs._dataflows import (
|
|
198
206
|
list_dataflow_storage_accounts,
|
|
@@ -226,6 +234,9 @@ from sempy_labs._generate_semantic_model import (
|
|
|
226
234
|
update_semantic_model_from_bim,
|
|
227
235
|
get_semantic_model_definition,
|
|
228
236
|
)
|
|
237
|
+
from sempy_labs._dashboards import (
|
|
238
|
+
list_dashboards,
|
|
239
|
+
)
|
|
229
240
|
from sempy_labs._list_functions import (
|
|
230
241
|
list_reports_using_semantic_model,
|
|
231
242
|
list_semantic_model_object_report_usage,
|
|
@@ -234,7 +245,6 @@ from sempy_labs._list_functions import (
|
|
|
234
245
|
list_shortcuts,
|
|
235
246
|
get_object_level_security,
|
|
236
247
|
list_capacities,
|
|
237
|
-
list_dashboards,
|
|
238
248
|
list_datamarts,
|
|
239
249
|
list_lakehouses,
|
|
240
250
|
list_sql_endpoints,
|
|
@@ -425,7 +435,7 @@ __all__ = [
|
|
|
425
435
|
"convert_to_friendly_case",
|
|
426
436
|
"list_mirrored_warehouses",
|
|
427
437
|
"list_kql_databases",
|
|
428
|
-
"create_kql_database",
|
|
438
|
+
# "create_kql_database",
|
|
429
439
|
"delete_kql_database",
|
|
430
440
|
"create_eventhouse",
|
|
431
441
|
"list_eventhouses",
|
|
@@ -525,4 +535,9 @@ __all__ = [
|
|
|
525
535
|
"create_item_schedule_cron",
|
|
526
536
|
"create_item_schedule_daily",
|
|
527
537
|
"create_item_schedule_weekly",
|
|
538
|
+
"get_my_git_credentials",
|
|
539
|
+
"update_my_git_credentials",
|
|
540
|
+
"list_mounted_data_factories",
|
|
541
|
+
"get_mounted_data_factory_definition",
|
|
542
|
+
"delete_mounted_data_factory",
|
|
528
543
|
]
|
|
@@ -256,7 +256,6 @@ def suspend_fabric_capacity(
|
|
|
256
256
|
capacity_name: str,
|
|
257
257
|
azure_subscription_id: str,
|
|
258
258
|
resource_group: str,
|
|
259
|
-
**kwargs,
|
|
260
259
|
):
|
|
261
260
|
"""
|
|
262
261
|
This function suspends a Fabric capacity.
|
|
@@ -275,26 +274,9 @@ def suspend_fabric_capacity(
|
|
|
275
274
|
The name of the Azure resource group.
|
|
276
275
|
"""
|
|
277
276
|
|
|
278
|
-
token_provider = auth.token_provider.get()
|
|
279
|
-
if token_provider is None:
|
|
280
|
-
token_provider = ServicePrincipalTokenProvider.from_azure_key_vault(
|
|
281
|
-
key_vault_uri=kwargs["key_vault_uri"],
|
|
282
|
-
key_vault_tenant_id=kwargs["key_vault_tenant_id"],
|
|
283
|
-
key_vault_client_id=kwargs["key_vault_client_id"],
|
|
284
|
-
key_vault_client_secret=kwargs["key_vault_client_secret"],
|
|
285
|
-
)
|
|
286
|
-
print(
|
|
287
|
-
f"{icons.info} Please use the 'token_provider' parameter instead of the key vault parameters within this function as the key vault parameters have been deprecated."
|
|
288
|
-
)
|
|
289
|
-
|
|
290
|
-
headers = _get_headers(token_provider, audience="azure")
|
|
291
|
-
|
|
292
277
|
url = f"https://management.azure.com/subscriptions/{azure_subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.Fabric/capacities/{capacity_name}/suspend?api-version={icons.azure_api_version}"
|
|
293
278
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
if response.status_code != 202:
|
|
297
|
-
raise FabricHTTPException(response)
|
|
279
|
+
_base_api(request=url, client="azure", method="post", status_codes=202)
|
|
298
280
|
|
|
299
281
|
print(f"{icons.green_dot} The '{capacity_name}' capacity has been suspended.")
|
|
300
282
|
|
|
@@ -304,7 +286,6 @@ def resume_fabric_capacity(
|
|
|
304
286
|
capacity_name: str,
|
|
305
287
|
azure_subscription_id: str,
|
|
306
288
|
resource_group: str,
|
|
307
|
-
**kwargs,
|
|
308
289
|
):
|
|
309
290
|
"""
|
|
310
291
|
This function resumes a Fabric capacity.
|
|
@@ -323,26 +304,9 @@ def resume_fabric_capacity(
|
|
|
323
304
|
The name of the Azure resource group.
|
|
324
305
|
"""
|
|
325
306
|
|
|
326
|
-
token_provider = auth.token_provider.get()
|
|
327
|
-
if token_provider is None:
|
|
328
|
-
token_provider = ServicePrincipalTokenProvider.from_azure_key_vault(
|
|
329
|
-
key_vault_uri=kwargs["key_vault_uri"],
|
|
330
|
-
key_vault_tenant_id=kwargs["key_vault_tenant_id"],
|
|
331
|
-
key_vault_client_id=kwargs["key_vault_client_id"],
|
|
332
|
-
key_vault_client_secret=kwargs["key_vault_client_secret"],
|
|
333
|
-
)
|
|
334
|
-
print(
|
|
335
|
-
f"{icons.info} Please use the 'token_provider' parameter instead of the key vault parameters within this function as the key vault parameters have been deprecated."
|
|
336
|
-
)
|
|
337
|
-
|
|
338
|
-
headers = _get_headers(token_provider, audience="azure")
|
|
339
|
-
|
|
340
307
|
url = f"https://management.azure.com/subscriptions/{azure_subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.Fabric/capacities/{capacity_name}/resume?api-version={icons.azure_api_version}"
|
|
341
308
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
if response.status_code != 202:
|
|
345
|
-
raise FabricHTTPException(response)
|
|
309
|
+
_base_api(request=url, client="azure", method="post", status_codes=202)
|
|
346
310
|
|
|
347
311
|
print(f"{icons.green_dot} The '{capacity_name}' capacity has been resumed.")
|
|
348
312
|
|
|
@@ -352,7 +316,6 @@ def delete_embedded_capacity(
|
|
|
352
316
|
capacity_name: str,
|
|
353
317
|
azure_subscription_id: str,
|
|
354
318
|
resource_group: str,
|
|
355
|
-
**kwargs,
|
|
356
319
|
):
|
|
357
320
|
"""
|
|
358
321
|
This function deletes a Power BI Embedded capacity.
|
|
@@ -369,53 +332,36 @@ def delete_embedded_capacity(
|
|
|
369
332
|
The name of the Azure resource group.
|
|
370
333
|
"""
|
|
371
334
|
|
|
372
|
-
token_provider = auth.token_provider.get()
|
|
373
|
-
if token_provider is None:
|
|
374
|
-
token_provider = ServicePrincipalTokenProvider.from_azure_key_vault(
|
|
375
|
-
key_vault_uri=kwargs["key_vault_uri"],
|
|
376
|
-
key_vault_tenant_id=kwargs["key_vault_tenant_id"],
|
|
377
|
-
key_vault_client_id=kwargs["key_vault_client_id"],
|
|
378
|
-
key_vault_client_secret=kwargs["key_vault_client_secret"],
|
|
379
|
-
)
|
|
380
|
-
print(
|
|
381
|
-
f"{icons.info} Please use the 'token_provider' parameter instead of the key vault parameters within this function as the key vault parameters have been deprecated."
|
|
382
|
-
)
|
|
383
|
-
|
|
384
|
-
headers = _get_headers(token_provider, audience="azure")
|
|
385
|
-
|
|
386
335
|
url = f"https://management.azure.com/subscriptions/{azure_subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.PowerBIDedicated/capacities/{capacity_name}?api-version={icons.azure_api_version}"
|
|
387
336
|
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
if response.status_code not in [200, 202]:
|
|
391
|
-
raise FabricHTTPException(response)
|
|
337
|
+
_base_api(request=url, client="azure", method="delete", status_codes=[200, 202])
|
|
392
338
|
|
|
393
339
|
print(f"{icons.green_dot} The '{capacity_name}' capacity has been deleted.")
|
|
394
340
|
|
|
395
341
|
|
|
396
342
|
@log
|
|
397
|
-
def delete_premium_capacity(
|
|
343
|
+
def delete_premium_capacity(capacity: str | UUID, **kwargs):
|
|
398
344
|
"""
|
|
399
345
|
This function deletes a Power BI Premium capacity.
|
|
400
346
|
|
|
401
347
|
Parameters
|
|
402
348
|
----------
|
|
403
|
-
|
|
404
|
-
Name of the Fabric capacity.
|
|
349
|
+
capacity : str | uuid.UUID
|
|
350
|
+
Name or ID of the Fabric capacity.
|
|
405
351
|
"""
|
|
352
|
+
from sempy_labs._helper_functions import resolve_capacity_id
|
|
406
353
|
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
raise ValueError(
|
|
412
|
-
f"{icons.red_dot} The '{capacity_name}' capacity does not exist."
|
|
354
|
+
if "capacity_name" in kwargs:
|
|
355
|
+
capacity = kwargs["capacity_name"]
|
|
356
|
+
print(
|
|
357
|
+
f"{icons.warning} The 'capacity_name' parameter is deprecated. Please use 'capacity' instead."
|
|
413
358
|
)
|
|
414
|
-
|
|
359
|
+
|
|
360
|
+
capacity_id = resolve_capacity_id(capacity=capacity).upper()
|
|
415
361
|
|
|
416
362
|
_base_api(request=f"capacities/{capacity_id}", method="delete", status_codes=204)
|
|
417
363
|
|
|
418
|
-
print(f"{icons.green_dot} The '{
|
|
364
|
+
print(f"{icons.green_dot} The '{capacity}' capacity has been deleted.")
|
|
419
365
|
|
|
420
366
|
|
|
421
367
|
@log
|
|
@@ -423,7 +369,6 @@ def delete_fabric_capacity(
|
|
|
423
369
|
capacity_name: str,
|
|
424
370
|
azure_subscription_id: str,
|
|
425
371
|
resource_group: str,
|
|
426
|
-
**kwargs,
|
|
427
372
|
):
|
|
428
373
|
"""
|
|
429
374
|
This function deletes a Fabric capacity.
|
|
@@ -442,26 +387,9 @@ def delete_fabric_capacity(
|
|
|
442
387
|
The name of the Azure resource group.
|
|
443
388
|
"""
|
|
444
389
|
|
|
445
|
-
token_provider = auth.token_provider.get()
|
|
446
|
-
if token_provider is None:
|
|
447
|
-
token_provider = ServicePrincipalTokenProvider.from_azure_key_vault(
|
|
448
|
-
key_vault_uri=kwargs["key_vault_uri"],
|
|
449
|
-
key_vault_tenant_id=kwargs["key_vault_tenant_id"],
|
|
450
|
-
key_vault_client_id=kwargs["key_vault_client_id"],
|
|
451
|
-
key_vault_client_secret=kwargs["key_vault_client_secret"],
|
|
452
|
-
)
|
|
453
|
-
print(
|
|
454
|
-
f"{icons.info} Please use the 'token_provider' parameter instead of the key vault parameters within this function as the key vault parameters have been deprecated."
|
|
455
|
-
)
|
|
456
|
-
|
|
457
|
-
headers = _get_headers(token_provider, audience="azure")
|
|
458
|
-
|
|
459
390
|
url = f"https://management.azure.com/subscriptions/{azure_subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.Fabric/capacities/{capacity_name}?api-version={icons.azure_api_version}"
|
|
460
391
|
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
if response.status_code != 202:
|
|
464
|
-
raise FabricHTTPException(response)
|
|
392
|
+
_base_api(request=url, client="azure", method="delete", status_codes=202)
|
|
465
393
|
|
|
466
394
|
print(f"{icons.green_dot} The '{capacity_name}' capacity has been deleted.")
|
|
467
395
|
|
|
@@ -474,7 +402,6 @@ def update_fabric_capacity(
|
|
|
474
402
|
sku: Optional[str] = None,
|
|
475
403
|
admin_members: Optional[str | List[str]] = None,
|
|
476
404
|
tags: Optional[dict] = None,
|
|
477
|
-
**kwargs,
|
|
478
405
|
):
|
|
479
406
|
"""
|
|
480
407
|
This function updates a Fabric capacity's properties.
|
|
@@ -499,25 +426,9 @@ def update_fabric_capacity(
|
|
|
499
426
|
Tag(s) to add to the capacity. Example: {'tagName': 'tagValue'}.
|
|
500
427
|
"""
|
|
501
428
|
|
|
502
|
-
token_provider = auth.token_provider.get()
|
|
503
|
-
if token_provider is None:
|
|
504
|
-
token_provider = ServicePrincipalTokenProvider.from_azure_key_vault(
|
|
505
|
-
key_vault_uri=kwargs["key_vault_uri"],
|
|
506
|
-
key_vault_tenant_id=kwargs["key_vault_tenant_id"],
|
|
507
|
-
key_vault_client_id=kwargs["key_vault_client_id"],
|
|
508
|
-
key_vault_client_secret=kwargs["key_vault_client_secret"],
|
|
509
|
-
)
|
|
510
|
-
print(
|
|
511
|
-
f"{icons.info} Please use the 'token_provider' parameter instead of the key vault parameters within this function as the key vault parameters have been deprecated."
|
|
512
|
-
)
|
|
513
|
-
|
|
514
|
-
headers = _get_headers(token_provider, audience="azure")
|
|
515
|
-
|
|
516
429
|
url = f"https://management.azure.com/subscriptions/{azure_subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.Fabric/capacities/{capacity_name}?api-version={icons.azure_api_version}"
|
|
517
430
|
|
|
518
|
-
get_response =
|
|
519
|
-
if get_response.status_code != 200:
|
|
520
|
-
raise FabricHTTPException(get_response)
|
|
431
|
+
get_response = _base_api(request=url, client="azure")
|
|
521
432
|
|
|
522
433
|
get_json = get_response.json()
|
|
523
434
|
current_sku = get_json.get("sku", {}).get("name")
|
|
@@ -549,10 +460,9 @@ def update_fabric_capacity(
|
|
|
549
460
|
return
|
|
550
461
|
|
|
551
462
|
payload = _add_sll_tag(payload, tags)
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
raise FabricHTTPException(response)
|
|
463
|
+
_base_api(
|
|
464
|
+
request=url, client="azure", method="patch", payload=payload, status_codes=202
|
|
465
|
+
)
|
|
556
466
|
|
|
557
467
|
print(
|
|
558
468
|
f"{icons.green_dot} The '{capacity_name}' capacity has been updated accordingly."
|
|
@@ -588,28 +498,13 @@ def check_fabric_capacity_name_availablility(
|
|
|
588
498
|
An indication as to whether the Fabric capacity name is available or not.
|
|
589
499
|
"""
|
|
590
500
|
|
|
591
|
-
token_provider = auth.token_provider.get()
|
|
592
|
-
if token_provider is None:
|
|
593
|
-
token_provider = ServicePrincipalTokenProvider.from_azure_key_vault(
|
|
594
|
-
key_vault_uri=kwargs["key_vault_uri"],
|
|
595
|
-
key_vault_tenant_id=kwargs["key_vault_tenant_id"],
|
|
596
|
-
key_vault_client_id=kwargs["key_vault_client_id"],
|
|
597
|
-
key_vault_client_secret=kwargs["key_vault_client_secret"],
|
|
598
|
-
)
|
|
599
|
-
print(
|
|
600
|
-
f"{icons.info} Please use the 'token_provider' parameter instead of the key vault parameters within this function as the key vault parameters have been deprecated."
|
|
601
|
-
)
|
|
602
|
-
|
|
603
|
-
headers = _get_headers(token_provider, audience="azure")
|
|
604
|
-
|
|
605
501
|
payload = {"name": capacity_name, "type": "Microsoft.Fabric/capacities"}
|
|
606
502
|
|
|
607
503
|
url = f"https://management.azure.com/subscriptions/{azure_subscription_id}/providers/Microsoft.Fabric/locations/{region}/checkNameAvailability?api-version={icons.azure_api_version}"
|
|
608
504
|
|
|
609
|
-
response =
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
raise FabricHTTPException(response)
|
|
505
|
+
response = _base_api(
|
|
506
|
+
request=url, client="azure", method="post", payload=payload, status_codes=202
|
|
507
|
+
)
|
|
613
508
|
|
|
614
509
|
return bool(response.json().get("nameAvailable"))
|
|
615
510
|
|
|
@@ -16,6 +16,7 @@ from sempy_labs._helper_functions import (
|
|
|
16
16
|
_base_api,
|
|
17
17
|
)
|
|
18
18
|
from sempy_labs._capacities import create_fabric_capacity
|
|
19
|
+
from uuid import UUID
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
def _migrate_settings(source_capacity: str, target_capacity: str):
|
|
@@ -531,7 +532,7 @@ def _migrate_delegated_tenant_settings(source_capacity: str, target_capacity: st
|
|
|
531
532
|
|
|
532
533
|
|
|
533
534
|
@log
|
|
534
|
-
def _migrate_spark_settings(source_capacity: str, target_capacity: str):
|
|
535
|
+
def _migrate_spark_settings(source_capacity: str | UUID, target_capacity: str | UUID):
|
|
535
536
|
"""
|
|
536
537
|
This function migrates a capacity's spark settings to another capacity.
|
|
537
538
|
|
|
@@ -539,14 +540,14 @@ def _migrate_spark_settings(source_capacity: str, target_capacity: str):
|
|
|
539
540
|
|
|
540
541
|
Parameters
|
|
541
542
|
----------
|
|
542
|
-
source_capacity : str
|
|
543
|
-
Name of the source capacity.
|
|
544
|
-
target_capacity : str
|
|
545
|
-
Name of the target capacity.
|
|
543
|
+
source_capacity : str | uuid.UUID
|
|
544
|
+
Name or ID of the source capacity.
|
|
545
|
+
target_capacity : str | uuid.UUID
|
|
546
|
+
Name or ID of the target capacity.
|
|
546
547
|
"""
|
|
547
548
|
|
|
548
|
-
source_capacity_id = resolve_capacity_id(
|
|
549
|
-
target_capacity_id = resolve_capacity_id(
|
|
549
|
+
source_capacity_id = resolve_capacity_id(capacity=source_capacity)
|
|
550
|
+
target_capacity_id = resolve_capacity_id(capacity=target_capacity)
|
|
550
551
|
|
|
551
552
|
# Get source capacity server dns
|
|
552
553
|
response = _base_api(request=f"metadata/capacityInformation/{source_capacity_id}")
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
from uuid import UUID
|
|
3
|
+
import pandas as pd
|
|
4
|
+
from sempy_labs._helper_functions import (
|
|
5
|
+
_create_dataframe,
|
|
6
|
+
_base_api,
|
|
7
|
+
resolve_workspace_name_and_id,
|
|
8
|
+
_update_dataframe_datatypes,
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def list_dashboards(workspace: Optional[str | UUID] = None) -> pd.DataFrame:
|
|
13
|
+
"""
|
|
14
|
+
Shows a list of the dashboards within a workspace.
|
|
15
|
+
|
|
16
|
+
Parameters
|
|
17
|
+
----------
|
|
18
|
+
workspace : str | uuid.UUID, default=None
|
|
19
|
+
The Fabric workspace name or ID.
|
|
20
|
+
Defaults to None which resolves to the workspace of the attached lakehouse
|
|
21
|
+
or if no lakehouse attached, resolves to the workspace of the notebook.
|
|
22
|
+
|
|
23
|
+
Returns
|
|
24
|
+
-------
|
|
25
|
+
pandas.DataFrame
|
|
26
|
+
A pandas dataframe showing the dashboards within a workspace.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
columns = {
|
|
30
|
+
"Dashboard ID": "string",
|
|
31
|
+
"Dashboard Name": "string",
|
|
32
|
+
"Read Only": "bool",
|
|
33
|
+
"Web URL": "string",
|
|
34
|
+
"Embed URL": "string",
|
|
35
|
+
"Data Classification": "string",
|
|
36
|
+
"Users": "string",
|
|
37
|
+
"Subscriptions": "string",
|
|
38
|
+
}
|
|
39
|
+
df = _create_dataframe(columns=columns)
|
|
40
|
+
|
|
41
|
+
(workspace_name, workspace_id) = resolve_workspace_name_and_id(workspace)
|
|
42
|
+
|
|
43
|
+
response = _base_api(request=f"/v1.0/myorg/groups/{workspace_id}/dashboards")
|
|
44
|
+
|
|
45
|
+
for v in response.json().get("value", []):
|
|
46
|
+
new_data = {
|
|
47
|
+
"Dashboard ID": v.get("id"),
|
|
48
|
+
"Dashboard Name": v.get("displayName"),
|
|
49
|
+
"Read Only": v.get("isReadOnly"),
|
|
50
|
+
"Web URL": v.get("webUrl"),
|
|
51
|
+
"Embed URL": v.get("embedUrl"),
|
|
52
|
+
"Data Classification": v.get("dataClassification"),
|
|
53
|
+
"Users": v.get("users"),
|
|
54
|
+
"Subscriptions": v.get("subscriptions"),
|
|
55
|
+
}
|
|
56
|
+
df = pd.concat([df, pd.DataFrame(new_data, index=[0])], ignore_index=True)
|
|
57
|
+
|
|
58
|
+
_update_dataframe_datatypes(dataframe=df, column_map=columns)
|
|
59
|
+
|
|
60
|
+
return df
|