Lightweight build engine
Project description
LiteBuild
⚠️ THIS IS BETA SOFTWARE
LiteBuild is a lightweight build system for data processing and general-purpose shell workflows.
LiteBuild is optimized for workflows where the primary actions are running templated shell commands that transform data files, image manipulation, or scientific computing tasks. It provides a clean and powerful way to orchestrate complex data pipelines.
Features
1. Declarative Workflow in a Single File
The build process is fully defined in one structured LB_config.yml file. This makes your workflow easy to understand,
version control, and reproduce. LiteBuild has no implicit steps. Everything is explicitly defined in the config file.
2. Powerful Parameter Management
- Templated Commands: Construct complex shell commands dynamically from a hierarchy of parameters.
- Hierarchical Configuration: A three-tiered parameter system (
Step>Profile>General) maximizes reusability and minimizes boilerplate. - Flexible Parameter Styles: Natively supports single-dash, double-dash, quoted, and unquoted command-line arguments.
3. Intelligent Build Engine
- True Incremental Builds: The engine tracks file timestamps as well as hashes of commands, inputs, and parameters, ensuring that steps are re-run when anything that affects their output has changed.
- Automatic Parallel Execution: LiteBuild analyzes your dependencies and runs independent branches of your workflow simultaneously to minimize build times.
- Atomic Outputs: Each step must produce a single, primary output file, which serves as a clean and reliable caching key for its state.
- Automatic Workflow Documentation: A built-in "describe" function generates a Markdown file with a Mermaid diagram of your workflow, detailed information about each step, and a complete, ordered list of the shell commands for a full, clean build and integrated readme file if provided.
- Flexible Invocation:
- GUI - LiteBuild can be run from a simple GUI
- Command Line - LiteBuild can be launched from the command line
- Embedded - The LiteBuild engine library can be incorporated into an app. Configuration can be managed via the structured YAML file or passed as a dictionary.
Configuration
The config file is organized into five sections.
A detailed description is in configuration.md
-
OVERVIEW: A brief description of the workflow's purpose.
-
README: The file path to a more detailed Markdown file. The contents of this file will be embedded in the
describeoutput. -
GENERAL:
- Defines global parameters (e.g.,
PROJECT_NAME,PREVIEW) available for templating throughout the file. - Can contain a
PARAMETERSsub-section to define default parameters for any rule (lowest precedence).
- Defines global parameters (e.g.,
-
PROFILES:
- Each key under
PROFILESdefines a specific set of parameters. - Contains the data unique to that profile, such as source file lists.
- Can contain a
PARAMETERSsub-section to provide profile-specific parameter overrides (medium precedence).
- Each key under
-
`WORKFLOW:
- Defines the build workflow as a list of steps.
- Each step defines:
RULE: The name of the rule.REQUIRES: A list of other step names this step depends on.OUTPUT: A single, templated output file path.
- Each step can optionally define:
INPUTS: A list of input files or the outputs of dependency steps.PARAMETERS: A dictionary of parameters that override all other defaults (highest precedence). See configuration.md for details.
Installation:
The LiteBuild package and all its dependencies are directly installable from PyPI via
pip.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file litebuild-0.4.1.tar.gz.
File metadata
- Download URL: litebuild-0.4.1.tar.gz
- Upload date:
- Size: 25.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3b0186cc051196babb0d35c0dc851e52df4a48e5ce81cccb8d01e8cb02ba6e4
|
|
| MD5 |
7ce6df3a91d2fb066751c1e627b030ad
|
|
| BLAKE2b-256 |
82e3e625d5ff3ea63f417c5255925ee9d64e13f93b64329cac5923cc3c26bcab
|
File details
Details for the file litebuild-0.4.1-py3-none-any.whl.
File metadata
- Download URL: litebuild-0.4.1-py3-none-any.whl
- Upload date:
- Size: 29.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5bbc05a1992c6f951c372d5928351a2ee5882c4a4370064286e1b4f15a5f241
|
|
| MD5 |
12b7b9a486d4e4c7d99ff470c22e95a5
|
|
| BLAKE2b-256 |
b66cd2cef62b23a35a2e1d584ebdeb3e20876bcc6f9230906069dac1813d16fa
|