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.2.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.2-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for dyngle-0.1.2.tar.gz
Algorithm Hash digest
SHA256 64bcff30fd3b088180192ff6ebc93d8f2021d536e98acf1d90cf029182944e5f
MD5 4604158e6f1d2a960bda3022a251e900
BLAKE2b-256 ee4fc2c216c0a7467dcc885218822faff35d27161e87cc66be978b64bb12295e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for dyngle-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d76f052c3573f8304d502e77432d72154296f15b87a550a6cf58b851666188b9
MD5 e78a8e401fa6a563bbcb7d6133905518
BLAKE2b-256 72439282fd9795ff4a862b3830ceb240968618bd079470e5ca82ce01a5174699

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