It turns out that it might not be possible to make imports of datreant and datreant.data work cleanly without explicitly making datreant behave as a namespace package. This could be done in at least two ways:
Change the core package from datreant to datreant.core (or similar), to clear the namespace of datreant on its own for the namespace package magic.
Make a datreant.ex (or similar) namespace package that datreant.data and any other "extension" packages like it are imported via, which changes datreant.data to datreant.ex.data.
Neither is ideal, but this will take some playing around to figure out what actually works here.
It turns out that it might not be possible to make imports of
datreant
anddatreant.data
work cleanly without explicitly makingdatreant
behave as a namespace package. This could be done in at least two ways:datreant
todatreant.core
(or similar), to clear the namespace ofdatreant
on its own for the namespace package magic.datreant.ex
(or similar) namespace package thatdatreant.data
and any other "extension" packages like it are imported via, which changesdatreant.data
todatreant.ex.data
.Neither is ideal, but this will take some playing around to figure out what actually works here.