Python SDK for ZephFlow data processing pipelines
Project description
ZephFlow Python SDK
Python SDK for building and running ZephFlow data processing pipelines. ZephFlow provides a powerful, intuitive API for stream processing, data transformation, and event-driven architectures.
Features
- Simple, fluent API for building data processing pipelines
- Powerful filtering using JSONPath expressions
- Data transformation with the eval expression language
- Flow composition - merge and combine multiple flows
- Error handling with assertions and error tracking
- Multiple sink options for outputting processed data
- Java-based engine for high performance processing
Documentation
For comprehensive documentation, tutorials, and API reference, visit: https://docs.fleak.ai/zephflow
Prerequisites
- Python 3.8 or higher
- Java 17 or higher (required for the processing engine)
Installation
Install ZephFlow using pip:
pip install zephflow
Quick Start
Here's a simple example to get you started with ZephFlow:
import zephflow
# Create a flow that filters and transforms events
flow = (
zephflow.ZephFlow.start_flow()
.filter("$.value > 10") # Keep only events with value > 10
.eval("""
dict(
id=$.id,
doubled_value=$.value * 2,
category=case(
$.value < 20 => 'medium',
_ => 'high'
)
)
""")
.stdout_sink("JSON_OBJECT") # Output to console
)
# Process some events
events = [
{"id": 1, "value": 5}, # Will be filtered out
{"id": 2, "value": 15}, # Will be processed
{"id": 3, "value": 25} # Will be processed
]
result = flow.process(events)
print(f"Processed {result.getOutputEvents().size()} events")
If you already have a workflow file:
import zephflow
zephflow.ZephFlow.execute_dag("my_dag.yaml")
Troubleshooting
macOS SSL Certificate Issue
If you're on macOS and encounter an error like:
This indicates that Python cannot verify SSL certificates due to missing system root certificates.
Solution
Run the certificate installation script that comes with your Python installation:
/Applications/Python\ 3.x/Install\ Certificates.command
Replace 3.x with your installed version (e.g., 3.10). This installs the necessary certificates so Python can verify HTTPS downloads.
Core Concepts
Filtering
Use JSONPath expressions to filter events:
flow = (
zephflow.ZephFlow.start_flow()
.filter("$.priority == 'high' && $.value >= 100")
)
Transformation
Transform data using the eval expression language:
flow = (
zephflow.ZephFlow.start_flow()
.eval("""
dict(
timestamp=now(),
original_id=$.id,
processed_value=$.value * 1.1,
status='processed'
)
""")
)
Merging Flows
Combine multiple flows for complex processing logic:
high_priority = zephflow.ZephFlow.start_flow().filter("$.priority == 'high'")
large_value = zephflow.ZephFlow.start_flow().filter("$.value >= 1000")
merged = zephflow.ZephFlow.merge(high_priority, large_value)
Error Handling
Add assertions to validate data and handle errors:
flow = (
zephflow.ZephFlow.start_flow()
.assertion("$.required_field != null")
.assertion("$.value >= 0")
.eval("dict(id=$.id, validated_value=$.value)")
)
result = flow.process(events, include_error_by_step=True)
if result.getErrorByStep().size() > 0:
print("Some events failed validation")
Examples
For more detailed examples, check out Quick Start Example - Basic filtering and transformation
Environment Variables
ZEPHFLOW_MAIN_JAR- Path to a custom ZephFlow JAR file (optional)ZEPHFLOW_JAR_DIR- Directory for storing downloaded JAR files (optional)
Support
- Documentation: https://docs.fleak.ai/zephflow
- Discussions: Slack
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
About Fleak
ZephFlow is developed and maintained by Fleak Tech Inc., building the future of data processing and streaming analytics.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zephflow-0.2.3rc3.tar.gz.
File metadata
- Download URL: zephflow-0.2.3rc3.tar.gz
- Upload date:
- Size: 16.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
660593be09ab4855dc05e389279aefbb524204e865d3c4241383c06a4f754615
|
|
| MD5 |
34b58b508c24b474255bbcb6cd362859
|
|
| BLAKE2b-256 |
677478e24ac2540f19bb6cc7277c05c0e9fe341edbb831dc8b0dc8cf46888015
|
File details
Details for the file zephflow-0.2.3rc3-py3-none-any.whl.
File metadata
- Download URL: zephflow-0.2.3rc3-py3-none-any.whl
- Upload date:
- Size: 16.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fce7ce01fdbff7785e9d75c06999bd8ab3028a8c0a16a3a34480c5414e2143e9
|
|
| MD5 |
f4871225d4c90e2b65fcd7755022f4f1
|
|
| BLAKE2b-256 |
f84e646a39195425dc7ca96dad6c367a61d874e6db81760e60d72b57152184fb
|