Message394257
> are people supposed to be implementing readers with just files(), or are they always expected to inherit TraversableResources?
A resource provider could potentially implement only the `files()` method (what I think you're calling `TraversableReader`), but my expectation was that all providers would provide a Reader derived from `TraversableResources` in order to provide backward-compatibility for the `ResourceReader` interface. Long term, I'd expect to deprecate all but `files()` on `TraversableResources`.
If a provider only implemented `files()` today and did not inherit from `TraversableResources`, they would still satisfy the `files()` API, but not the ResourceReader API (i.e. violate the expectation that `Loader.get_resource_reader` returns a ResourceReader).
I decided not to present both `TraversableReader` and `TraversableResources` as separate classes because the latter was sufficient for all known cases.
> It seems to me that maybe that is an issue and we actually want [DegenerateFiles] to inherit from TraversableResources.
Perhaps. What advantage would that have?
> Regardless of the usefulness in code, please also consider type hinting.
Agreed, there are some places where type hints would drastically improve readability.
> If people are expecting to be using this protocol, we should expose it.
My instinct is `TraversableResources` is the preferred protocol for now, although I think it's likely we'll want to separate out the TraversableReader when necessary. Let's plan to do that in importlib_resources first. |
|
Date |
User |
Action |
Args |
2021-05-24 17:07:31 | jaraco | set | recipients:
+ jaraco, brett.cannon, FFY00 |
2021-05-24 17:07:30 | jaraco | set | messageid: <1621876050.98.0.354454429552.issue44195@roundup.psfhosted.org> |
2021-05-24 17:07:30 | jaraco | link | issue44195 messages |
2021-05-24 17:07:30 | jaraco | create | |
|