Skip to content

Commit 2c60a44

Browse files
committed
FIX: Skip version cache on read-only filesystems
Fixes #853. Following nipreps/fmriprep#1830.
1 parent 50d1d0e commit 2c60a44

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

mriqc/cli/version.py

+17-13
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,25 @@ def check_latest():
1919
date = None
2020
outdated = None
2121
cachefile = Path.home() / ".cache" / "mriqc" / "latest"
22-
cachefile.parent.mkdir(parents=True, exist_ok=True)
23-
2422
try:
25-
latest, date = cachefile.read_text().split("|")
26-
except Exception:
27-
pass
28-
else:
23+
cachefile.parent.mkdir(parents=True, exist_ok=True)
24+
except OSError:
25+
cachefile = None
26+
27+
if cachefile and cachefile.exists():
2928
try:
30-
latest = Version(latest)
31-
date = datetime.strptime(date, DATE_FMT)
32-
except (InvalidVersion, ValueError):
33-
latest = None
29+
latest, date = cachefile.read_text().split("|")
30+
except Exception:
31+
pass
3432
else:
35-
if abs((datetime.now() - date).days) > RELEASE_EXPIRY_DAYS:
36-
outdated = True
33+
try:
34+
latest = Version(latest)
35+
date = datetime.strptime(date, DATE_FMT)
36+
except (InvalidVersion, ValueError):
37+
latest = None
38+
else:
39+
if abs((datetime.now() - date).days) > RELEASE_EXPIRY_DAYS:
40+
outdated = True
3741

3842
if latest is None or outdated is True:
3943
try:
@@ -49,7 +53,7 @@ def check_latest():
4953
else:
5054
latest = None
5155

52-
if latest is not None:
56+
if cachefile is not None and latest is not None:
5357
try:
5458
cachefile.write_text(
5559
"|".join(("%s" % latest, datetime.now().strftime(DATE_FMT)))

0 commit comments

Comments
 (0)