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., .dyngle.yml) with your workflows:

dyngle:
  operations:
    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 an operation:

dyngle 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 operation is defined as a list of tasks under dyngle.operations. Tasks are executed sequentially using Python's subprocess module for security.

Example with multiple operations:

dyngle:
  operations:
    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 in a shell-like fashion. The shell is not used, which reduces the likelihood of shell injection attacks. However, note that Dyngle is not robust to malicious configuration.

Quick installation (MacOS)

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

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: dyngle-0.2.0.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.2.0.tar.gz
Algorithm Hash digest
SHA256 5c93e88d66fb334f586514649ce59df9f1a4b3f35ddeebe5f7d11b804df63166
MD5 05080d1c406e5652c883098746adec60
BLAKE2b-256 8dd183d28118044618364c5b5e76807828895061934f3536c417bca7fb25deb1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dyngle-0.2.0-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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 06b52ffe832e3dcf7160fd472b757b32e21b22df7b841d5e9e1f2fef324c67f6
MD5 1b99edaee7d8f1a72caec9759e0e27e3
BLAKE2b-256 910b7eb3b219cd9601acbc719966c68f9aaed3e62c1be6b636c7818e6e03c4b6

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