Skip to main content

Unofficial driver for the SideFX Web API

Project description

Hbuild Logo sesiweb

Test

sesiweb is a Python module used as a synchronous driver for the SideFX Web API. It provides a simple interface to interact with the API and obtain data about Houdini product builds.

Inputs are validated with Pydantic, and methods in sesiweb provide additional lookup functionality, exceptions, and models.

Table of Contents

Installation

You can install sesiweb via pip:

pip install --upgrade sesiweb

Note: sesiweb is intended for Python 3, as it supports several modern Python features.

Daily Build Listing

To use sesiweb, you need to provide your SideFX API credentials:

from sesiweb import SesiWeb

sesi_secret = "your_secret_key"
sesi_id = "your_client_id"

sw = SesiWeb(sesi_secret, sesi_id)

Once you have created an instance of SesiWeb, you can call its methods to retrieve data. For example, get_latest_builds will return a list of the DailyBuild object:

# Get the most recent Houdini product builds
build = {"product": "houdini", "platform": "linux", "version": "19.5"}
latest_builds = sw.get_latest_builds(build)

print(latest_builds)

This will return:

[DailyBuild(product='houdini', platform='linux_x86_64_gcc9.3', version='19.5', build='569', date='2023/03/29', release='gold', status='good'), DailyBuild(...

You can also filter builds with the prodfilter arg:

buildfilter = {"status": "good", "release": "gold"}

latest_builds = sw.get_latest_builds(
    prodinfo=build,
    prodfilter=buildfilter
)

For more information on the SideFX Web API and the returned results you can filter by, refer to the SideFX Web API documentation.

Acquiring a Build Download

Using sesiweb and Pydantic, you can also transform a DailyBuild object into a ProductBuild object, which is a required input for acquiring a download URL.

In the script below, the single latest daily development build (irrespective of version number) is acquired using get_latest_build. get_build_download is then used to return the download metadata for that build:

from sesiweb import SesiWeb
from sesiweb.model.service import ProductBuild

sesi_secret = "your_secret_key"
sesi_id = "your_client_id"

sw = SesiWeb(sesi_secret, sesi_id)

# Get the most recent Houdini product builds
build = {"product": "houdini", "platform": "linux"}

# Get the latest Houdini build
build = sw.get_latest_build(prodinfo=build, only_production=False)

# Get the download URL, filename and hash of the build
build_dl = sw.get_build_download(
	prodinfo=ProductBuild(**build.dict())
)

print(build_dl)

This will return a BuildDownloadModel object containing a download URL, build filename, and hash:

download_url=AnyUrl('https://gjvnth38g.cloudfront.net/download/download-build/456223/cdn/?Expires=166636236...

For an example of using this metadata in a purpose suitable for a production environment, see autobuild.py in Houdini-Docker; Where sesiweb build data is used to construct a Docker image using a custom Houdini installation process.

License

sesiweb is licensed under the MIT License. See LICENSE for more information.

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

sesiweb-0.1.1.tar.gz (11.2 kB view hashes)

Uploaded Source

Built Distribution

sesiweb-0.1.1-py3-none-any.whl (10.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page