Use up-to-date namespace package setup for plugins #5505
+37
−45
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Refactor
beetsplug
to use native namespace packages by removing__init__.py
. Update documentation andsetup.cfg
to support namespace packages.Changes
beetsplug/__init__.py
.docs/dev/plugins.rst
to reflect namespace package structure.mypy
configuration insetup.cfg
Motivation
Adopt PEP 420 native namespace packages to simplify plugin management and eliminate the need for
__init__.py
.See https://realpython.com/python-namespace-package.
This setup is backwards-compatible, so plugins using the old pkgutil-based setup will continue working fine.
The advantage with this setup is that external plugins will now be able to import modules from 'beetsplug' package for typing purposes. Previously, mypy could not resolve these modules due to presence of
__init__.py
.