From 59a87b4b1c9f3228bc0f80c4005a7769ec6832a0 Mon Sep 17 00:00:00 2001 From: Nathan Zimmerman Date: Thu, 21 Nov 2024 12:57:56 -0600 Subject: [PATCH] Ensure reference FS wraps any sync filesystems --- fsspec/implementations/reference.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fsspec/implementations/reference.py b/fsspec/implementations/reference.py index 5c5372cda..60fb5d57b 100644 --- a/fsspec/implementations/reference.py +++ b/fsspec/implementations/reference.py @@ -20,6 +20,7 @@ from fsspec.asyn import AsyncFileSystem from fsspec.callbacks import DEFAULT_CALLBACK from fsspec.core import filesystem, open, split_protocol +from fsspec.implementations.asyn_wrapper import AsyncFileSystemWrapper from fsspec.utils import isfilelike, merge_offset_ranges, other_paths logger = logging.getLogger("fsspec.reference") @@ -757,6 +758,10 @@ def __init__( self.fss[remote_protocol] = fs self.fss[None] = fs or filesystem("file") # default one + # Wrap any non-async filesystems to ensure async methods are available below + for k, f in self.fss.items(): + if not f.async_impl: + self.fss[k] = AsyncFileSystemWrapper(f) def _cat_common(self, path, start=None, end=None): path = self._strip_protocol(path)