Stop using namespace packages #192
Merged
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.
Namespace packages are a Python feature allowing code from multiple distributions to live under the same namespace. This is used in reprounzip for the unpackers and plugins (respectively reprounzip.unpackers and reprounzip.plugins, both namespace packages); for example, the whole code of reprounzip-vagrant lives in reprounzip.unpackers.vagrant, letting reprounzip and all its related packages still use a single top-level name "reprounzip".
Unfortunately, this has a few issues and is not well supported. In particular, it doesn't work with the resources API, which is why the usagestats certificate is embedded as a string. It also breaks conda-build in interesting ways (the reason I use
--single-version-externally-managed
).We could simply move each unpacker/plugin to its own top-level package.