Skip to main content

Run lightweight local workflows

Project description

Dyngle

Run lightweight local workflows

Dyngle is a simple workflow runner that executes sequences of commands defined in configuration files. It's like a lightweight combination of Make and a task runner, designed for automating common development and operational tasks.

Basic usage

Create a configuration file (e.g., config.yml) with your workflows:

dyngle:
  flows:
    build:
      - python -m pip install -e .
      - python -m pytest
    deploy:
      - docker build -t myapp .
      - docker push myapp
    clean:
      - rm -rf __pycache__
      - rm -rf .pytest_cache

Run a workflow:

dyngle --config config.yml run build

Configuration

Dyngle reads configuration from YAML files. You can specify the config file location using:

  • --config command line option
  • DYNGLE_CONFIG environment variable
  • .dyngle.yml in current directory
  • ~/.dyngle.yml in home directory

Workflow structure

Each workflow (called a "flow") is defined as a list of tasks under dyngle.flows. Tasks are executed sequentially using Python's subprocess module for security.

Example with multiple flows:

dyngle:
  flows:
    test:
      - python -m unittest discover
      - python -m coverage report
    docs:
      - sphinx-build docs docs/_build
      - open docs/_build/index.html
    setup:
      - python -m venv venv
      - source venv/bin/activate
      - pip install -r requirements.txt

Security

Commands are executed using Python's subprocess.run() with arguments split by spaces. The shell is not used, preventing shell injection attacks.

Quick installation (MacOS)

brew install python@3.11
python3.11 -m pip install pipx
pipx install kwark

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

dyngle-0.1.3.tar.gz (2.4 kB view details)

Uploaded Source

Built Distribution

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

dyngle-0.1.3-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

File details

Details for the file dyngle-0.1.3.tar.gz.

File metadata

  • Download URL: dyngle-0.1.3.tar.gz
  • Upload date:
  • Size: 2.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for dyngle-0.1.3.tar.gz
Algorithm Hash digest
SHA256 387a3bcbc1caeb6ab50e4e964e9f1727008785cebbd6fee0c9d55942b5de20b9
MD5 e3ab29aedfb7036f06c9588fd3e96738
BLAKE2b-256 6791414b037fc097904a76afbd3cb91caf2264054c695a1dc93a49db55e0400d

See more details on using hashes here.

File details

Details for the file dyngle-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: dyngle-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 3.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for dyngle-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 67931ed75fb46d11efc77e39fddb83ad9de7a88e6bb634a350b7b7de01fdf82f
MD5 f7b8c9bd0ed1eaf633db59e350e358fc
BLAKE2b-256 57f9a0f734725bbde0f5188c78d774fef2c2f1c7dd84466c6c058bc36ee4b300

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