Skip to main content

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")

# Stream task logs live (SSE)
stream = rf.tasks.stream_logs("task_id", lambda line: print(line))
# ... later
stream.close()

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")

Pools

pools = rf.pools.list()
pool = rf.pools.get("pool_id")

Users

users = rf.users.list()
user = rf.users.get("user_id")

Errors

errors = rf.errors.list()
job_errors = rf.errors.by_job("job_id")
node_errors = rf.errors.by_node("node_id")

Icons

# Icon bytes for a job type or a software (e.g. write to a file)
job_icon = rf.icons.job("vray")
software_icon = rf.icons.software("software_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})")

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pulze_renderflow-1.3.0.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

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

pulze_renderflow-1.3.0-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file pulze_renderflow-1.3.0.tar.gz.

File metadata

  • Download URL: pulze_renderflow-1.3.0.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.8

File hashes

Hashes for pulze_renderflow-1.3.0.tar.gz
Algorithm Hash digest
SHA256 cc73ca1ccad55ea5629a0ce230708963a1e4ddd65e0d626e9f3bd8cfcdddd0eb
MD5 5cb6dd03ec0e10dd98d9a2601a1dd823
BLAKE2b-256 2a054ad4aa28e5a12950efc61b711762e1f07e0e59aebb2e1762687966e887d7

See more details on using hashes here.

File details

Details for the file pulze_renderflow-1.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pulze_renderflow-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c83ced357ec3c2417d15e4f1c3c60db0ea581707bba7f9c3f1bd1e6c659ade79
MD5 6302b13a9179757248b37bef3744d56c
BLAKE2b-256 f150ffc30f213d947feb7565a319ce6af1b7b3c4067687706d784c6628471f68

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 files

1.2.7

2 files

1.2.5

2 files

1.2.4

2 files

1.2.2

2 files

1.2.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page