datalad_next.patches.customremotes_main

Connect log_progress-style progress reporting to git-annex, add close()

This patch introduces a dedicated progress log handler as a proxy between standard datalad progress logging and a git-annex special remote as an approach to report (data transfer) progress to a git-annex parent process.

This functionality is only (to be) used in dedicated special remote processes.

This patch also adds a standard close() handler to special remotes, and calls that handler in a context manager to ensure releasing any resources. This replaces the custom stop() method, which is undocumented and only used by the datalad-archive special remote.

This patch also adds code that allows to patch a class that is already loaded