Skip to content
/ kombi Public

Kombi is focused in describing and performing tasks

License

Notifications You must be signed in to change notification settings

kombiHQ/kombi

Repository files navigation

Kombi

CI

Kombi is a library designed to simplify the process of describing and executing tasks. It enables you to wrap from executables to custom Python implementations, providing an API that facilitates:

  • Describing complex, nested tasks
  • Passing data seamlessly between tasks
  • Managing task settings
  • Handling common file system and path operations
  • Distributing processing workloads
  • Enabling interoperability across various python-based applications

Kombi is especially useful for automating and integrating various executables or APIs, optimizing workflows in tasks like image and video processing, file ingestion, data creation and versioning, and more.

By leveraging declarative definitions, Kombi accelerates prototyping and simplifies maintenance by reducing the need for boilerplate code. For more details, visit the Wiki.

Supported platforms

  • Linux
  • Mac OS
  • windows

Requirement

Python 3.7+

Optional Dependencies

Details

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+
Py Call Graph 2.1+
Jedi 0.19+
Qt.py 2.4+
FFmpeg (including ffprobe) 7.0+
nuke 9.0+
maya 2016+
deadline 9.0+
graphviz 12.1+

Installation

In case you are building the dependencies manually skip the step below:

UI Support (Based on PySide6):

pip install "https://github.com/kombiHQ/kombi/archive/master.zip#egg=kombi[gui]"

UI Legacy Support (Based on PySide2):

pip install "https://github.com/kombiHQ/kombi/archive/master.zip#egg=kombi[gui-legacy]"

Basic install (No UI support):

pip install "https://github.com/kombiHQ/kombi/archive/master.zip#egg=kombi[]"
Extra packages If want to include extra packages, such as support for OpenImageIO, please add extra to the query, for instance:
pip install "https://github.com/kombiHQ/kombi/archive/master.zip#egg=kombi[gui,extra]"
pip install "https://github.com/kombiHQ/kombi/archive/master.zip#egg=kombi[gui-legacy,extra]"
pip install "https://github.com/kombiHQ/kombi/archive/master.zip#egg=kombi[extra]"

Manual installation: Copy the modules under src (kombi, kombiqt) into a directory that is part of the PYTHONPATH.

Install system dependencies

Linux

Ubuntu and derivatives:

apt-get install ffmpeg
apt-get install graphviz
apt-get install openimageio-tools

In recent versions of Ubuntu, you may also need to install libxcb-cursor0 in order to use the xcb plugin for Qt:

apt install libxcb-cursor0
Windows

Kombi Development

Development guidelines.

Details

Clone and install locally

git clone https://github.com/kombiHQ/kombi.git
cd kombi
pip install -e ".[gui,dev,extra]"

Note: For PySide2 specify gui-legacy instead of gui (PySide6)

Running tests

Depending on the version of OpenImageIO you're using, you may need to specify an OCIO configuration. Kombi includes a basic config that can be used if needed:

export OCIO="./data/thirdparty/opencolorio/config.ocio"
cd <SRC_LOCATION>
./runtest

Running linters

cd <SRC_LOCATION>
./runlint

Running coverage

cd <SRC_LOCATION>
./runcoverage

Licensing

Kombi is free software; you can redistribute it and/or modify it under the terms of the MIT License

About

Kombi is focused in describing and performing tasks

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published