Skip to main content

Load declarative tasks for doit from TOML, JSON, YAML, and other files.

Project description

doitoml

Load declarative tasks for doit from TOML, JSON, YAML, and other files.

docs install build
docs install from pypi install from conda-forge build

See the full documentation for more information.

Install

pip conda (or mamba, micromamba)
pip install doitoml conda install -c conda-forge doitoml

Features

  • declarative automation in a single pyproject.toml, or...
    • other well-known configuration paths like package.json
    • any number of namespaced TOML, JSON, YAML files
      • from any key inside them
    • augment and simplify existing dodo.py workflows
  • reuse and transform paths and shell tokens
    • use globs and transforms to capture relationships between transformed files
  • flexibly configure environment variables
  • user-defined Python-based actions and up-to-date checkers
  • control the working directory and log paths of processes and actions
  • use templates like Jinja2 and JSON-e for advanced use cases
  • extensibility in any part of the task definition process
    • all core functionality implemented as entry_point-based plugins

Extras

These features require additional pip or conda packages

pip conda feature
doitoml[all] doitoml-with-all all optional features
doitoml[jinja2] doitoml-with-jinja2 Jinja2 task templates
doitoml[json-e] doitoml-with-json-e JSON-e task templates
doitoml[jsonschema] doitoml-with-jsonschema extra configuration validation
doitoml[yaml] doitoml-with-yaml YAML-based task sources

Usage

doitoml provides no additional command line abilities, and is meant to drop in to the existing doit run CLI and other commands.

A Simple Example

Note

The doitoml GitHub repository has many examples of different configurations, including the project's own pyproject.toml and package.json.

The full documentation includes more information about building concise, declarative, reproducible tasks for your project.

The simplest way to use doitoml needs only a pyproject.toml, which doit will already check for configuration data.

# pyproject.toml
[project.optional-dependencies]
dev = ["doitoml"]

[tool.doit]
loader = "doitoml"
verbosity = 2

[tool.doitoml.tasks.hello]
actions = ['echo "Hello World!"']

After installing the dev extra dependency...

pip install -e .[dev]

... and running ...

doit

... you would see ...

.  hello:
Hello World!

Alternatives

If you don't like doitoml, or doit, or even Python, no worries! But please consider trying one of these lovely alternatives before giving up and making your team do everything The Hard Way:

Free Software

doitoml is licensed under the BSD-3-Clause License.

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

doitoml-0.2.0.tar.gz (84.0 kB view details)

Uploaded Source

Built Distribution

doitoml-0.2.0-py3-none-any.whl (45.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: doitoml-0.2.0.tar.gz
  • Upload date:
  • Size: 84.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for doitoml-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d81bc676ba42ef5558116accb5b35c08a40b679c3251f6d99484b0b6fa6f79f8
MD5 4bbd7c6bd596c6d02a3c1c5d07afc33f
BLAKE2b-256 9398ac4521ac9ee95317e3d6605a900a67d42d3f2e7b9d98742d58b91c75a57e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: doitoml-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 45.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for doitoml-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dc8d188be44fcd2944995dc63d0e45274fd39388eae175ba605e94fa1087dee7
MD5 dee4d10e090d975187567d166262ac36
BLAKE2b-256 142a582784dada5dec971be0a9c5d800f6176b614f8633f75b5a8fc7ca79b13b

See more details on using hashes here.

Supported by

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