On 21 January 2018 at 01:56, Barry Warsaw <ba...@python.org> wrote: > On Jan 05, 2018, at 05:12 PM, Nick Coghlan wrote: > >>I think the main reason you're seeing a problem here is because >>ResourceReader has currently been designed to be implemented directly >>by loaders, rather than being a subcomponent that you can request >>*from* a loader. >> >>If you instead had an indirection API (that could optionally return >>self in the case of non-shared loaders), you'd keep the current >>resource reader method signatures, but the way you'd access the itself >>would be: >> >> resources = module.__spec__.loader.get_resource_reader(module) >> # resources implements the ResourceReader ABC > > BTW, just as a quick followup, this API suggestion was brilliant, Nick. It > solved the problem nicely, and let me add support for ResourceReader to > zipimport with only touching the bare minimum of zipimport.c. :)
As API design rules of thumb go, "Prefer composition to inheritance" is one I've come to respect a *lot* :) Cheers, Nick. -- Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com