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.290.0.tar.gz (48.0 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.290.0-py3-none-any.whl (53.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for feldera-0.290.0.tar.gz
Algorithm Hash digest
SHA256 9280df5293e07921adf058ee3f1f0b544a75b10d0c6e3defc3f5813133f5e9b2
MD5 0ecedee65f04778787b88a7236e8dc95
BLAKE2b-256 a9120587493504b41047a83ed9e83ee6750893e3a939fd225c7a1eb33b25b017

See more details on using hashes here.

Provenance

The following attestation bundles were made for feldera-0.290.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.290.0-py3-none-any.whl.

File metadata

  • Download URL: feldera-0.290.0-py3-none-any.whl
  • Upload date:
  • Size: 53.5 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.290.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dc7a1a9f8e977fe10fe64a6899f3d245d205fc9048f2a6f18a821bec1cecada8
MD5 713ce879f1945813026c1f3c9c265ed0
BLAKE2b-256 68bf0792d1ff1940a288abe742a1d3d6a79731f3df675a47ae41343024a5d408

See more details on using hashes here.

Provenance

The following attestation bundles were made for feldera-0.290.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