You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I got a bit confused while trying to understand how to correctly implement support for 'extras'.
There is an ExtrasProvider base class provided.
ExtrasProvider has 2 normal and 2 abstract methods.
In the example PyPIProvider which implements ExtrasProvider, both normal methods are overridden and one of the abstract methods is never called.
So either the abstraction ExtrasProvider is a bit off or the only existing example is a very special case in which case it would be nice to also provide an example that is not a special case.
The text was updated successfully, but these errors were encountered:
Also when using ExtrasProvider as a Base class without any additional layer, one cannot call ExtrasProvider.identify() because it calls identify() on it's super class which is an abstract method and raises NotImplementedError.
The example was originally written as a practice to get an idea how the interface works, to prepare for integrating it into pip. Improvements are definitely welcomed, but I (or @pfmoore who wrote the code initially) are unlikely to be able to put effort there before we get it working in pip.
Feel free to use the implementation in pip as a reference to improve the example. The pip implementation is still under constant work, so you’ll likely want to follow the pull request to keep information up-to-date. We also discuss related topics openly on Zulip.
I got a bit confused while trying to understand how to correctly implement support for 'extras'.
There is an
ExtrasProvider
base class provided.ExtrasProvider has 2 normal and 2 abstract methods.
In the example PyPIProvider which implements ExtrasProvider, both normal methods are overridden and one of the abstract methods is never called.
So either the abstraction ExtrasProvider is a bit off or the only existing example is a very special case in which case it would be nice to also provide an example that is not a special case.
The text was updated successfully, but these errors were encountered: