PyAirbyte
Project description
PyAirbyte
PyAirbyte brings the power of Airbyte to every Python developer. PyAirbyte provides a set of utilities to use Airbyte connectors in Python.
Getting Started
Watch this Getting Started Loom video or run one of our Quickstart tutorials below to see how you can use PyAirbyte in your python code.
Secrets Management
PyAirbyte can auto-import secrets from the following sources:
- Environment variables.
- Variables defined in a local
.env
("Dotenv") file. - Google Colab secrets.
- Manual entry via
getpass
.
Note: You can also build your own secret manager by subclassing the CustomSecretManager
implementation. For more information, see the airbyte.secrets.CustomSecretManager
class definiton.
Retrieving Secrets
import airbyte as ab
source = ab.get_source("source-github")
source.set_config(
"credentials": {
"personal_access_token": ab.get_secret("GITHUB_PERSONAL_ACCESS_TOKEN"),
}
)
By default, PyAirbyte will search all available secrets sources. The get_secret()
function also accepts an optional sources
argument of specific source names (SecretSourceEnum
) and/or secret manager objects to check.
By default, PyAirbyte will prompt the user for any requested secrets that are not provided via other secret managers. You can disable this prompt by passing allow_prompt=False
to get_secret()
.
For more information, see the airbyte.secrets
module.
Secrets Auto-Discovery
If you have a secret matching an expected name, PyAirbyte will automatically use it. For example, if you have a secret named GITHUB_PERSONAL_ACCESS_TOKEN
, PyAirbyte will automatically use it when configuring the GitHub source.
The naming convention for secrets is as {CONNECTOR_NAME}_{PROPERTY_NAME}
, for instance SNOWFLAKE_PASSWORD
and BIGQUERY_CREDENTIALS_PATH
.
PyAirbyte will also auto-discover secrets for interop with hosted Airbyte: AIRBYTE_CLOUD_API_URL
, AIRBYTE_CLOUD_API_KEY
, etc.
Contributing
To learn how you can contribute to PyAirbyte, please see our PyAirbyte Contributors Guide.
Frequently asked Questions
1. Does PyAirbyte replace Airbyte? No.
2. What is the PyAirbyte cache? Is it a destination? Yes, you can think of it as a built-in destination implementation, but we avoid the word "destination" in our docs to prevent confusion with our certified destinations list here.
3. Does PyAirbyte work with data orchestration frameworks like Airflow, Dagster, and Snowpark, Yes, it should. Please give it a try and report any problems you see. Also, drop us a note if works for you!
4. Can I use PyAirbyte to develop or test when developing Airbyte sources? Yes, you can, but only for Python-based sources.
5. Can I develop traditional ETL pipelines with PyAirbyte? Yes. Just pick the cache type matching the destination - like SnowflakeCache for landing data in Snowflake.
6. Can PyAirbyte import a connector from a local directory that has python project files, or does it have to be pip install Yes, PyAirbyte can use any local install that has a CLI - and will automatically find connectors by name if they are on PATH.
Changelog and Release Notes
For a version history and list of all changes, please see our GitHub Releases page.
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
Built Distribution
File details
Details for the file airbyte-0.15.0.tar.gz
.
File metadata
- Download URL: airbyte-0.15.0.tar.gz
- Upload date:
- Size: 101.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00d4af29d61f87dec53e0b914adbd019c58e8b9a812d66ed83132799790585fb |
|
MD5 | a7b8d2fc1903ccdb158353f9b77aeef9 |
|
BLAKE2b-256 | 7e5cc52f921ab9c156858e56378c09a1a64b56f32e9656e69a842a55cf049801 |
File details
Details for the file airbyte-0.15.0-py3-none-any.whl
.
File metadata
- Download URL: airbyte-0.15.0-py3-none-any.whl
- Upload date:
- Size: 133.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43e2bf0170aa41526a18d0fef33a696b1873879a43ae5c6ea353231692875a67 |
|
MD5 | f56a9dd10e505813c69e5a469de1465f |
|
BLAKE2b-256 | 6df1e4922c3c1cdf6cc94c9fa3f3becdf066bd97f8481797f78111ea1b09fdbc |