From 58fed373805b12bef6ffa54a6d2750d27c9938d5 Mon Sep 17 00:00:00 2001 From: Martin Durant Date: Thu, 13 Jan 2022 12:47:17 -0500 Subject: [PATCH] Slice of Openfiles should also be Opnfiles --- fsspec/core.py | 6 ++++++ fsspec/tests/test_core.py | 2 ++ 2 files changed, 8 insertions(+) diff --git a/fsspec/core.py b/fsspec/core.py index 8515de640..ac65c7a16 100644 --- a/fsspec/core.py +++ b/fsspec/core.py @@ -204,6 +204,12 @@ def __exit__(self, *args): break [s.__exit__(*args) for s in self] + def __getitem__(self, item): + out = super().__getitem__(item) + if isinstance(item, slice): + return OpenFiles(out, mode=self.mode, fs=self.fs) + return out + def __repr__(self): return "" % len(self) diff --git a/fsspec/tests/test_core.py b/fsspec/tests/test_core.py index 23a2cddf4..d4cb6362d 100644 --- a/fsspec/tests/test_core.py +++ b/fsspec/tests/test_core.py @@ -184,6 +184,8 @@ def test_multi_context(tmpdir): assert isinstance(files, OpenFiles) assert isinstance(files[0], OpenFile) assert len(files) == 2 + assert isinstance(files[:1], OpenFiles) + assert len(files[:1]) == 1 with files as of: assert len(of) == 2 assert not of[0].closed