A functional interface for creating doit tasks
Project description
This package provides a functional interface for reducing boilerplate in dodo.py of the pydoit build system. In short, all tasks are created and managed using a doit_interface.Manager. Most features<features> are exposed using python context manager, e.g., grouping tasks.
Example
>>> import doit_interface as di
>>> manager = di.Manager.get_instance()
>>> # Create a single task.
>>> manager(basename="create_foo", actions=["touch foo"], targets=["foo"])
{'basename': 'create_foo', 'actions': ['touch foo'], 'targets': ['foo'], ...}
>>> # Group multiple tasks.
>>> with di.group_tasks("my_group") as my_group:
... manager(basename="member")
{'basename': 'member', ...}
>>> my_group
<doit_interface.contexts.group_tasks object at 0x...> named `my_group` with 1 task
>>> # Show the task we implicitly constructed using `group_tasks`.
>>> dict(my_group)
{'basename': 'my_group', 'actions': [], 'task_dep': ['member'], ...}
Features
Traceback for failed tasks using
doit_interface.DoitInterfaceReporter.Group tasks to easily execute all of them using
doit_interface.group_tasks.Automatically create directories for targets using
doit_interface.create_target_dirs.Share default values amongst tasks, such as
file_deporbasenameusingdoit_interface.defaults.Use task
dicts as dependencies infile_deportask_depusingdoit_interface.normalize_dependencies.Apply prefixes using
doit_interface.path_prefixordoit_interface.prefix.Use global environments and extensive variable substitution for command line tasks using
doit_interface.SubprocessAction. You can also usedoit_interface.SubprocessActionby default using thedoit_interface.SubprocessAction.use_as_defaultcontext manager.
Interface
doit_interface
:members:
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
File details
Details for the file doit_interface-0.1.7.tar.gz.
File metadata
- Download URL: doit_interface-0.1.7.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0d63f56ecd2cc45bd9ea0f9900f34d796a6d3cdc6d5c1946f80b90af428b82e
|
|
| MD5 |
af6e76d46091932671111892b0ef11a3
|
|
| BLAKE2b-256 |
0927b7d3bb5a8156987100e85248cb3d5d9b758ace5c8e079c92541c735b8d49
|