Skip to main content

airbyte-lib

airbyte-lib is a library that allows to run Airbyte syncs embedded into any Python application, without the need to run Airbyte server.

Development

  • Make sure Poetry is installed.
  • Run poetry install
  • For examples, check out the examples folder. They can be run via poetry run python examples/<example file>
  • Unit tests and type checks can be run via poetry run pytest

Release

  • In your PR:
    • Bump the version in pyproject.toml
    • Add a changelog entry to the table below
  • Once the PR is merged, go to Github and trigger the Publish AirbyteLib Manually workflow. This will publish the new version to PyPI.

Secrets Management

AirbyteLib can auto-import secrets from the following sources:

  1. Environment variables.
  2. Google Colab secrets.
  3. Manual entry via getpass.

Note: Additional secret store options may be supported in the future. More info here.

Retrieving Secrets

from airbyte_lib import get_secret, SecretSource

source = get_connection("source-github")
source.set_config(
   "credentials": {
      "personal_access_token": get_secret("GITHUB_PERSONAL_ACCESS_TOKEN"),
   }
)

The get_secret() function accepts an optional source argument of enum type SecretSource. If omitted or set to SecretSource.ANY, AirbyteLib will search all available secrets sources. If source is set to a specific source, then only that source will be checked. If a list of SecretSource entries is passed, then the sources will be checked using the provided ordering.

By default, AirbyteLib will prompt the user for any requested secrets that are not provided via other secret managers. You can disable this prompt by passing prompt=False to get_secret().

Versioning

Versioning follows Semantic Versioning. For new features, bump the minor version. For bug fixes, bump the patch version. For pre-releases, append dev.N to the version. For example, 0.1.0dev.1 is the first pre-release of the 0.1.0 version.

Documentation

Regular documentation lives in the /docs folder. Based on the doc strings of public methods, we generate API documentation using pdoc. To generate the documentation, run poetry run generate-docs. The documentation will be generated in the docs/generate folder. This needs to be done manually when changing the public interface of the library.

A unit test validates the documentation is up to date.

Connector compatibility

To make a connector compatible with airbyte-lib, the following requirements must be met:

  • The connector must be a Python package, with a pyproject.toml or a setup.py file.
  • In the package, there must be a run.py file that contains a run method. This method should read arguments from the command line, and run the connector with them, outputting messages to stdout.
  • The pyproject.toml or setup.py file must specify a command line entry point for the run method called source-<connector name>. This is usually done by adding a console_scripts section to the pyproject.toml file, or a entry_points section to the setup.py file. For example:
[tool.poetry.scripts]
source-my-connector = "my_connector.run:run"
setup(
    ...
    entry_points={
        'console_scripts': [
            'source-my-connector = my_connector.run:run',
        ],
    },
    ...
)

To publish a connector to PyPI, specify the pypi section in the metadata.yaml file. For example:

data:
 # ...
 remoteRegistries:
   pypi:
     enabled: true
     packageName: "airbyte-source-my-connector"

Validating source connectors

To validate a source connector for compliance, the airbyte-lib-validate-source script can be used. It can be used like this:

airbyte-lib-validate-source —connector-dir . -—sample-config secrets/config.json

The script will install the python package in the provided directory, and run the connector against the provided config. The config should be a valid JSON file, with the same structure as the one that would be provided to the connector in Airbyte. The script will exit with a non-zero exit code if the connector fails to run.

For a more lightweight check, the --validate-install-only flag can be used. This will only check that the connector can be installed and returns a spec, no sample config required.

Changelog

Version PR Description
0.1.0 #35184 Beta Release 0.1.0
0.1.0dev.2 #34111 Initial publish - add publish workflow

Metadata

Release files for airbyte-lib 0.1.0

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

Source distribution (sdist)

Source distribution for airbyte-lib 0.1.0
File Size Uploaded
airbyte_lib-0.1.0.tar.gz 47.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for airbyte-lib 0.1.0
File Interpreter ABI Platform
airbyte_lib-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 108.6 kB

Release files / airbyte_lib-0.1.0.tar.gz

Download URL airbyte_lib-0.1.0.tar.gz
Size 47.9 kB
Tags Source
SHA-256 checksum
How to use checksums
25535fed4e2dadfaf350dc6345b923e7d6551b693579ca7f8888a218fc2f0031
BLAKE2b-256 checksum
How to use checksums
6039c337d510c8df129fa6680f9f967bf3d18029d6ed73447f2ff44f20b8fcc4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.7.1 CPython/3.10.13 Linux/5.10.205-195.807.amzn2.x86_64

Release files / airbyte_lib-0.1.0-py3-none-any.whl

Download URL airbyte_lib-0.1.0-py3-none-any.whl
Size 60.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
02b8918556a4f49461dcc652d012b4a45e662d475b0e90d8daac5772f00adc02
BLAKE2b-256 checksum
How to use checksums
1ed9b68a45bceb9ff1717e3b279058950dfeb6d58dda9445213196835933146a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.7.1 CPython/3.10.13 Linux/5.10.205-195.807.amzn2.x86_64

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

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