datalad_next.patches.replace_ora_remote
Patch datalad.distributed.ora_remote.ORARemote
This patch replaces the class datalad.distributed.ora_remote.ORARemote
with an updated version that should work properly on Linux, OSX, and Windows.
The main difference to the original code is that all path-operations are
performed on URL-paths. Those are represented by instances of PurePosixPath.
All subclasses of BaseIO, i.e. LocalIO, SSHRemoteIO,
and HTTPRemoteIO, are extended to contain the method
url2transport_path(). This method converts an URL-path into the correct
path for the transport, i.e. the IO abstraction.
Before methods on a subclass of BaseIO that require a path are called,
the generic URL-path is converted into the correct path for the IO-class by
calling url2transport_path() on the respective IO-class.
The patch keeps changes to the necessary minimum. That means the source is mostly identical to the original. Besides the changes described above, more debug output was added.
NOTE: this patch only provides ORARemote. The patches that add a
url2transport_path()-method to LocalIO and to HTTPRemoteIO
are contained in module datalad_next.patches.add_method_url2localpath. The
reason to keep them separate is that the patch from module
datalad_next.patches.replace_create_sibling_ria require them as well.
For SSHRemoteIO the method is included in the patch definition of
SSHRemoteIO, which is contained in the module
datalad_next.patches.replace_sshremoteio.