Skip to main content

airbite

airbite brings the power of Airbyte to Python with an intuitive, user-friendly API. It builds upon the PyAirbyte project and adds additional features.

With only a few lines of code, airbite can:

  • Read data from sources in either full refresh or incremental refresh mode (the source must support incremental refresh)
  • Write to destinations with multiple write strategies: append, merge, or replace

Supported Connectors

  • Number of sources: 455
  • Number of destinations: 23 More are being added regularly

The "friendly API" is heavily typed, so you don't need to refer to any connector documentation separately while coding. This also helps AI tools (like GitHub Copilot) to write correct code, saving you hours of reading.

Installation

To install airbite, use pip: pip install airbite

Usage

There are a total of 5 steps you need to perform for moving data between sources and destiantions (after import airbite):

  1. Create source config
  2. Create source
  3. Create destination config (optional)
  4. Create destination (optional)
  5. Write data into destination:
    • destination.write(source, ...)
  6. (Optional) You can also just read the data from the source for exploration:
    • source.read_to_pandas(...)
    • source.read_to_iterator(...)

In addition there are a few utility functions provided:

  1. list_connectors(kind: Literal["any", "source", "destination"] = 'any', filter_text: str = None)
  2. get_env_variable(secret_name: str): use this to inject variables from your .env files

Below is a basic example of moving data from source to destination. For more examples head to the examples dir.

import airbite

# step #1
s_config = airbite.SourceFileConfig(    
    dataset_name="data_a",
    format="csv",
    provider=SourceFile.LocalFilesystemLimited(storage="local"), 
    url="./data/a.csv",
)
# step #2
source = airbite.create_source(s_config)
# step #3
d_config = airbite.DestinationDuckDBConfig(db_path=".cache/my_cache")
# step #4
destination = airbite.create_destination(d_config)
# step #5
airbite.destination.write(source=source, streams= '*')

Build and Publish

# this step MUST be executed once in local dev environment:
# install the pre-commit and post-commit scripts that will help generate the jsonschema, models and create "connector_configs/__init__.py"
./install-pre-n-post-commit-hook.sh


# to generate model locally:
python airbite/model_generator.py

# build locally:
# rm -rf airbite/airbite.egg-info airbite.egg-info dist build && python -m build -w
rm -rf airbite/airbite.egg-info airbite.egg-info dist build && uv build --wheel

# publish to test pypi
uv publish --publish-ur 'https://test.pypi.org/legacy/' dist/*.whl

# publish to pypi
uv publish --publish-ur 'https://upload.pypi.org/legacy/' dist/*.whl

# run tests
python -m unittest tests/*.py


# tagging and release (not used)
git tag -a vx.x.x -m ''
git push origin tag v0.1.0


# create a release
git fetch --tags origin
git describe --tags --abbrev=0
gh release create v0.1.8 --target feat-workflow --generate-notes
git fetch --tags origin

License

This project is licensed under the MIT License. See the LICENSE file for details

Metadata

Release files for airbite 0.1.17

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for airbite 0.1.17
File Actions
airbite-0.1.17-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details for airbite-0.1.17-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
airbite-0.1.17-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for airbite-0.1.17-cp311-cp311-macosx_11_0_arm64.whl
airbite-0.1.17-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details for airbite-0.1.17-cp311-cp311-macosx_10_9_x86_64.whl
airbite-0.1.17-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details for airbite-0.1.17-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
airbite-0.1.17-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for airbite-0.1.17-cp310-cp310-macosx_11_0_arm64.whl
airbite-0.1.17-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details for airbite-0.1.17-cp310-cp310-macosx_10_9_x86_64.whl

Total release size: 3.9 MB

Release files / airbite-0.1.17-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL airbite-0.1.17-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.4 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
fb80fa6ffb5e6d299987277ee97615c701bc04b48eb54dbcd14daba65a7dd3ef
BLAKE2b-256 checksum
How to use checksums
8a351481d9565057972ae9117883be9360249b7faa137bb22e98dfa528d9e2be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Release files / airbite-0.1.17-cp311-cp311-macosx_11_0_arm64.whl

Download URL airbite-0.1.17-cp311-cp311-macosx_11_0_arm64.whl
Size 283.2 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
960ad50c452455fb9bad246b1b48ff1ef4191e6442cbf3bf60eb9b6c65e1b8e4
BLAKE2b-256 checksum
How to use checksums
b03e7e9a0c8649ee91ed563226c5d5223b8a4dc398b5d662bf620fdedc58ee79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Release files / airbite-0.1.17-cp311-cp311-macosx_10_9_x86_64.whl

Download URL airbite-0.1.17-cp311-cp311-macosx_10_9_x86_64.whl
Size 295.2 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
2d4cbf49ff8fe793fff2c6c47e6fb6c9f63c9ca02d11e3e06cd6a8705b1aa4b7
BLAKE2b-256 checksum
How to use checksums
9a33012cb8975886b96f07ecc758d595c065ff7bd8e1a4599840567f60dcc382
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Release files / airbite-0.1.17-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL airbite-0.1.17-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.3 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d19b2bfdfabefaefa2551c8af8490e8d499e6ba5fd0f96fcb6e3d891d1c674bc
BLAKE2b-256 checksum
How to use checksums
03f3d944c0b2466c3efd066d1aa0508fd4de894cb499249e27ae799be1c2d2c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Release files / airbite-0.1.17-cp310-cp310-macosx_11_0_arm64.whl

Download URL airbite-0.1.17-cp310-cp310-macosx_11_0_arm64.whl
Size 284.7 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c3c7d8e636133ea0e846dcef75ec3da2ae09ca87d65a8bece740303708c47917
BLAKE2b-256 checksum
How to use checksums
bfe99093a55112705d2132918a9f44b1d38f96dae4b8e14f48719d6882d68cef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Release files / airbite-0.1.17-cp310-cp310-macosx_10_9_x86_64.whl

Download URL airbite-0.1.17-cp310-cp310-macosx_10_9_x86_64.whl
Size 296.6 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
6fb2a61c2aa9b9dae3a3b6bbd1715252181d0147cf0fc35a1c5d328f746c4c3a
BLAKE2b-256 checksum
How to use checksums
eb6aab32e26d3a7f5575a0469c8402b557176006879d73c53882fe11fad86662
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Security for airbite 0.1.17

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page