Currently, there are a few classes that mediate generation of DrugPairBatch objects. This PR does a big overhaul to simplify that code. Most importantly, it tries to shy away from the java-style coding of creating an object then immediately after putting stuff inside it (now just make the object with the stuff in the first place)
[x] Code passes all tests
[x] Unit tests provided for these changes
[x] Documentation and docstrings added for these changes
Changes
Turn DrugPairBatch into an actual dataclass
Create BatchGenerator directly from the dataset (and combine with splitting)
Next Steps
After this PR is merged, the next steps are to greatly simplify the context and drug feature set classes as well as impose mypy testing (currently the way they subclass dictionary is problematic)
Summary
Currently, there are a few classes that mediate generation of DrugPairBatch objects. This PR does a big overhaul to simplify that code. Most importantly, it tries to shy away from the java-style coding of creating an object then immediately after putting stuff inside it (now just make the object with the stuff in the first place)
Changes
Next Steps
After this PR is merged, the next steps are to greatly simplify the context and drug feature set classes as well as impose mypy testing (currently the way they subclass dictionary is problematic)