Metadata-Version: 2.4
Name: dlt-fabric
Version: 1.28.1.post1
Summary: Maintained fork of dlt with fixes for the Microsoft Fabric Warehouse destination
Project-URL: Homepage, https://github.com/sdebruyn/dlt
Project-URL: Repository, https://github.com/sdebruyn/dlt
Project-URL: Upstream dlt, https://github.com/dlt-hub/dlt
Author-email: Sam Debruyn <sam@debruyn.dev>
Maintainer-email: Sam Debruyn <sam@debruyn.dev>
License-Expression: Apache-2.0
License-File: LICENSE.txt
Keywords: etl
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries
Classifier: Typing :: Typed
Requires-Python: <3.15,>=3.10
Requires-Dist: click>=7.1
Requires-Dist: fsspec>=2022.4.0
Requires-Dist: gitpython>=3.1.29
Requires-Dist: giturlparse>=0.10.0
Requires-Dist: humanize>=4.4.0
Requires-Dist: jsonpath-ng<1.8,>=1.5.3
Requires-Dist: orjson!=3.10.1,!=3.9.11,!=3.9.12,!=3.9.13,!=3.9.14,<4,>=3.6.7; platform_python_implementation != 'PyPy' and sys_platform != 'emscripten'
Requires-Dist: orjson>=3.10.1; platform_python_implementation != 'PyPy' and sys_platform != 'emscripten'
Requires-Dist: orjson>=3.11.0; python_version > '3.13'
Requires-Dist: packaging>=21.1
Requires-Dist: pathvalidate>=2.5.2
Requires-Dist: pendulum>=2.1.2
Requires-Dist: pendulum>=3.0.0; python_version > '3.13'
Requires-Dist: pluggy>=1.3.0
Requires-Dist: pytz>=2022.6
Requires-Dist: pywin32>=306; sys_platform == 'win32'
Requires-Dist: pyyaml>=5.4.1
Requires-Dist: requests>=2.26.0
Requires-Dist: requirements-parser>=0.5.0
Requires-Dist: rich-argparse>=1.6.0
Requires-Dist: semver>=3.0.0
Requires-Dist: setuptools>=65.6.0
Requires-Dist: simplejson>=3.17.5
Requires-Dist: sqlglot>=25.4.0
Requires-Dist: tenacity>=8.0.2
Requires-Dist: tomlkit>=0.11.3
Requires-Dist: typing-extensions>=4.8.0
Requires-Dist: tzdata>=2022.1
Requires-Dist: win-precise-time>=1.4.2; os_name == 'nt' and python_version < '3.13'
Provides-Extra: athena
Requires-Dist: botocore>=1.28; extra == 'athena'
Requires-Dist: pyarrow>=16.0.0; extra == 'athena'
Requires-Dist: pyathena>=2.9.6; extra == 'athena'
Requires-Dist: s3fs>=2022.4.0; extra == 'athena'
Provides-Extra: az
Requires-Dist: adlfs>=2024.7.0; extra == 'az'
Provides-Extra: bigquery
Requires-Dist: db-dtypes>=1.2.0; extra == 'bigquery'
Requires-Dist: gcsfs>=2022.4.0; extra == 'bigquery'
Requires-Dist: google-cloud-bigquery>=2.26.0; extra == 'bigquery'
Requires-Dist: grpcio>=1.50.0; extra == 'bigquery'
Requires-Dist: pyarrow>=16.0.0; extra == 'bigquery'
Provides-Extra: cli
Requires-Dist: cron-descriptor>=1.2.32; extra == 'cli'
Requires-Dist: pip>=23.0.0; extra == 'cli'
Requires-Dist: pipdeptree<2.10,>=2.9.3; extra == 'cli'
Provides-Extra: clickhouse
Requires-Dist: adlfs>=2024.7.0; extra == 'clickhouse'
Requires-Dist: clickhouse-connect>=0.7.7; extra == 'clickhouse'
Requires-Dist: clickhouse-driver>=0.2.7; extra == 'clickhouse'
Requires-Dist: gcsfs>=2022.4.0; extra == 'clickhouse'
Requires-Dist: pyarrow>=16.0.0; extra == 'clickhouse'
Requires-Dist: s3fs>=2022.4.0; extra == 'clickhouse'
Provides-Extra: databricks
Requires-Dist: databricks-sdk>=0.38.0; extra == 'databricks'
Requires-Dist: databricks-sql-connector>=2.9.3; (python_version <= '3.12') and extra == 'databricks'
Requires-Dist: databricks-sql-connector>=3.6.0; (python_version >= '3.13') and extra == 'databricks'
Requires-Dist: databricks-zerobus-ingest-sdk>=1.2.0; ((platform_system == 'Linux' and (platform_machine == 'x86_64' or platform_machine == 'aarch64')) or (platform_system == 'Windows' and (platform_machine == 'AMD64' or platform_machine == 'x86_64'))) and extra == 'databricks'
Provides-Extra: dbml
Requires-Dist: pydbml; extra == 'dbml'
Provides-Extra: deltalake
Requires-Dist: deltalake>=0.25.1; extra == 'deltalake'
Requires-Dist: pyarrow>=16.0.0; extra == 'deltalake'
Provides-Extra: dremio
Requires-Dist: pyarrow>=16.0.0; extra == 'dremio'
Provides-Extra: duckdb
Requires-Dist: duckdb>=0.9; extra == 'duckdb'
Provides-Extra: ducklake
Requires-Dist: duckdb>=1.2.0; extra == 'ducklake'
Requires-Dist: pyarrow>=16.0.0; extra == 'ducklake'
Provides-Extra: fabric
Requires-Dist: adlfs>=2024.7.0; extra == 'fabric'
Requires-Dist: mssql-python!=1.7.0,!=1.7.1,>=1.4.0; extra == 'fabric'
Requires-Dist: pyarrow>=16.0.0; extra == 'fabric'
Provides-Extra: filesystem
Requires-Dist: botocore>=1.28; extra == 'filesystem'
Requires-Dist: s3fs>=2022.4.0; extra == 'filesystem'
Provides-Extra: gcp
Requires-Dist: db-dtypes>=1.2.0; extra == 'gcp'
Requires-Dist: gcsfs>=2022.4.0; extra == 'gcp'
Requires-Dist: google-cloud-bigquery>=2.26.0; extra == 'gcp'
Requires-Dist: grpcio>=1.50.0; extra == 'gcp'
Provides-Extra: gs
Requires-Dist: gcsfs>=2022.4.0; extra == 'gs'
Provides-Extra: hf
Requires-Dist: huggingface-hub>=1.4.1; extra == 'hf'
Requires-Dist: pyarrow>=21.0.0; extra == 'hf'
Provides-Extra: http
Requires-Dist: aiohttp>3.9.0; extra == 'http'
Provides-Extra: hub
Requires-Dist: dlthub-client<0.29,>=0.27.7; extra == 'hub'
Requires-Dist: dlthub<0.29,>=0.27.0; extra == 'hub'
Provides-Extra: lance
Requires-Dist: duckdb>=1.4.3; extra == 'lance'
Requires-Dist: ibis-framework>=12.0.0; extra == 'lance'
Requires-Dist: lancedb>=0.33.0; extra == 'lance'
Requires-Dist: pyarrow>=16.0.0; extra == 'lance'
Requires-Dist: pylance<8,>=6.0.1; extra == 'lance'
Provides-Extra: lancedb
Requires-Dist: duckdb>=1.4.3; extra == 'lancedb'
Requires-Dist: ibis-framework>=12.0.0; extra == 'lancedb'
Requires-Dist: lancedb>=0.22.0; extra == 'lancedb'
Requires-Dist: pyarrow>=16.0.0; extra == 'lancedb'
Provides-Extra: motherduck
Requires-Dist: duckdb>=0.9; extra == 'motherduck'
Requires-Dist: pyarrow>=16.0.0; extra == 'motherduck'
Provides-Extra: mssql
Requires-Dist: mssql-python!=1.7.0,!=1.7.1,>=1.4.0; extra == 'mssql'
Provides-Extra: oracle
Requires-Dist: oracledb>=3.4.1; extra == 'oracle'
Provides-Extra: parquet
Requires-Dist: pyarrow>=16.0.0; extra == 'parquet'
Provides-Extra: polars
Requires-Dist: polars>=1.0.0; extra == 'polars'
Provides-Extra: postgis
Requires-Dist: psycopg2-binary>=2.9.1; extra == 'postgis'
Provides-Extra: postgres
Requires-Dist: psycopg2-binary>=2.9.1; extra == 'postgres'
Provides-Extra: pyiceberg
Requires-Dist: pyarrow>=16.0.0; extra == 'pyiceberg'
Requires-Dist: pyiceberg-core>=0.6.0; extra == 'pyiceberg'
Requires-Dist: pyiceberg>=0.9.1; extra == 'pyiceberg'
Requires-Dist: sqlalchemy>=1.4; extra == 'pyiceberg'
Provides-Extra: qdrant
Requires-Dist: qdrant-client>=1.8; (python_version > '3.13') and extra == 'qdrant'
Requires-Dist: qdrant-client[fastembed]>=1.8; (python_version <= '3.13') and extra == 'qdrant'
Provides-Extra: redshift
Requires-Dist: psycopg2-binary>=2.9.1; extra == 'redshift'
Provides-Extra: s3
Requires-Dist: botocore>=1.28; extra == 's3'
Requires-Dist: s3fs>=2022.4.0; extra == 's3'
Provides-Extra: sftp
Requires-Dist: paramiko<5,>=3.3.0; extra == 'sftp'
Provides-Extra: snowflake
Requires-Dist: snowflake-connector-python>=3.5.0; extra == 'snowflake'
Requires-Dist: snowflake-connector-python>=4.4.0; (python_version >= '3.14') and extra == 'snowflake'
Provides-Extra: sql-database
Requires-Dist: sqlalchemy>=1.4; extra == 'sql-database'
Provides-Extra: sqlalchemy
Requires-Dist: alembic>1.10.0; extra == 'sqlalchemy'
Requires-Dist: sqlalchemy>=1.4; extra == 'sqlalchemy'
Provides-Extra: synapse
Requires-Dist: adlfs>=2024.7.0; extra == 'synapse'
Requires-Dist: mssql-python!=1.7.0,!=1.7.1,>=1.4.0; extra == 'synapse'
Requires-Dist: pyarrow>=16.0.0; extra == 'synapse'
Provides-Extra: weaviate
Requires-Dist: weaviate-client<5.0.0,>=4.0.0; extra == 'weaviate'
Description-Content-Type: text/markdown

