Skip to content

Commit 9e71728

Browse files
committed
Initial draft of a TraversableResource abc. Ref #77.
1 parent 3d7d2aa commit 9e71728

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

importlib_resources/abc.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,21 @@ def contents(self):
5656
# type: () -> Iterable[str]
5757
"""Return an iterable of entries in `package`."""
5858
raise FileNotFoundError
59+
60+
61+
class TraversableResources(ResourceReader):
62+
@abstractmethod
63+
def files(self):
64+
"""Return a Traversable object for the loaded package."""
65+
66+
def open_resource(self, resource):
67+
return self.files().joinpath(resource).open('rb')
68+
69+
def resource_path(self, resource):
70+
raise FileNotFoundError(resource)
71+
72+
def is_resource(self, path):
73+
return self.files().joinpath(path).isfile()
74+
75+
def contents(self):
76+
return map(str, self.files().iterdir())

0 commit comments

Comments
 (0)