Skip to content

Commit 35379d7

Browse files
committed
Allow appending empty paths
1 parent 9d127a9 commit 35379d7

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

tests/fsutil/test_fileobj.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,12 @@ def test_close(self):
8585

8686
def test_truediv_override(self):
8787
root = FileObj("s3://eo-data/test.zarr")
88+
89+
derived = root / ""
90+
self.assert_derived_ok(root, derived,
91+
"s3://eo-data/test.zarr",
92+
"eo-data/test.zarr")
93+
8894
derived = root / ".zgroup"
8995
self.assert_derived_ok(root, derived,
9096
"s3://eo-data/test.zarr/.zgroup",
@@ -153,6 +159,12 @@ def test_parent_with_chained_uri(self):
153159

154160
def test_for_path(self):
155161
root = FileObj("s3://eo-data/test.zarr")
162+
163+
derived = root.for_path("")
164+
self.assert_derived_ok(root, derived,
165+
"s3://eo-data/test.zarr",
166+
"eo-data/test.zarr")
167+
156168
derived = root.for_path(".zgroup")
157169
self.assert_derived_ok(root, derived,
158170
"s3://eo-data/test.zarr/.zgroup",

zappend/fsutil/fileobj.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,9 @@ def for_path(self, rel_path: str) -> "FileObj":
125125
if rel_path.startswith("/"):
126126
raise ValueError("rel_path must be relative")
127127

128+
if not rel_path:
129+
return self
130+
128131
if "::" in self.uri:
129132
# If uri is a chained URL, add path to first component
130133
first_uri, rest = self.uri.split("::", maxsplit=1)

zappend/processor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ def create_target_from_slice(ctx: Context,
9696
consolidated=True)
9797
finally:
9898
if target_dir.exists():
99-
rollback_cb("delete_dir", target_dir.path, None)
99+
rollback_cb("delete_dir", "", None)
100100

101101

102102
def update_target_from_slice(ctx: Context,

0 commit comments

Comments
 (0)