# dlt-fabric

`dlt-fabric` is a maintained fork of [dlt](https://github.com/dlt-hub/dlt) with fixes for the Microsoft Fabric Warehouse destination and the related MS SQL family of destinations (mssql, synapse).

dlt's Fabric, mssql, and synapse destinations have open issues around authentication and reliability that are not yet released upstream. This fork carries the fixes on top of each dlt release so they can be used today, while the changes work their way through upstream review.

## What this fork carries

This fork applies four changes on top of the corresponding upstream dlt release:

- [dlt-hub/dlt#4140](https://github.com/dlt-hub/dlt/pull/4140): Microsoft Entra ID authentication for the mssql, synapse, and fabric destinations (service principal, managed identity, Azure CLI, interactive, and device code flows, in addition to plain SQL login).
- [dlt-hub/dlt#4141](https://github.com/dlt-hub/dlt/pull/4141): migration of the mssql, synapse, and fabric destinations from `pyodbc` to the `mssql-python` driver.
- [dlt-hub/dlt#4142](https://github.com/dlt-hub/dlt/pull/4142): a staging-optimized replace strategy for the Fabric destination, including a fix that makes concurrent multi-table-chain loads safe.
- [dlt-hub/dlt#4147](https://github.com/dlt-hub/dlt/pull/4147): support for an injectable pre-fetched `access_token` or an externally constructed `azure_credential` on the mssql, synapse, and fabric credentials, bypassing the usual `authentication` resolution.

These are proposed as pull requests against upstream dlt. Until they are merged and released, this fork is rebased onto each new dlt release to stay current.

## Installation

`dlt-fabric` is a drop-in replacement for `dlt`. Install it instead of the upstream package:

```bash
pip install dlt-fabric
# or
uv add dlt-fabric
```

Then use it exactly as you would use `dlt`:

```python
import dlt
```

Both packages install the same `dlt` import path, so `dlt-fabric` cannot be installed alongside the upstream `dlt` package in the same environment.

## Documentation

This fork does not maintain separate documentation. For everything beyond the fixes listed above, the upstream resources apply directly:

- Documentation and usage: https://dlthub.com/docs
- Upstream project: https://github.com/dlt-hub/dlt
