Skip to main content

Hi-Level API for Golem The Next Milestone

Project description

Golem Python API

Continuous integration

How to use

Rendering

from yapapi.runner import Engine, Task, vm
from datetime import timedelta

async def main():
    package = await vm.repo(image_hash = 'ef007138617985ebb871e4305bc86fc97073f1ea9ab0ade9ad492ea995c4bc8b')

    async def worker(ctx, tasks):
        ctx.send_file('./scene.blend', '/golem/resource/scene.blend')
        async for task in tasks:
            ctx.begin()
            crops = [{
                "outfilebasename": "out",
                "borders_x": [0.0, 1.0],
                "borders_y": [0.0, 1.0]
            }]
            ctx.send_json('/golem/work/params.json', {
                'scene_file': '/golem/resource/scene.blend',
                'resolution': (800, 600),
                'use_compositing': False,
                'crops': crops,
                'samples': 100,
                'frames': [task.frame],
                'output_format': 'PNG',
                'RESOURCES_DIR': "/golem/resources",
                'WORK_DIR': '/golem/work',
                'OUTPUT_DIR': '/golem/output'
            })
            ctx.run('/golem/entrypoints/render_entrypoint.py')
            ctx.download_file('/golem/output/out.png', f'output_{task.frame}.png')
            yield ctx.commit()
            # TODO: Check if job is valid
            # and reject by: task.reject_task(msg = 'invalid file')
            task.accept_task()

        ctx.log('no more frame to render')

    async with Engine(package = package, max_worker=10, budget = 10.0, timeout = timedelta(minutes=5)) as engine:
        async for progress in  engine.map(worker, [ Task(frame=frame) for frame in range(1,101) ]):
            print("progress=", progress)

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

yapapi-0.1.0.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

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

yapapi-0.1.0-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file yapapi-0.1.0.tar.gz.

File metadata

  • Download URL: yapapi-0.1.0.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.9 CPython/3.6.9 Linux/5.3.0-59-generic

File hashes

Hashes for yapapi-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5468cd90eb00ee83300e47a3659e6ca0aa039ddf22287433d72891d9e2bee8d8
MD5 475771cee180e5c27440cb802062d493
BLAKE2b-256 982fb23dea419e59b7ebdf5f2f8d43e312cdce30f11f48cbf55608a410c29bda

See more details on using hashes here.

File details

Details for the file yapapi-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: yapapi-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.9 CPython/3.6.9 Linux/5.3.0-59-generic

File hashes

Hashes for yapapi-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 33a82482b5e4977d88a70c4d1927a961fe39fe7ada1791188cc5dd66faa52fd5
MD5 53055e459774f6f7cd6eea0e8fde4fd9
BLAKE2b-256 88d2504ade7fa940546a49f67d42bf2a11d5c8f5a77846f8e6d240884b088d67

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