[BUG]: DataladDataGrabber is not using the WorkDirManager #386
2 changed files with 5 additions and 4 deletions
1
docs/changes/newsfragments/386.bugfix
Normal file
1
docs/changes/newsfragments/386.bugfix
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Use the :class:`junifer.pipeline.WorkDirManager` for temporary directories in the :class:`.DataladDataGrabber` by `Fede Raimondo`_
|
||||||
|
|
@ -7,7 +7,6 @@
|
||||||
|
|
||||||
import atexit
|
import atexit
|
||||||
import os
|
import os
|
||||||
import shutil
|
|
||||||
import tempfile
|
import tempfile
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Dict, Optional, Tuple, Union
|
from typing import Dict, Optional, Tuple, Union
|
||||||
|
|
@ -17,6 +16,7 @@ import datalad.api as dl
|
||||||
from datalad.support.exceptions import IncompleteResultsError
|
from datalad.support.exceptions import IncompleteResultsError
|
||||||
from datalad.support.gitrepo import GitRepo
|
from datalad.support.gitrepo import GitRepo
|
||||||
|
|
||||||
|
from ..pipeline import WorkDirManager
|
||||||
from ..utils import logger, raise_error, warn_with_log
|
from ..utils import logger, raise_error, warn_with_log
|
||||||
from .base import BaseDataGrabber
|
from .base import BaseDataGrabber
|
||||||
|
|
||||||
|
|
@ -78,7 +78,8 @@ class DataladDataGrabber(BaseDataGrabber):
|
||||||
if datadir is None:
|
if datadir is None:
|
||||||
logger.info("`datadir` is None, creating a temporary directory")
|
logger.info("`datadir` is None, creating a temporary directory")
|
||||||
# Create temporary directory
|
# Create temporary directory
|
||||||
tmpdir = Path(tempfile.mkdtemp())
|
tmpdir = WorkDirManager().get_tempdir(prefix="datalad")
|
||||||
|
self._tmpdir = tmpdir
|
||||||
datadir = tmpdir / "datadir"
|
datadir = tmpdir / "datadir"
|
||||||
datadir.mkdir(parents=True, exist_ok=False)
|
datadir.mkdir(parents=True, exist_ok=False)
|
||||||
logger.info(f"`datadir` set to {datadir}")
|
logger.info(f"`datadir` set to {datadir}")
|
||||||
|
|
@ -104,7 +105,6 @@ class DataladDataGrabber(BaseDataGrabber):
|
||||||
"Datalad locks set to "
|
"Datalad locks set to "
|
||||||
f"{datalad.cfg.get('datalad.locations.locks')}"
|
f"{datalad.cfg.get('datalad.locations.locks')}"
|
||||||
)
|
)
|
||||||
self._tmpdir = tmpdir
|
|
||||||
atexit.register(self._rmtmpdir)
|
atexit.register(self._rmtmpdir)
|
||||||
# TODO: uri can be converted to a positional argument
|
# TODO: uri can be converted to a positional argument
|
||||||
if uri is None:
|
if uri is None:
|
||||||
|
|
@ -129,7 +129,7 @@ class DataladDataGrabber(BaseDataGrabber):
|
||||||
"""Remove temporary directory if it exists."""
|
"""Remove temporary directory if it exists."""
|
||||||
if self._tmpdir.exists():
|
if self._tmpdir.exists():
|
||||||
logger.debug("Removing temporary directory")
|
logger.debug("Removing temporary directory")
|
||||||
shutil.rmtree(self._tmpdir)
|
WorkDirManager().delete_tempdir(self._tmpdir)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def datadir(self) -> Path:
|
def datadir(self) -> Path:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue