Source code for datalad_next.patches.distribution_dataset

"""``DatasetParameter`` support for ``resolve_path()``

This is the standard result of ``EnsureDataset``, which unlike
the datalad-core version actually carries a ``Dataset`` instance.

This patch ensure the traditional handling of "dataset instance from
a string-type parameter in this context.
"""

import logging

from . import apply_patch

# use same logger as -core, looks weird but is correct
lgr = logging.getLogger('datalad.dataset')


[docs] def resolve_path(path, ds=None, ds_resolved=None): if hasattr(ds, 'auto_instance_from_path'): # this instance came from datalad-next's EnsureDataset, # pretend that we resolved the dataset by hand return orig_resolve_path( ds=ds.auto_instance_from_path, ds_resolved=ds, ) else: return orig_resolve_path(ds=ds, ds_resolved=ds_resolved)
# we need to preserve it as the workhorse, this patch only wraps around it orig_resolve_path = apply_patch( 'datalad.distribution.dataset', None, 'resolve_path', resolve_path, msg='Apply datalad-next patch to distribution.dataset:resolve_path') # reuse docs resolve_path.__doc__ = orig_resolve_path.__doc__