Skip to content

Commit 43e60fa

Browse files
authored
Allow ls() on single file in arrowFS (#1931)
1 parent c23674c commit 43e60fa

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

fsspec/implementations/arrow.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,13 @@ def ls(self, path, detail=False, **kwargs):
7575
path = self._strip_protocol(path)
7676
from pyarrow.fs import FileSelector
7777

78-
entries = [
79-
self._make_entry(entry)
80-
for entry in self.fs.get_file_info(FileSelector(path))
81-
]
78+
try:
79+
entries = [
80+
self._make_entry(entry)
81+
for entry in self.fs.get_file_info(FileSelector(path))
82+
]
83+
except (FileNotFoundError, NotADirectoryError):
84+
entries = [self.info(path, **kwargs)]
8285
if detail:
8386
return entries
8487
else:

fsspec/implementations/tests/test_arrow.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,17 @@ def test_ls(fs, remote_dir):
151151
assert dirs == expected
152152

153153

154+
def test_ls_one(fs, remote_dir):
155+
if remote_dir != "/":
156+
remote_dir = remote_dir + "/"
157+
fs.mkdir(remote_dir + "dir/")
158+
file = remote_dir + "dir/test_one"
159+
fs.touch(file)
160+
161+
out = fs.ls(file, detail=True)
162+
assert out[0] == fs.info(file)
163+
164+
154165
def test_mkdir(fs, remote_dir):
155166
if remote_dir != "/":
156167
remote_dir = remote_dir + "/"

0 commit comments

Comments
 (0)