Closed jrmlhermitte closed 5 years ago
I imagined that we would just deprecate and uninstall the original monolithic suitcase package, porting its contents into respective namespace packages. There will be no pip install suitcase
; the suitcase
package emerges by invoking pip in suitcase-*
for one or more subpackages, via the magic of namespace packages.
While namespace packages are sort of possible in Python 2, they are generally considered be "broken" --- impossible to use a way free of traps and unexpected effects. That was my thinking when I advocated for the Python 3-only approach implemented in the cookiecutter.
What about Python 2 support? As the data access layer, databroker should support Python 2 if anything does. We can provide Python 2 support through the databroker RESTer (web client). But the rest of the databroker and its dependencies (e.g. suitcase packages), running on the server side, can be Python 3 only. As we reorganize over the next couple months, there may be a gap where there is no Python 2 support in the master branches, but @stuartcampbell has approved this way forward, noting that the overlap in the Venn diagram of users open enough to try our databroker concept but not willing/able to install Python 3 is vanishingly small.
Sounds good. Thanks for the clarification. I'm okay with closing this issue. I'll give it some time for others to read and close it later today unless you prefer it to be visible?
Fine by me to close it. FYI I had tried to document my intent by leaving this README here, but obviously we need more documentation for suitcase users. Would like to wait a bit until the design has annealed a little more.
This is done.
Suitcase as is, is currently not compatible with submodules.
From here, there are three ways to make suitcase compatible with submodules:
__init__.py
in this package at thesuitcase
directory level (and do the same for all packages) This is only pytohn 3+ compat__init__.py
that imports a lib that allows for turning these into submodulesI'm tempted to do the second. If we do, we need to update suitcase cookiecutter.
What do you think? @danielballan @mrakitin ? Anyone with experience with submodules? (First time reading about this. Learned the hard way when I found out my student currently can't install
suitcase
andsuitcase.pizza_box
together. I just removed the__init__.py
in this package, and moved the files to submodules for now. This is the first option, which I'd rather go agains)