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.

Install

TBD for now, see the contributing guide for a development install.

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

Features

  • declarative automation in a single pyproject.toml, or...
    • well-known configuration paths like package.json
    • any number of namespaced TOML, JSON, or 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
  • use templates like Jinja2 and JSON-e for advanced use cases
  • user-defined Python-based actions and up-to-date checkers
  • control the working directory and log paths of processes and actions
  • extensibility in any part of the task definition process
    • all core functionality implemented as entry_point-based plugins

Usage

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

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.1.0.tar.gz (87.0 kB view details)

Uploaded Source

Built Distribution

doitoml-0.1.0-py3-none-any.whl (41.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: doitoml-0.1.0.tar.gz
  • Upload date:
  • Size: 87.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.1.0.tar.gz
Algorithm Hash digest
SHA256 0e32e13cbe7566a7245f8db47fa04ba64188eb1a046364d2cbaea21d719fcef6
MD5 caea84626fabc1cde17edad53f097135
BLAKE2b-256 aebce475053cc54d25a6e52e6bf06e7d016d40337b0fa10d9dcd967c107f35e1

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: doitoml-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 41.1 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 24b83d67d9304d903cbf96bbf84b88313e770caaded564707f38f05380f9584e
MD5 b21bcb4de526c8e6a186b3e1773de3d9
BLAKE2b-256 e0ef9826e88353032e25f4eaa1592933e065527c7c83a030cb56c6a20e45d0ac

See more details on using hashes here.

Provenance

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