Skip to content

Commit 1588ce7

Browse files
committed
dbfs: proper cache invalidation for databricks filesystem
1 parent 767388a commit 1588ce7

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

fsspec/implementations/dbfs.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ def makedirs(self, path, exist_ok=True):
118118
raise FileExistsError(e.message)
119119

120120
raise e
121+
self.invalidate_cache(self._parent(path))
121122

122123
def mkdir(self, path, create_parents=True, **kwargs):
123124
"""
@@ -163,6 +164,7 @@ def rm(self, path, recursive=False):
163164
raise OSError(e.message)
164165

165166
raise e
167+
self.invalidate_cache(self._parent(path))
166168

167169
def mv(self, source_path, destination_path, recursive=False, maxdepth=None):
168170
"""
@@ -205,6 +207,8 @@ def mv(self, source_path, destination_path, recursive=False, maxdepth=None):
205207
raise FileExistsError(e.message)
206208

207209
raise e
210+
self.invalidate_cache(self._parent(source_path))
211+
self.invalidate_cache(self._parent(destination_path))
208212

209213
def _open(self, path, mode="rb", block_size="default", **kwargs):
210214
"""
@@ -364,6 +368,13 @@ def _get_data(self, path, start, end):
364368

365369
raise e
366370

371+
def invalidate_cache(self, path=None):
372+
if path is None:
373+
self.dircache.clear()
374+
else:
375+
self.dircache.pop(path, None)
376+
super().invalidate_cache(path)
377+
367378

368379
class DatabricksFile(AbstractBufferedFile):
369380
"""

0 commit comments

Comments
 (0)