skillfed

openjd-model

Provides a Python implementation of the data model for Open Job Description's template schemas.

openjd-model v0.11.2 112.6K downloads/30d#12,365 on PyPI14
Permissive license Apache-2.0 Active released

What it is and what it does

openjd-model is a Python implementation of the Open Job Description data model, a flexible specification for defining render jobs portably across studios and render management systems. It provides functions to parse JSON or YAML job templates, validate them against the specification, construct model objects programmatically, and convert between formats. The library targets interoperability by allowing applications to translate jobs from Open Job Description format into the native format of any render management software.

The package depends on pyyaml and pydantic for document parsing and validation. It supports multiple specification versions and extensions (such as TASK_CHUNKING), and includes utilities for job parameter preprocessing, job creation from templates, and step dependency graph analysis. The library is actively maintained, supports Python 3.9–3.12, and is distributed as compiled wheels across macOS, Linux, and Windows platforms.

Use it for:

  • Translate render job definitions from Open Job Description format into your studio's proprietary render management system.
  • Validate job templates against the Open Job Description specification before submission to a render farm.
  • Programmatically construct job templates and step definitions using Python objects instead of hand-writing JSON or YAML.
  • Analyze job step dependencies and build execution graphs for scheduling or visualization.
  • Preprocess and inject job parameters into templates before job creation or submission.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Parses, validates, and constructs Open Job Description template models in Python, enabling conversion between JSON/YAML and standardized job specification objects.

Yes. The package is actively maintained, has no known vulnerabilities, carries a permissive Apache-2.0 license, and directly solves the problem of standardizing job definitions across render management systems. Install it if you need to parse, validate, or generate Open Job Description templates in Python, or if you are building a tool that translates between job formats.

Install

openjd-model on PyPI

pip

pip install openjd-model

uv

uv add openjd-model

poetry

poetry add openjd-model

Installing openjd-model

Before you install

Medium install friction due to compiled wheels for multiple platforms (cp39-abi3 across macOS, Linux, Windows architectures). Active maintenance with a release 10 days ago; supports Python 3.9 through 3.12.

License in practice

Apache-2.0 permissive license allows commercial and private use with minimal restrictions; suitable for most production and proprietary projects.

Quickstart

from openjd.model import decode_job_template, document_string_to_object, DocumentType

template_string = """specificationVersion: jobtemplate-2023-09
name: DemoJob
steps:
  - name: DemoStep
    script:
      actions:
        onRun:
          command: python
          args: ["-c", "print('Hello')"]
"""

template_object = document_string_to_object(
    document=template_string,
    document_type=DocumentType.YAML
)
job_template = decode_job_template(template=template_object)

Requires Python 3.9 or higher; Linux, macOS, or Windows operating system.

Verify before relying

  • Whether the library handles all Open Job Description specification versions beyond 2023-09, or if version support is limited.
  • Performance characteristics when parsing or validating large or deeply nested job templates.
  • Whether step dependency resolution (StepDependencyGraph) handles cyclic dependencies or other edge cases gracefully.

Package facts

License Apache-2.0 (permissive)
Python support supports the current Python release (>=3.9)
Install friction medium — platform-specific wheel
Runtime dependencies 2 — pyyaml, pydantic
Maintenance actively maintained — 10 days since the last release
Last repo commit
First released
Downloads 112,561/month — #12,365 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: openjd_model-0.11.2-cp39-abi3-macosx_10_12_x86_64.whl; openjd_model-0.11.2-cp39-abi3-macosx_11_0_arm64.whl; openjd_model-0.11.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; openjd_model-0.11.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; openjd_model-0.11.2-cp39-abi3-win_amd64.whl; openjd_model-0.11.2-cp39-abi3-win_arm64.whl

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: PythonProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.9Topic :: Software Development :: Libraries

Tags

job template parsing validationopen job description pythonrender job specificationjob template to json yamljob workflow model libraryrender management interoperabilityjob schema validation
job-schedulingrender-farmspecification-implementation

More Libraries packages