Official RenderFlow API client for Python
Project description
renderflow
Official Python client for the RenderFlow API.
Installation
pip install pulze-renderflow
Quick Start
from renderflow import RenderFlow
rf = RenderFlow(api_key="your_api_key")
jobs = rf.jobs.list()
print(f"Found {len(jobs)} jobs")
Submitting a Job
from renderflow import RenderFlow, IPublicJobCreate
from renderflow.models import ISoftwareValue, IEngineValue, SoftwareId, EngineId
rf = RenderFlow(api_key="your_api_key")
job = rf.jobs.create(IPublicJobCreate(
name="Exterior Shot",
file="C:/projects/scene.max",
type="3dsmax.render",
host=ISoftwareValue(id=SoftwareId._3dsmax, name="3ds Max", version="2026"),
engine=IEngineValue(id=EngineId.vray, name="V-Ray", version="7.20.04"),
frame="1-100",
resolution="1920x1080",
priority=75,
status="pending"
))
rf.jobs.start(job.id)
Managing Jobs
# Get a specific job
job = rf.jobs.get("job_id")
# Update job settings
rf.jobs.update("job_id", IPublicJobUpdate(
priority=100,
limit=5,
max_batch_size=10
))
# Control jobs
rf.jobs.stop("job_id")
rf.jobs.reset("job_id")
rf.jobs.archive("job_id")
rf.jobs.delete("job_id")
Tasks
# List tasks for a job (paginated)
tasks = rf.tasks.list("job_id", page=1, limit=50)
# Get a specific task
task = rf.tasks.get("task_id")
# Get task logs
logs = rf.tasks.logs("task_id", offset=0, limit=500)
# Get task thumbnail
thumbnail = rf.tasks.thumbnail("task_id")
Nodes
# List all nodes
nodes = rf.nodes.list()
# Get node details
node = rf.nodes.get("node_id")
# Update node status
rf.nodes.update_status("node_id", "suspended")
# Assign to a pool
rf.nodes.update_pool("node_id", "pool_id")
# Get node utilization
util = rf.nodes.utilization("node_id")
# Get benchmark rankings
benchmarks = rf.nodes.benchmarks("vray")
Errors
errors = rf.errors.list()
job_errors = rf.errors.by_job("job_id")
node_errors = rf.errors.by_node("node_id")
Real-time Events
Subscribe to live updates using Server-Sent Events:
# Listen to all job changes
listener = rf.jobs.on(lambda event: print(
event.type, # "insert" | "update" | "delete" | "replace"
event.document, # full job document
event.updated, # changed fields (on update)
event.time # event timestamp
))
# Listen to task events for a specific job
task_listener = rf.tasks.on("job_id", lambda event: print(
f"Task {event.document['_id']}: {event.document['status']}"
))
# Listen to node events
node_listener = rf.nodes.on(lambda event: print(
f"Node {event.document['name']}: {event.document['status']}"
))
# Error handling
listener = rf.jobs.on(
lambda event: print(event),
lambda error: print(f"Connection error: {error}")
)
# Stop listening
listener.close()
# Also works as a context manager
with rf.jobs.on(on_event) as listener:
import time
time.sleep(60)
Service Info
info = rf.info.get()
print(f"RenderFlow {info.version} ({info.node_type})")
Project details
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 pulze_renderflow-1.2.1.tar.gz.
File metadata
- Download URL: pulze_renderflow-1.2.1.tar.gz
- Upload date:
- Size: 9.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5f778bb6b42eed9dc2f464990437fdd9020120f47d8dbd0cc80fe7378332d68
|
|
| MD5 |
f564f7659b3194a67402f3377445afd3
|
|
| BLAKE2b-256 |
df60b30c26d162a9dd7ee1e0e230f4f40841fbcc2093fa92cab81dc86b80d67d
|
File details
Details for the file pulze_renderflow-1.2.1-py3-none-any.whl.
File metadata
- Download URL: pulze_renderflow-1.2.1-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43b2767ebd02e78c93d840ac499b65a403ba5be29b4ca6267f5f3d1cffd34fca
|
|
| MD5 |
4c0950fe26b1c9aa4ae58cd2c9581271
|
|
| BLAKE2b-256 |
46b1e19e2b03a36d861e2e4f562f1b5e8bb477444a890b8bdc227daf00ed58c5
|