diff --git a/doc/source/changelog.rst b/doc/source/changelog.rst index 472b773b9..9257e602a 100644 --- a/doc/source/changelog.rst +++ b/doc/source/changelog.rst @@ -17,6 +17,11 @@ organisation on `GitHub `__. * Please add an item to this CHANGELOG for any new features or bug fixes when creating a PR. +* Fixed duplicate converter registrations in the Python wrappers for OpenMM-related classes, + which caused ``RuntimeWarning: to-Python converter already registered`` warnings at import + time. Also fixed the autogeneration script (``scanheaders.py``) to deduplicate metatypes + so the issue does not recur when wrappers are regenerated. + * Fixed a bug in the AMBER prmtop writer where CMAP atom indices were calculated incorrectly for systems containing more than one molecule with CMAP terms (e.g. multi-chain glycoproteins). diff --git a/wrapper/AutoGenerate/scanheaders.py b/wrapper/AutoGenerate/scanheaders.py index cbe18397c..68e97c923 100644 --- a/wrapper/AutoGenerate/scanheaders.py +++ b/wrapper/AutoGenerate/scanheaders.py @@ -124,7 +124,8 @@ def addMetaType(self, classname): if classname in skip_metatypes: return - self._metatypes.append(classname) + if classname not in self._metatypes: + self._metatypes.append(classname) def addAlias(self, classname, alias): self._aliases[classname] = alias diff --git a/wrapper/Convert/SireOpenMM/SireOpenMM_properties.cpp b/wrapper/Convert/SireOpenMM/SireOpenMM_properties.cpp index 1bb490cf7..63f98b4a9 100644 --- a/wrapper/Convert/SireOpenMM/SireOpenMM_properties.cpp +++ b/wrapper/Convert/SireOpenMM/SireOpenMM_properties.cpp @@ -11,5 +11,4 @@ void register_SireOpenMM_properties() { register_property_container< SireOpenMM::QMEnginePtr, SireOpenMM::QMEngine >(); - register_property_container< SireOpenMM::QMEnginePtr, SireOpenMM::QMEngine >(); } diff --git a/wrapper/Convert/SireOpenMM/SireOpenMM_registrars.cpp b/wrapper/Convert/SireOpenMM/SireOpenMM_registrars.cpp index 7a88a370c..26c8820b0 100644 --- a/wrapper/Convert/SireOpenMM/SireOpenMM_registrars.cpp +++ b/wrapper/Convert/SireOpenMM/SireOpenMM_registrars.cpp @@ -15,16 +15,10 @@ void register_SireOpenMM_objects() { ObjectRegistry::registerConverterFor< SireOpenMM::NullQMEngine >(); - ObjectRegistry::registerConverterFor< SireOpenMM::NullQMEngine >(); - ObjectRegistry::registerConverterFor< SireOpenMM::PyQMCallback >(); - ObjectRegistry::registerConverterFor< SireOpenMM::PyQMForce >(); - ObjectRegistry::registerConverterFor< SireOpenMM::PyQMEngine >(); ObjectRegistry::registerConverterFor< SireOpenMM::PyQMCallback >(); ObjectRegistry::registerConverterFor< SireOpenMM::PyQMForce >(); ObjectRegistry::registerConverterFor< SireOpenMM::PyQMEngine >(); ObjectRegistry::registerConverterFor< SireOpenMM::LambdaLever >(); - ObjectRegistry::registerConverterFor< SireOpenMM::LambdaLever >(); - ObjectRegistry::registerConverterFor< SireOpenMM::PerturbableOpenMMMolecule >(); ObjectRegistry::registerConverterFor< SireOpenMM::PerturbableOpenMMMolecule >(); ObjectRegistry::registerConverterFor< SireOpenMM::TorchQMForce >(); ObjectRegistry::registerConverterFor< SireOpenMM::TorchQMEngine >(); diff --git a/wrapper/Move/SireMove_registrars.cpp b/wrapper/Move/SireMove_registrars.cpp index a1fcf7391..a884fb003 100644 --- a/wrapper/Move/SireMove_registrars.cpp +++ b/wrapper/Move/SireMove_registrars.cpp @@ -67,7 +67,6 @@ void register_SireMove_objects() ObjectRegistry::registerConverterFor< SireMove::SimPacket >(); ObjectRegistry::registerConverterFor< SireMove::WeightedMoves >(); ObjectRegistry::registerConverterFor< SireMove::OpenMMMDIntegrator >(); - ObjectRegistry::registerConverterFor< SireMove::OpenMMMDIntegrator >(); ObjectRegistry::registerConverterFor< SireMove::ZMatMove >(); ObjectRegistry::registerConverterFor< SireMove::Replicas >(); ObjectRegistry::registerConverterFor< SireMove::MTSMC >(); @@ -79,7 +78,6 @@ void register_SireMove_objects() ObjectRegistry::registerConverterFor< SireMove::PrefSampler >(); ObjectRegistry::registerConverterFor< SireMove::VelocityVerlet >(); ObjectRegistry::registerConverterFor< SireMove::OpenMMPMEFEP >(); - ObjectRegistry::registerConverterFor< SireMove::OpenMMPMEFEP >(); ObjectRegistry::registerConverterFor< SireMove::SupraSystem >(); ObjectRegistry::registerConverterFor< SireMove::RBWorkspace >(); ObjectRegistry::registerConverterFor< SireMove::SupraSimPacket >(); @@ -98,7 +96,6 @@ void register_SireMove_objects() ObjectRegistry::registerConverterFor< SireMove::UniformInserter >(); ObjectRegistry::registerConverterFor< SireMove::DLMRigidBody >(); ObjectRegistry::registerConverterFor< SireMove::OpenMMFrEnergyST >(); - ObjectRegistry::registerConverterFor< SireMove::OpenMMFrEnergyST >(); ObjectRegistry::registerConverterFor< SireMove::NullIntegratorWorkspace >(); ObjectRegistry::registerConverterFor< SireMove::AtomicVelocityWorkspace >(); ObjectRegistry::registerConverterFor< SireMove::RBWorkspaceJM >(); @@ -123,7 +120,6 @@ void register_SireMove_objects() ObjectRegistry::registerConverterFor< SireMove::Ensemble >(); ObjectRegistry::registerConverterFor< SireMove::TitrationMove >(); ObjectRegistry::registerConverterFor< SireMove::OpenMMFrEnergyDT >(); - ObjectRegistry::registerConverterFor< SireMove::OpenMMFrEnergyDT >(); ObjectRegistry::registerConverterFor< SireMove::NullSupraSubMove >(); ObjectRegistry::registerConverterFor< SireMove::SameMoves >();