Skip to main content

The feldera python client

Project description

Feldera Python SDK

The feldera Python package is the Python client for the Feldera HTTP API.

The Python SDK documentation is available at: https://docs.feldera.com/python

Getting started

Installation

uv pip install feldera

Example usage

The Python client interacts with the API server of the Feldera instance.

# File: example.py
from feldera import FelderaClient, PipelineBuilder, Pipeline

# Instantiate client
client = FelderaClient()  # Default: http://localhost:8080 without authentication
# client = FelderaClient(url="https://localhost:8080", api_key="apikey:...", requests_verify="/path/to/tls.crt")

# (Re)create pipeline
name = "example"
sql = """
CREATE TABLE t1 (i1 INT) WITH ('materialized' = 'true');
CREATE MATERIALIZED VIEW v1 AS SELECT * FROM t1;
"""
print("(Re)creating pipeline...")
pipeline = PipelineBuilder(client, name, sql).create_or_replace()
pipeline.start()
print(f"Pipeline status: {pipeline.status()}")
pipeline.pause()
print(f"Pipeline status: {pipeline.status()}")
pipeline.stop(force=True)

# Find existing pipeline
pipeline = Pipeline.get(name, client)
pipeline.start()
print(f"Pipeline status: {pipeline.status()}")
pipeline.stop(force=True)
pipeline.clear_storage()

Run using:

uv run python example.py

Environment variables

Some default parameter values in the Python SDK can be overridden via environment variables.

Environment variables for FelderaClient(...)

export FELDERA_HOST="https://localhost:8080"  # Overrides default for `url`
export FELDERA_API_KEY="apikey:..."  # Overrides default for `api_key`

# The following together override default for `requests_verify`
# export FELDERA_TLS_INSECURE="false"  # If set to "1", "true" or "yes" (all case-insensitive), disables TLS certificate verification
# export FELDERA_HTTPS_TLS_CERT="/path/to/tls.crt"  # Custom TLS certificate

Environment variables for PipelineBuilder(...)

export FELDERA_RUNTIME_VERSION="..."  # Overrides default for `runtime_version`

Development

Development assumes you have cloned the Feldera code repository.

Installation

cd python
# Optional: create and activate virtual environment if you don't have one
uv venv
source .venv/bin/activate
# Install in editable mode
uv pip install -e .

Formatting

Formatting requires the ruff package: uv pip install ruff

cd python
ruff check
ruff format

Tests

Running the test requires the pytest package: uv pip install pytest

# All tests
cd python
uv run python -m pytest tests/

# Specific tests directory
uv run python -m pytest tests/platform/

# Specific test file
uv run python -m pytest tests/platform/test_pipeline_crud.py

# Specific test
uv run python -m pytest tests/platform/test_pipeline_crud.py::test_pipeline_post

# Tip: add argument -x at the end for it to fail fast
# Tip: add argument -s at the end to show stdout/stderr

For further information about the tests, please see tests/README.md.

Documentation

Building documentation requires the sphinx package: uv pip install sphinx

cd python/docs
sphinx-apidoc -o . ../feldera
make html
make clean  # Cleanup afterwards

Installation from GitHub

Latest main branch:

uv pip install git+https://github.com/feldera/feldera#subdirectory=python

Different branch (replace BRANCH_NAME):

uv pip install git+https://github.com/feldera/feldera@BRANCH_NAME#subdirectory=python

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

feldera-0.288.0.tar.gz (47.9 kB view details)

Uploaded Source

Built Distribution

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

feldera-0.288.0-py3-none-any.whl (53.4 kB view details)

Uploaded Python 3

File details

Details for the file feldera-0.288.0.tar.gz.

File metadata

  • Download URL: feldera-0.288.0.tar.gz
  • Upload date:
  • Size: 47.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for feldera-0.288.0.tar.gz
Algorithm Hash digest
SHA256 9334a230b6b1897d7571c2ec26aa787d36141169f965ac43de2e998338608637
MD5 a93fdaa5dc70d2f04257db52393ca480
BLAKE2b-256 5dd16306f45d93b5f52bfaf2869e018215f9dae38f9b4581785bbe96a9f19d01

See more details on using hashes here.

Provenance

The following attestation bundles were made for feldera-0.288.0.tar.gz:

Publisher: ci-post-release.yml on feldera/feldera

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file feldera-0.288.0-py3-none-any.whl.

File metadata

  • Download URL: feldera-0.288.0-py3-none-any.whl
  • Upload date:
  • Size: 53.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for feldera-0.288.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dc6f3427065e98c6daf963bf712dbc53cccf2e26af2717e8b1ebc1784c22c8bc
MD5 c53d902a1cabb8f628fb0bdc3bab8246
BLAKE2b-256 1cce6a807460c5cdd5503fa11a850169ee1218cb1e6ce86e1d2b4869d1d48e0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for feldera-0.288.0-py3-none-any.whl:

Publisher: ci-post-release.yml on feldera/feldera

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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