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

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

Uploaded Python 3

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

Hashes for pulze_renderflow-1.2.1.tar.gz
Algorithm Hash digest
SHA256 e5f778bb6b42eed9dc2f464990437fdd9020120f47d8dbd0cc80fe7378332d68
MD5 f564f7659b3194a67402f3377445afd3
BLAKE2b-256 df60b30c26d162a9dd7ee1e0e230f4f40841fbcc2093fa92cab81dc86b80d67d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pulze_renderflow-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 43b2767ebd02e78c93d840ac499b65a403ba5be29b4ca6267f5f3d1cffd34fca
MD5 4c0950fe26b1c9aa4ae58cd2c9581271
BLAKE2b-256 46b1e19e2b03a36d861e2e4f562f1b5e8bb477444a890b8bdc227daf00ed58c5

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