OpenAssetIO extensions for use in Media Creation
Note: This repository is currently in a pre-alpha state, and so should not be used for any production critical applications.
Included are several well-known Traits and Specifications for use in OpenAssetIO hosts and managers. For more information on this mechanism, see the OpenAssetIO docs.
MediaCreation is an automatically generated Python package, openassetio-traitgen is used to generate trait implementations based on traits.yml
These initial incarnations of traits/specifications serve as illustrative examples to facilitate discussion and experimentation. Pending tasks:
- Define YAML schema to represent traits/specifications.
- Auto-generate Python classes from YAML
- Auto-generate CPP classes from YAML
- Auto-generate C classes from YAML.
- Extend library to cover common post-production entities and locales.
python -m pip install openassetio-mediacreation
Note
During the configure process,
openassetio-traitgen
will be used to generate C++ trait files. This is assumed to be available in your environment. You may install it viapython -m pip install openassetio-traitgen
cmake -S . -B build
cmake --build build
cmake --install build
A cmake package will be created under a dist
directory in your
build
directory.
To run the tests, on a local development checkout, you can install
the package with pip, then run pytest
.
Note, editable installs are not supported as the package is entirely auto-generated from the traits YAML.
python -m pip install .
python -m pip install pytest
pytest
Note
Building with tests introduces a build-time dependency on OpenAssetIO, which must be discoverable via cmake.
The C++ tests are enabled via setting a cmake variable in the configure:
cmake -S . -B build -DOPENASSETIO_MEDIACREATION_ENABLE_TEST=ON
cmake --build build
ctest --test-dir build/tests/cpp
This repository follows the contribution guidelines outlined in the main OpenAssetIO repository. All discussion most welcome!
When adding new Traits and Specifications:
- Update traits.yml
- Add an import test
- Update the RELEASE_NOTES