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

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

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.2.5.tar.gz (10.0 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.2.5-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pulze_renderflow-1.2.5.tar.gz
  • Upload date:
  • Size: 10.0 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.2.5.tar.gz
Algorithm Hash digest
SHA256 4aef5c1ad7edb177e70e05d10d3a5bceb8c83a5ef21a52ea28577073bf095dda
MD5 33567788826a6a351a77ec1ebfd7989b
BLAKE2b-256 157c1ea4a668a728203b3dfa9e8085e647c1c15045f99994e39ff27c90ea44d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pulze_renderflow-1.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ef5b097d3ba5a787dde544610eb47fa9809715cd1169e1825ee3568b5d9aa747
MD5 cae6bcb4999e26831112b305244922c7
BLAKE2b-256 b54242b03c6b5548ebd8acb355e6f785ace1ea1957206e1dfaa7183d166f2cf9

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