Skip to main content

Declarative task runner

Project description

grana

Grana is an extensible declarative task runner, aimed to make complex routine jobs easier to configure.

PyPI - Python Version License PyPI version Tests Code style: black Coverage Status

Table of Contents
  1. Installation
  2. Usage
  3. How to contribute

Installation

# Install only core components
pip install grana

# Install with all extensions
pip install "grana[all]"

Usage

Basic examples

# Execute a workflow that is outlined
# in the workdir-located grana.yaml file
grana run

# Print usage
grana --help

Options are configured either via environment variables or via command-line switches. The most common are:

  • GRANA_LOG_LEVEL: Set log level.
  • GRANA_LOG_FILE: Set log file.
  • GRANA_WORKFLOW_FILE: Set the workflow file path explicitly.
  • GRANA_STRATEGY_NAME: Manage execution strategy.
  • GRANA_ACTIONS_CLASS_DEFINITIONS_DIRECTORY: Where to look for custom action runners.
  • GRANA_STRICT_OUTCOMES_RENDERING: Manage failure behaviour when an outcome key is missing.

Full list of used environment variable names can be obtained with this command:

grana info env-vars

How to contribute

Development environment setup

Requires system-wide poetry>=1.3.2, see official documentation.

poetry env use python3.8
poetry install --no-root --sync --all-extras

The root directory for the source code is src, thus one may add it to the project's python path for better IDE integration.

Running tests with coverage on current environment

poetry run pytest --cov --cov-report=html:.coverage_report

Running tests on all available environments

poetry run tox

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

grana-1.1.3.tar.gz (36.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

grana-1.1.3-py3-none-any.whl (45.6 kB view details)

Uploaded Python 3

File details

Details for the file grana-1.1.3.tar.gz.

File metadata

  • Download URL: grana-1.1.3.tar.gz
  • Upload date:
  • Size: 36.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.9 Darwin/23.6.0

File hashes

Hashes for grana-1.1.3.tar.gz
Algorithm Hash digest
SHA256 0fcfdadad779fbbed268fae1c038dea9fc6001bc19c84708d9460f2d7e3a2335
MD5 3a9749976a35c945bb004e8c2d692bc1
BLAKE2b-256 29036f31bf5d49b666fd0c70c102e8127a34d4222cec05cecb317abb6bf50b68

See more details on using hashes here.

File details

Details for the file grana-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: grana-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 45.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.9 Darwin/23.6.0

File hashes

Hashes for grana-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1c485ebbe3a889d9f4c41a85b5ddbc2ec2a51bcb17f88f8bc5863e1bdf8d4042
MD5 4f79da5fb9ba8177d1c3a456bf3bb18c
BLAKE2b-256 b753c2a3f3f7c307c9b423927d481fac35c29831f6ab80a8e00f096f219b4932

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page