Source code for stk._internal.databases.molecule

[docs] class MoleculeDatabase: """ An abstract base class for storing and retrieving molecules. See Also -------- :class:`.ConstructedMoleculeDatabase` If you need to store and retrieve :class:`.ConstructedMolecule` instances. You can put \ :class:`.ConstructedMolecule` instances into a \ :class:`.MoleculeDatabase`, however, you will only be able to \ retrieve them as plain :class:`.Molecule` instances. Examples -------- *Subclass Implementation* The source code of the subclasses, listed in :mod:`molecule_database <~.databases.molecule>`, can serve as good examples. """
[docs] def put(self, molecule): """ Put `molecule` into the database. Parameters ---------- molecule : :class:`.Molecule` The molecule to place into the database. Returns ------- None : :class:`NoneType` """ raise NotImplementedError()
[docs] def get(self, key): """ Get the molecule with `key` from the database. Parameters ---------- key : :class:`object` The key of a molecule, which is to be returned from the database. Returns ------- :class:`.Molecule` The molecule held in the database under `key`. Raises ------ :class:`KeyError` If `key` is not found in the database. """ raise NotImplementedError()
[docs] def get_all(self): """ Get all molecules in the database. Yields ------ :class:`.Molecule` A molecule in the database. """ raise NotImplementedError()