openjd-model
Provides a Python implementation of the data model for Open Job Description's template schemas.
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-modeluv
uv add openjd-modelpoetry
poetry add openjd-modelInstalling 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
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
openjd-sessionsProvides a runtime library for executing Open…
permissive · top 15,000 on PyPI
jinjanatorA command-line tool that renders Jinja2…
permissive · top 5,000 on PyPI
open-data-contract-standardReads and writes YAML files conforming to the…
permissive · top 5,000 on PyPI
json-specImplements JSON Schema, JSON Pointer, and JSON…
permissive · top 15,000 on PyPI
check-jsonschemaA command-line tool and pre-commit hook that…
permissive · top 5,000 on PyPI
linkml-runtimeProvides runtime support for LinkML-generated…
permissive · top 15,000 on PyPI
linkmlLinkML is a modeling language for defining…
permissive · top 15,000 on PyPI
yamaleYamale validates YAML files against a schema…
permissive · top 5,000 on PyPI
djhtmlDjHTML indents Django and Jinja template files…
copyleft · top 15,000 on PyPI
nietA command-line tool that extracts and…
permissive · top 15,000 on PyPI