Source code for stk._internal.ea.mutation.mutator

import typing

from stk._internal.ea.mutation.record import MutationRecord

T = typing.TypeVar("T")


[docs] class MoleculeMutator(typing.Protocol[T]): """ Performs mutation operations. Examples: *Implementation mutation operations* You only need to implement :meth:`.mutate`. The source code of any of the classes listed in :mod:`.mutator` can serve as good examples. """
[docs] def mutate(self, record: T) -> MutationRecord[T] | None: """ Return a mutant of `record`. Parameters: record: The molecule to be mutated. Returns: A record of the mutation or ``None`` if `record` cannot be mutated. """ ...