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 refreshorincremental refreshmode (the source must support incremental refresh) - Write to destinations with multiple write strategies:
append,merge, orreplace
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):
- Create source config
- Create source
- Create destination config (optional)
- Create destination (optional)
- Write data into destination:
destination.write(source, ...)
- (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:
list_connectors(kind: Literal["any", "source", "destination"] = 'any', filter_text: str = None)get_env_variable(secret_name: str): use this to inject variables from your.envfiles
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)
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.