Skip to main content

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

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

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

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.

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