Name | dlt JSON |
Version |
1.13.0
JSON |
| download |
home_page | None |
Summary | dlt is an open-source python-first scalable data loading library that does not require any backend to run. |
upload_time | 2025-07-08 19:42:22 |
maintainer | None |
docs_url | None |
author | None |
requires_python | <3.14,>=3.9.2 |
license | None |
keywords |
etl
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
<h1 align="center">
<strong>data load tool (dlt) — the open-source Python library for data loading</strong>
</h1>
<p align="center">
Be it a Google Colab notebook, AWS Lambda function, an Airflow DAG, your local laptop,<br/>or a GPT-4 assisted development playground—<strong>dlt</strong> can be dropped in anywhere.
</p>
<h3 align="center">
🚀 Join our thriving community of likeminded developers and build the future together!
</h3>
<div align="center">
<a target="_blank" href="https://dlthub.com/community" style="background:none">
<img src="https://img.shields.io/badge/slack-join-dlt.svg?labelColor=191937&color=6F6FF7&logo=slack" style="width: 260px;" />
</a>
</div>
<div align="center">
<a target="_blank" href="https://pypi.org/project/dlt/" style="background:none">
<img src="https://img.shields.io/pypi/v/dlt?labelColor=191937&color=6F6FF7">
</a>
<a target="_blank" href="https://pypi.org/project/dlt/" style="background:none">
<img src="https://img.shields.io/pypi/pyversions/dlt?labelColor=191937&color=6F6FF7">
</a>
<a target="_blank" href="https://pypi.org/project/dlt/" style="background:none">
<img src="https://img.shields.io/pypi/dm/dlt?labelColor=191937&color=6F6FF7">
</a>
</div>
## Installation
dlt supports Python 3.9 to Python 3.13.
```sh
pip install dlt
```
More options: [Install via Conda or Pixi](https://dlthub.com/docs/reference/installation#31-install-dlt-via-pixi-or-conda)
## Quick Start
Load chess game data from chess.com API and save it in DuckDB:
```python
import dlt
from dlt.sources.helpers import requests
# Create a dlt pipeline that will load
# chess player data to the DuckDB destination
pipeline = dlt.pipeline(
pipeline_name='chess_pipeline',
destination='duckdb',
dataset_name='player_data'
)
# Grab some player data from Chess.com API
data = []
for player in ['magnuscarlsen', 'rpragchess']:
response = requests.get(f'https://api.chess.com/pub/player/{player}')
response.raise_for_status()
data.append(response.json())
# Extract, normalize, and load the data
pipeline.run(data, table_name='player')
```
Try it out in our **[Colab Demo](https://colab.research.google.com/drive/1NfSB1DpwbbHX9_t5vlalBTf13utwpMGx?usp=sharing)**
## Features
- **Automatic Schema:** Data structure inspection and schema creation for the destination.
- **Data Normalization:** Consistent and verified data before loading.
- **Seamless Integration:** Colab, AWS Lambda, Airflow, and local environments.
- **Scalable:** Adapts to growing data needs in production.
- **Easy Maintenance:** Clear data pipeline structure for updates.
- **Rapid Exploration:** Quickly explore and gain insights from new data sources.
- **Versatile Usage:** Suitable for ad-hoc exploration to advanced loading infrastructures.
- **Start in Seconds with CLI:** Powerful CLI for managing, deploying and inspecting local pipelines.
- **Incremental Loading:** Load only new or changed data and avoid loading old records again.
- **Open Source:** Free and Apache 2.0 Licensed.
## Ready to use Sources and Destinations
Explore ready to use sources (e.g. Google Sheets) in the [Verified Sources docs](https://dlthub.com/docs/dlt-ecosystem/verified-sources) and supported destinations (e.g. DuckDB) in the [Destinations docs](https://dlthub.com/docs/dlt-ecosystem/destinations).
## Documentation
For detailed usage and configuration, please refer to the [official documentation](https://dlthub.com/docs).
## Examples
You can find examples for various use cases in the [examples](docs/examples) folder.
## Adding as dependency
`dlt` follows the semantic versioning with the [`MAJOR.MINOR.PATCH`](https://peps.python.org/pep-0440/#semantic-versioning) pattern.
* `major` means breaking changes and removed deprecations
* `minor` new features, sometimes automatic migrations
* `patch` bug fixes
We suggest that you allow only `patch` level updates automatically:
* Using the [Compatible Release Specifier](https://packaging.python.org/en/latest/specifications/version-specifiers/#compatible-release). For example **dlt~=1.0** allows only versions **>=1.0** and less than **<1.1**
* Poetry [caret requirements](https://python-poetry.org/docs/dependency-specification/). For example **^1.0** allows only versions **>=1.0** to **<1.0**
## Get Involved
The dlt project is quickly growing, and we're excited to have you join our community! Here's how you can get involved:
- **Connect with the Community**: Join other dlt users and contributors on our [Slack](https://dlthub.com/community)
- **Report issues and suggest features**: Please use the [GitHub Issues](https://github.com/dlt-hub/dlt/issues) to report bugs or suggest new features. Before creating a new issue, make sure to search the tracker for possible duplicates and add a comment if you find one.
- **Track progress of our work and our plans**: Please check out our [public Github project](https://github.com/orgs/dlt-hub/projects/9)
- **Improve documentation**: Help us enhance the dlt documentation.
## Contribute code
Please read [CONTRIBUTING](CONTRIBUTING.md) before you make a PR.
- 📣 **New destinations are unlikely to be merged** due to high maintenance cost (but we are happy to improve SQLAlchemy destination to handle more dialects)
- Significant changes require tests and docs and in many cases writing tests will be more laborious than writing code
- Bugfixes and improvements are welcome! You'll get help with writing tests and docs + a decent review.
## License
`dlt` is released under the [Apache 2.0 License](LICENSE.txt).
Raw data
{
"_id": null,
"home_page": null,
"name": "dlt",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.14,>=3.9.2",
"maintainer_email": "Marcin Rudolf <marcin@dlthub.com>, Adrian Brudaru <adrian@dlthub.com>, Anton Burnashev <anton@dlthub.com>, David Scharf <david@dlthub.com>",
"keywords": "etl",
"author": null,
"author_email": "\"dltHub Inc.\" <services@dlthub.com>",
"download_url": "https://files.pythonhosted.org/packages/c8/4b/b0e2a7f2b0c3c0fe75892a50803e284f05c65cd6db834d752986c500facb/dlt-1.13.0.tar.gz",
"platform": null,
"description": "<h1 align=\"center\">\n <strong>data load tool (dlt) \u2014 the open-source Python library for data loading</strong>\n</h1>\n<p align=\"center\">\nBe it a Google Colab notebook, AWS Lambda function, an Airflow DAG, your local laptop,<br/>or a GPT-4 assisted development playground\u2014<strong>dlt</strong> can be dropped in anywhere.\n</p>\n\n\n<h3 align=\"center\">\n\n\ud83d\ude80 Join our thriving community of likeminded developers and build the future together!\n\n</h3>\n\n<div align=\"center\">\n <a target=\"_blank\" href=\"https://dlthub.com/community\" style=\"background:none\">\n <img src=\"https://img.shields.io/badge/slack-join-dlt.svg?labelColor=191937&color=6F6FF7&logo=slack\" style=\"width: 260px;\" />\n </a>\n</div>\n<div align=\"center\">\n <a target=\"_blank\" href=\"https://pypi.org/project/dlt/\" style=\"background:none\">\n <img src=\"https://img.shields.io/pypi/v/dlt?labelColor=191937&color=6F6FF7\">\n </a>\n <a target=\"_blank\" href=\"https://pypi.org/project/dlt/\" style=\"background:none\">\n <img src=\"https://img.shields.io/pypi/pyversions/dlt?labelColor=191937&color=6F6FF7\">\n </a>\n <a target=\"_blank\" href=\"https://pypi.org/project/dlt/\" style=\"background:none\">\n <img src=\"https://img.shields.io/pypi/dm/dlt?labelColor=191937&color=6F6FF7\">\n </a>\n</div>\n\n## Installation\n\ndlt supports Python 3.9 to Python 3.13.\n\n```sh\npip install dlt\n```\n\nMore options: [Install via Conda or Pixi](https://dlthub.com/docs/reference/installation#31-install-dlt-via-pixi-or-conda)\n\n\n## Quick Start\n\nLoad chess game data from chess.com API and save it in DuckDB:\n\n```python\nimport dlt\nfrom dlt.sources.helpers import requests\n\n# Create a dlt pipeline that will load\n# chess player data to the DuckDB destination\npipeline = dlt.pipeline(\n pipeline_name='chess_pipeline',\n destination='duckdb',\n dataset_name='player_data'\n)\n\n# Grab some player data from Chess.com API\ndata = []\nfor player in ['magnuscarlsen', 'rpragchess']:\n response = requests.get(f'https://api.chess.com/pub/player/{player}')\n response.raise_for_status()\n data.append(response.json())\n\n# Extract, normalize, and load the data\npipeline.run(data, table_name='player')\n```\n\n\nTry it out in our **[Colab Demo](https://colab.research.google.com/drive/1NfSB1DpwbbHX9_t5vlalBTf13utwpMGx?usp=sharing)**\n\n## Features\n\n- **Automatic Schema:** Data structure inspection and schema creation for the destination.\n- **Data Normalization:** Consistent and verified data before loading.\n- **Seamless Integration:** Colab, AWS Lambda, Airflow, and local environments.\n- **Scalable:** Adapts to growing data needs in production.\n- **Easy Maintenance:** Clear data pipeline structure for updates.\n- **Rapid Exploration:** Quickly explore and gain insights from new data sources.\n- **Versatile Usage:** Suitable for ad-hoc exploration to advanced loading infrastructures.\n- **Start in Seconds with CLI:** Powerful CLI for managing, deploying and inspecting local pipelines.\n- **Incremental Loading:** Load only new or changed data and avoid loading old records again.\n- **Open Source:** Free and Apache 2.0 Licensed.\n\n## Ready to use Sources and Destinations\n\nExplore ready to use sources (e.g. Google Sheets) in the [Verified Sources docs](https://dlthub.com/docs/dlt-ecosystem/verified-sources) and supported destinations (e.g. DuckDB) in the [Destinations docs](https://dlthub.com/docs/dlt-ecosystem/destinations).\n\n## Documentation\n\nFor detailed usage and configuration, please refer to the [official documentation](https://dlthub.com/docs).\n\n## Examples\n\nYou can find examples for various use cases in the [examples](docs/examples) folder.\n\n## Adding as dependency\n\n`dlt` follows the semantic versioning with the [`MAJOR.MINOR.PATCH`](https://peps.python.org/pep-0440/#semantic-versioning) pattern.\n\n* `major` means breaking changes and removed deprecations\n* `minor` new features, sometimes automatic migrations\n* `patch` bug fixes\n\nWe suggest that you allow only `patch` level updates automatically:\n* Using the [Compatible Release Specifier](https://packaging.python.org/en/latest/specifications/version-specifiers/#compatible-release). For example **dlt~=1.0** allows only versions **>=1.0** and less than **<1.1**\n* Poetry [caret requirements](https://python-poetry.org/docs/dependency-specification/). For example **^1.0** allows only versions **>=1.0** to **<1.0**\n\n## Get Involved\n\nThe dlt project is quickly growing, and we're excited to have you join our community! Here's how you can get involved:\n\n- **Connect with the Community**: Join other dlt users and contributors on our [Slack](https://dlthub.com/community)\n- **Report issues and suggest features**: Please use the [GitHub Issues](https://github.com/dlt-hub/dlt/issues) to report bugs or suggest new features. Before creating a new issue, make sure to search the tracker for possible duplicates and add a comment if you find one.\n- **Track progress of our work and our plans**: Please check out our [public Github project](https://github.com/orgs/dlt-hub/projects/9)\n- **Improve documentation**: Help us enhance the dlt documentation.\n\n## Contribute code\nPlease read [CONTRIBUTING](CONTRIBUTING.md) before you make a PR.\n\n- \ud83d\udce3 **New destinations are unlikely to be merged** due to high maintenance cost (but we are happy to improve SQLAlchemy destination to handle more dialects)\n- Significant changes require tests and docs and in many cases writing tests will be more laborious than writing code\n- Bugfixes and improvements are welcome! You'll get help with writing tests and docs + a decent review.\n\n## License\n\n`dlt` is released under the [Apache 2.0 License](LICENSE.txt).\n",
"bugtrack_url": null,
"license": null,
"summary": "dlt is an open-source python-first scalable data loading library that does not require any backend to run.",
"version": "1.13.0",
"project_urls": {
"Homepage": "https://github.com/dlt-hub",
"Repository": "https://github.com/dlt-hub/dlt"
},
"split_keywords": [
"etl"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "71f4969640b5f866620f6f5851c7a46053393c9580476464c0f8f641185aaaa9",
"md5": "59416de4c26d8942420934c49c750da9",
"sha256": "4c15dfa57c2d983eee2959b47ab07eee0ead5d2556c5721e4cc8d02bbbcee9e8"
},
"downloads": -1,
"filename": "dlt-1.13.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "59416de4c26d8942420934c49c750da9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.14,>=3.9.2",
"size": 986044,
"upload_time": "2025-07-08T19:42:20",
"upload_time_iso_8601": "2025-07-08T19:42:20.539052Z",
"url": "https://files.pythonhosted.org/packages/71/f4/969640b5f866620f6f5851c7a46053393c9580476464c0f8f641185aaaa9/dlt-1.13.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c84bb0e2a7f2b0c3c0fe75892a50803e284f05c65cd6db834d752986c500facb",
"md5": "3c2da4e32d584e75419aed0da0034a2a",
"sha256": "485d40e806daa707f2cdd5e2045aa467ca40fd380f046e882826af4bb76d2ba0"
},
"downloads": -1,
"filename": "dlt-1.13.0.tar.gz",
"has_sig": false,
"md5_digest": "3c2da4e32d584e75419aed0da0034a2a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.14,>=3.9.2",
"size": 770236,
"upload_time": "2025-07-08T19:42:22",
"upload_time_iso_8601": "2025-07-08T19:42:22.553297Z",
"url": "https://files.pythonhosted.org/packages/c8/4b/b0e2a7f2b0c3c0fe75892a50803e284f05c65cd6db834d752986c500facb/dlt-1.13.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-08 19:42:22",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dlt-hub",
"github_project": "dlt",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "dlt"
}