Skip to main content

A functional interface for creating doit tasks

Project description

https://github.com/tillahoffmann/doit_interface/actions/workflows/main.yml/badge.svg https://img.shields.io/pypi/v/doit_interface.svg?style=flat https://readthedocs.org/projects/doit-interface/badge/?version=latest

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_dep or basename using doit_interface.defaults.

  • Use task dicts as dependencies in file_dep or task_dep using doit_interface.normalize_dependencies.

  • Apply prefixes using doit_interface.path_prefix or doit_interface.prefix.

  • Use global environments and extensive variable substitution for command line tasks using doit_interface.SubprocessAction. You can also use doit_interface.SubprocessAction by default using the doit_interface.SubprocessAction.use_as_default context manager.

Interface

doit_interface
 :members:

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

doit_interface-0.1.3.tar.gz (9.7 kB view details)

Uploaded Source

File details

Details for the file doit_interface-0.1.3.tar.gz.

File metadata

  • Download URL: doit_interface-0.1.3.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for doit_interface-0.1.3.tar.gz
Algorithm Hash digest
SHA256 27fba8125e7cce859b89967d9c7c2f2850ac94e2f01b595f5c11fbfe20edb6f3
MD5 9ddd78a97a81e9bfb9a8cb729facd158
BLAKE2b-256 509a6689ef632fc1854261035c231e6668c06459e562a575836617e849e636ec

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