Currently, _make_model_distribution is implemented as a concrete method in HSSMBase, but this method's logic is specific to standard HSSM models. As we work towards making HSSMBase a proper abstract base class that can be extended for different model types (e.g., RLSSM, custom models), this method should be abstract to enforce that each subclass provides its own implementation.
Proposed Solution
Refactor _make_model_distribution to be an abstract method in HSSMBase, with the current implementation moved to the HSSM class.
Tasks
Expected Benefits
- Clear interface contract for subclasses
- Better code organization and separation of concerns
- Easier to extend for future model types
- Python's ABC will automatically raise TypeError if subclasses don't implement required methods
Currently,
_make_model_distributionis implemented as a concrete method inHSSMBase, but this method's logic is specific to standard HSSM models. As we work towards makingHSSMBasea proper abstract base class that can be extended for different model types (e.g., RLSSM, custom models), this method should be abstract to enforce that each subclass provides its own implementation.Proposed Solution
Refactor
_make_model_distributionto be an abstract method inHSSMBase, with the current implementation moved to the HSSM class.Tasks
HSSMBaseinherit from ABC_make_model_distributioninHSSMBaseto an abstract method with appropriate docstring_make_model_distributionto the HSSM classExpected Benefits