diff --git a/fsspec/spec.py b/fsspec/spec.py index 8229170e2..3ac20e9c1 100644 --- a/fsspec/spec.py +++ b/fsspec/spec.py @@ -428,11 +428,10 @@ def walk(self, path, maxdepth=None, topdown=True, on_error="omit", **kwargs): except (FileNotFoundError, OSError) as e: if on_error == "raise": raise - elif callable(on_error): + if callable(on_error): on_error(e) - if detail: - return path, {}, {} - return path, [], [] + yield (path, {}, {}) if detail else (path, [], []) # noqa: B901 + return for info in listing: # each info name must be at least [path]/part , but here