Kombi is focused in describing and performing tasks. These tasks can be used to wrap from executables to arbitrary python implementations. It works by providing an API that simplifies the process of describing nested tasks, passing data across tasks, handling settings for the tasks, dealing with common file system/path operations, splitting the processing and, providing interoperability across different applications bundled with python.
You may find this project useful in situations you need to combine serveral different executables/API's. For instance, during image/video processing, ingestion of files, creating/versioning data (etc).
Kombi can be used through declarative definitions to speed-up prototyping and simplify the maintainability, by reducing the need for writing boilerplate code:
```yaml
---
vars:
prefix: "/tmp"
tasks:
- run: gafferScene
metadata:
match.types:
- png
match.vars:
imageType:
- sequence
options:
scene: "{configDirectory}/scene.gfr"
target: "{prefix}/gafferBlurImageSequence/(newver
```toml
[vars]
prefix = "/tmp"
[[tasks]]
run = "gafferScene"
target = "{prefix}/gafferBlurImageSequence/(newver
```json
{
"vars": {
"prefix": "/tmp"
},
"tasks": [
{
"run": "gafferScene",
"metadata": {
"match.types": [
"png"
],
"match.vars": {
"imageType": [
"sequence"
]
}
},
"options": {
"scene": "{configDirectory}/scene.gfr"
},
"target": "{prefix}/gafferBlurImageSequence/(newver
Additionally you can run Kombi from:
```python # TODO ```
``` coming soon ```
Python 3.5+/2.7+
Name | Version |
---|---|
Open Image IO (including python bindings/binary tools) | 1.7+ |
Open Color IO (including python bindings) | 1.0+ |
Gaffer | 0.53+ |
PySide | 2.0+ |
PyYAML | 6.0+ |
Qt.py | 2.4+ |
FFmpeg (including ffprobe) | 3.0+ |
nuke | 9.0+ |
maya | 2016+ |
deadline | 9.0+ |
In case you are building the dependencies manually skip the step below:
#### Ubuntu 18.04 (bionic) and derivatives: ```bash pip install PySide6 pip install PyYAML pip install QtPy apt-get install make cmake apt-get install python3-openimageio openimageio-tools apt-get install ffmpeg ```
- [Cygwin](https://www.cygwin.com) - [Python 3.6+](https://www.python.org/downloads) - [FFmpeg](https://ffmpeg.org) - [Qt.Py](https://pypi.org/project/QtPy) - [PyYAML](https://pypi.org/project/PyYAML) - [PySide2](https://pypi.org/project/PySide2) - [Open Image IO](https://www.lfd.uci.edu/~gohlke/pythonlibs/#openimageio) (Unofficial)
# TODO
> For windows users please make sure you have the posix tools available on your system. It can be done through [Cygwin](https://www.cygwin.com) (During the installation make sure to select `cmake` and `make` under `Devel` category).
#### Dependencies
Name | Version
--- | ---
CMake | 2.8+
Make | 3.0+
Pylama | 7.0+
#### Running tests
```bash
cd
The launchers are provided inside of the "bin" directory found inside of the installation.
Kombi command-line:
kombi --help
Kombi file picker tool (requires PySide2):
kombi-gui
Kombi is free software; you can redistribute it and/or modify it under the terms of the MIT License