Source code for stk._internal.reaction_factories.dative_reaction_factory

"""
Dative Reaction Factory
=======================

"""

from ..reactions.dative_reaction.dative_reaction import DativeReaction
from .reaction_factory import ReactionFactory


[docs] class DativeReactionFactory(ReactionFactory): """ Create :class:`.DativeReaction` instances. This reaction factory assumes that the functional groups, which belong to the :class:`.EdgeGroup` passed to it, are :class:`.GenericFunctionalGroup` instances. It returns a :class:`.Reaction` suitable for two such instances. Dative bonds are defined with a `bond_order` of 9, running from the non-metal atom to the metal atom. """ def __init__(self, reaction_factory): """ Initialize a :class:`.DativeReactionFactory`. Parameters ---------- reaction_factory : :class:`.GenericReactionFactory` Used to create reactions. """ self._reaction_factory = reaction_factory
[docs] def get_reaction(self, construction_state, edge_group): reaction = self._reaction_factory.get_reaction( construction_state=construction_state, edge_group=edge_group, ) return DativeReaction(reaction)
def __str__(self): return repr(self) def __repr__(self): return f"{self.__class__.__name__}" f"({self._reaction_factory})"