ENH: run_command: Support injecting a detached command #2937
The text was updated successfully, but these errors were encountered:
Otherwise 'rerun --script' will fail if it encounters a command that uses custom placeholders. This also somewhat addresses the code duplication in datalad-htcondor. Getting rid of the "KeyError to result" duplication is trickier. Re: <datalad/datalad-htcondor#6 (comment)>
... for use in datalad-htcondor. Re: <datalad/datalad-htcondor#6 (comment)>
This should help outside callers fit run_command to their needs. For example, datalad-htcondor may want to store extra information about where the command was actually executed.
This probably won't be used elsewhere, but it makes run_command() a bit more digestible, especially because this code would be indented one more level when we add the 'inject' parameter.
run_command() doesn't rely on detecting whether cmd_exitcode is None, so we might as well handle the None->0 conversion inside _execute_command().
This allows a record to be created for a command that is executed remotely. Note that most of the code change in run.py corresponds to pure indentation. Closes datalad#2934.
@@ Coverage Diff @@ ## master #2937 +/- ## ========================================== + Coverage 90.32% 90.34% +0.02% ========================================== Files 246 246 Lines 32029 32060 +31 ========================================== + Hits 28930 28966 +36 + Misses 3099 3094 -5
datalad/datalad#2937 Full RF yet to come.
## 0.11.1 (Nov 25, 2018) -- v7-better-than-v6 Rushed out bugfix release to stay fully compatible with recent [git-annex] which introduced v7 to replace v6. ### Fixes - [install]: be able to install recursively into a dataset ([#2982]) - [save]: be able to commit/save changes whenever files potentially could have swapped their storage between git and annex ([#1651]) ([#2752]) ([#3009]) - [aggregate-metadata]: - dataset's itself is now not "aggregated" if specific paths are provided for aggregation ([#3002]). That resolves the issue of `-r` invocation aggregating all subdatasets of the specified dataset as well - also compare/verify the actual content checksum of aggregated metadata while considering subdataset metadata for re-aggregation ([#3007]) - `annex` commands are now chunked assuming 50% "safety margin" on the maximal command line length. Should resolve crashes while operating ot too many files at ones ([#3001]) - `run` sidecar config processing ([#2991]) - no double trailing period in docs ([#2984]) - correct identification of the repository with symlinks in the paths in the tests ([#2972]) - re-evaluation of dataset properties in case of dataset changes ([#2946]) - [text2git] procedure to use `ds.repo.set_gitattributes` ([#2974]) ([#2954]) - Switch to use plain `os.getcwd()` if inconsistency with env var `$PWD` is detected ([#2914]) - Make sure that credential defined in env var takes precedence ([#2960]) ([#2950]) ### Enhancements and new features - [shub://datalad/datalad:git-annex-dev](https://singularity-hub.org/containers/5663/view) provides a Debian buster Singularity image with build environment for [git-annex]. [tools/bisect-git-annex]() provides a helper for running `git bisect` on git-annex using that Singularity container ([#2995]) - Added [.zenodo.json]() for better integration with Zenodo for citation - [run-procedure] now provides names and help messages with a custom renderer for ([#2993]) - Documentation: point to [datalad-revolution] extension (prototype of the greater DataLad future) - [run] - support injecting of a detached command ([#2937]) - `annex` metadata extractor now extracts `annex.key` metadata record. Should allow now to identify uses of specific files etc ([#2952]) - Test that we can install from http://datasets.datalad.org - Proper rendering of `CommandError` (e.g. in case of "out of space" error) ([#2958]) * tag '0.11.1': Adjust the date -- 25th fell through due to __version__ fiasco BF+ENH(TST): boost hardcoded version + provide a test to guarantee consistency in the future This (expensive) approach is not needed in v6+ small tuneup to changelog