datalad.api.provision¶
- datalad.api.provision(dataset: DatasetParameter | None = None, branch: str | None = None, delete: DatasetParameter | None = None, input: list[str] | None = None, input_list: Path | None = None, worktree_dir: str | Path | None = None)¶
Provision inputs for a make command
This command provides a temporary, partial copy of the dataset in a separate tree, called a “worktree”. The worktree will contain all files that are specified by the input patterns. All necessary subdatasets will be installed. If a subdataset is locally available in the source dataset, it will be installed from there. Its main purpose is to provide an isolated environment for make commands.
Parameters¶
- dataset
Dataset to be used as a configuration source. Beyond reading configuration items, this command does not interact with the dataset. [Default: None]
- branch
Branch (or commit) that should be provisioned, if not specified HEAD will be used. [Default: None]
- delete
Delete the temporary worktree WORKTREE that belongs the the dataset (cannot be used with -b, –branch, -i,`–input`, -I, or –input-list). [Default: None]
- input
An input file pattern (repeat for multiple inputs, file pattern support python globbing, globbing is done in the worktree and through all matching subdatasets, installing if necessary). [Default: None]
- input_list
Name of a file that contains a list of input file patterns. Format is one file per line, relative path from dataset. Empty lines, i.e. lines that contain only newlines, and lines that start with ‘#’ are ignored. Line content is stripped before used. This is useful if a large number of input file patterns should be provided. [Default: None]
- worktree_dir
Path of the directory that should become the temporary worktree, defaults to tempfile.TemporaryDirectory().name. [Default: None]
- on_failure{‘ignore’, ‘continue’, ‘stop’}, optional
behavior to perform on failure: ‘ignore’ any failure is reported, but does not cause an exception; ‘continue’ if any failure occurs an exception will be raised at the end, but processing other actions will continue for as long as possible; ‘stop’: processing will stop on first failure and an exception is raised. A failure is any result with status ‘impossible’ or ‘error’. Raised exception is an IncompleteResultsError that carries the result dictionaries of the failures in its failed attribute. [Default: ‘continue’]
- result_filtercallable or None, optional
if given, each to-be-returned status dictionary is passed to this callable, and is only returned if the callable’s return value does not evaluate to False or a ValueError exception is raised. If the given callable supports **kwargs it will additionally be passed the keyword arguments of the original API call. [Default: None]
- result_renderer
select rendering mode command results. ‘tailored’ enables a command- specific rendering style that is typically tailored to human consumption, if there is one for a specific command, or otherwise falls back on the the ‘generic’ result renderer; ‘generic’ renders each result in one line with key info like action, status, path, and an optional message); ‘json’ a complete JSON line serialization of the full result record; ‘json_pp’ like ‘json’, but pretty-printed spanning multiple lines; ‘disabled’ turns off result rendering entirely; ‘<template>’ reports any value(s) of any result properties in any format indicated by the template (e.g. ‘{path}’, compare with JSON output for all key-value choices). The template syntax follows the Python “format() language”. It is possible to report individual dictionary values, e.g. ‘{metadata[name]}’. If a 2nd-level key contains a colon, e.g. ‘music:Genre’, ‘:’ must be substituted by ‘#’ in the template, like so: ‘{metadata[music#Genre]}’. [Default: ‘tailored’]
- result_xfm{‘datasets’, ‘successdatasets-or-none’, ‘paths’, ‘relpaths’, ‘metadata’} or callable or None, optional
if given, each to-be-returned result status dictionary is passed to this callable, and its return value becomes the result instead. This is different from result_filter, as it can perform arbitrary transformation of the result value. This is mostly useful for top- level command invocations that need to provide the results in a particular format. Instead of a callable, a label for a pre-crafted result transformation can be given. [Default: None]
- return_type{‘generator’, ‘list’, ‘item-or-list’}, optional
return value behavior switch. If ‘item-or-list’ a single value is returned instead of a one-item return value list, or a list in case of multiple return values. None is return in case of an empty list. [Default: ‘list’]