Raise an error if too few conformers survive filtering in 38. Fixes #30.
Remove stereochemical information from generated types in #36. This avoids a niche issue where mixing the RDKit and OpenEye toolkits would result in failed type generation for e.g. chiral sulfoxides.
Make linting more strict and improve docstrings in #39
Update aromaticity model used for selecting rotatable torsions for metadynamics to give more intuitive results (ditch MDL and go for RDKit default) in #33.
Improve consistency of how the device arguments are passed around (literal or torch device). #36
Refactor simulation creation logic to reduce duplication and always set the platform to CPU for ML systems (required so that MACE models work with PythonForce). See this commit.
Update environments to OpenMM 8.5 (with PythonForce) and OpenMM-ML. This simplifies the environments required (as we can drop NNPOPs) and means we have have all MLPs in one env. The only issue is that we can now only support CUDA 12.9. #34.