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.0.0.tar.gz (35.5 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.0.0-py3-none-any.whl (44.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: grana-1.0.0.tar.gz
  • Upload date:
  • Size: 35.5 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.0.0.tar.gz
Algorithm Hash digest
SHA256 66adeb8161f25c4f41d9905429121cd5f460fdaa4e4f539c126cec4ef6b418b3
MD5 d77b8b90ff39ee05ffa5866b4dd02b94
BLAKE2b-256 d490c5e49f873e2ddb32ac28f3620a935538b7eeb914426801c280d17d0d9f16

See more details on using hashes here.

File details

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

File metadata

  • Download URL: grana-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 44.9 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.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 63eb024d3291ef8ce6039443076e5747347029b21f16be3ea670d0ad45406ee2
MD5 87ede0df4034bf18ed7c69d8cd458636
BLAKE2b-256 f6b62a324264024f31e510b4bdabfe861b78c25f887cef3001dd87e6204f191b

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