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
(ormamba
,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
- well-known configuration paths like
- 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
- all core functionality implemented as
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 ownpyproject.toml
andpackage.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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e32e13cbe7566a7245f8db47fa04ba64188eb1a046364d2cbaea21d719fcef6 |
|
MD5 | caea84626fabc1cde17edad53f097135 |
|
BLAKE2b-256 | aebce475053cc54d25a6e52e6bf06e7d016d40337b0fa10d9dcd967c107f35e1 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24b83d67d9304d903cbf96bbf84b88313e770caaded564707f38f05380f9584e |
|
MD5 | b21bcb4de526c8e6a186b3e1773de3d9 |
|
BLAKE2b-256 | e0ef9826e88353032e25f4eaa1592933e065527c7c83a030cb56c6a20e45d0ac |