From e36be4f6e180a107b785b9b84edfc7d52f579c9d Mon Sep 17 00:00:00 2001 From: Inhyuk Andy cho Date: Tue, 7 Jan 2025 12:59:38 +0900 Subject: [PATCH 1/2] fix: accomodate acl --- src/datasets/utils/_filelock.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/datasets/utils/_filelock.py b/src/datasets/utils/_filelock.py index 19620e6e777..9645dfd8a7d 100644 --- a/src/datasets/utils/_filelock.py +++ b/src/datasets/utils/_filelock.py @@ -21,6 +21,7 @@ from filelock import UnixFileLock from filelock import __version__ as _filelock_version from packaging import version +from pathlib import Path class FileLock(FileLock_): @@ -32,13 +33,13 @@ class FileLock(FileLock_): MAX_FILENAME_LENGTH = 255 def __init__(self, lock_file, *args, **kwargs): + lock_file = self.hash_filename_if_too_long(lock_file) + # instaed of usimg umask, create a lock file to accomodate ACL + Path(lock_file).touch() # The "mode" argument is required if we want to use the current umask in filelock >= 3.10 # In previous previous it was already using the current umask. if "mode" not in kwargs and version.parse(_filelock_version) >= version.parse("3.10.0"): - umask = os.umask(0o666) - os.umask(umask) - kwargs["mode"] = 0o666 & ~umask - lock_file = self.hash_filename_if_too_long(lock_file) + kwargs["mode"] = os.stat(lock_file).st_mode super().__init__(lock_file, *args, **kwargs) @classmethod From 8c33a17127a71f1261f1e7514e2d90ff9026c5ca Mon Sep 17 00:00:00 2001 From: Inhyuk Andy Cho Date: Tue, 7 Jan 2025 13:49:40 +0900 Subject: [PATCH 2/2] style: make ruff happy --- src/datasets/utils/_filelock.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/datasets/utils/_filelock.py b/src/datasets/utils/_filelock.py index 9645dfd8a7d..5a00bf589e7 100644 --- a/src/datasets/utils/_filelock.py +++ b/src/datasets/utils/_filelock.py @@ -16,12 +16,12 @@ """Utilities to handle file locking in `datasets`.""" import os +from pathlib import Path from filelock import FileLock as FileLock_ from filelock import UnixFileLock from filelock import __version__ as _filelock_version from packaging import version -from pathlib import Path class FileLock(FileLock_):