This is an experimental branch to test out an option.
At the moment, all models automatically import their BaseModel in __init__.py. That, I think is purely because the submodules containing the BaseModel have variable names, and so importing the BaseModel at module __init__ simplifies searching for it.
However, that approach basically forces the import of the most complex part of the model at __init__. That makes it very hard to share components between models without getting circular imports.
This branch is to explore removing that import.
This is an experimental branch to test out an option.
At the moment, all models automatically import their BaseModel in
__init__.py. That, I think is purely because the submodules containing the BaseModel have variable names, and so importing the BaseModel at module__init__simplifies searching for it.However, that approach basically forces the import of the most complex part of the model at
__init__. That makes it very hard to share components between models without getting circular imports.This branch is to explore removing that import.