datalad_next.patches.run

Enhance run() placeholder substitutions to honor configuration defaults

Previously, run() would not recognize configuration defaults for placeholder substitution. This means that any placeholders globally declared in datalad.interface.common_cfg, or via register_config() in DataLad extensions would not be effective.

This patch makes run's format_command() helper include such defaults explicitly, and thereby enable the global declaration of substitution defaults.

Moreoever a {python} placeholder is now defined via this mechanism, and points to the value of sys.executable by default. This particular placeholder was found to be valuable for improving the portability of run-recording across (specific) Python versions, or across different (virtual) environments. See https://github.com/datalad/datalad-container/issues/224 for an example use case.

https://github.com/datalad/datalad/pull/7509