Skip to main content

dlt is an open-source python-first scalable data loading library that does not require any backend to run.

Project description

data load tool (dlt) — the open-source Python library that automates all your tedious data loading tasks

Be it a Google Colab notebook, AWS Lambda function, an Airflow DAG, your local laptop,
or a GPT-4 assisted development playground—dlt can be dropped in anywhere.

🚀 Join our thriving community of likeminded developers and build the future together!

Installation

dlt supports Python 3.9 through Python 3.14. Note that some optional extras are not yet available for Python 3.14, so support for this version is considered experimental.

pip install dlt

Quick Start

Load chess game data from chess.com API and save it in DuckDB:

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 or directly on our wasm-based playground in our docs.

Features

dlt is an open-source Python library that loads data from various, often messy data sources into well-structured datasets. It provides lightweight Python interfaces to extract, load, inspect, and transform data. dlt and dlt docs are built from the ground up to be used with LLMs: the LLM-native workflow will take your pipeline code to data in a notebook for over 5000 sources.

dlt is designed to be easy to use, flexible, and scalable:

Documentation

For detailed usage and configuration, please refer to the official documentation.

Examples

You can find examples for various use cases in the examples folder, or in the code examples section of our docs page.

Adding as dependency

dlt follows the semantic versioning with the MAJOR.MINOR.PATCH 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. For example dlt~=1.23.0 allows only versions >=1.23.0 and less than <1.24.0

Please also see our release notes for notable changes between versions.

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
  • Report issues and suggest features: Please use the GitHub 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
  • Improve documentation: Help us enhance the dlt documentation.

Contribute code

Please read CONTRIBUTING 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.

Sponsors

Blacksmith

Blacksmith is a drop-in replacement for GitHub-hosted runners that speed up our CI/CD pipelines by 2x and up to 75% cheaper. We're grateful to Blacksmith for sponsoring us with free CI/CD minutes--which helps us keep builds fast and our costs lower.

License

dlt is released under the Apache 2.0 License.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dlt-1.27.2.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dlt-1.27.2-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file dlt-1.27.2.tar.gz.

File metadata

  • Download URL: dlt-1.27.2.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.14 {"installer":{"name":"uv","version":"0.9.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for dlt-1.27.2.tar.gz
Algorithm Hash digest
SHA256 e9cf70883df0d04a1d40e1dea95d34dee29de978a9500d1d434eae881b5d0279
MD5 ee95cd82f61ebd747bc4484f128fa5e0
BLAKE2b-256 da405aab6d1ff64226df39a3e241e31452907e32793e18f87ec99c956ce0ddd0

See more details on using hashes here.

File details

Details for the file dlt-1.27.2-py3-none-any.whl.

File metadata

  • Download URL: dlt-1.27.2-py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.14 {"installer":{"name":"uv","version":"0.9.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for dlt-1.27.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1c54d394864ca2cf1b042a28dafe393f24afbd60653edffc20dc6b77066cab2a
MD5 93cae75a13ff47d6a08b7cab739fbc5b
BLAKE2b-256 e869d30f79f9fc1f08268c71c4a17f150429f4d00833f18f51059250c02ee03b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page