Source code for bbprep._internal.selectors.selector
from collections import abc
import numpy as np
import numpy.typing as npt
import stk
[docs]
class Selector:
"""Select atom ids in stk molecules by deleters."""
def __init__(self) -> None:
"""Initialise Selector."""
[docs]
def select_atoms(self, molecule: stk.BuildingBlock) -> tuple[int, ...]:
raise NotImplementedError
[docs]
def yield_stepwise(
self,
molecule: stk.BuildingBlock,
) -> abc.Iterator[tuple[int, ...]]:
raise NotImplementedError
[docs]
def get_atomic_positions(
self,
molecule: stk.BuildingBlock,
) -> tuple[npt.NDArray[np.float64], ...]:
return tuple(
molecule.get_atomic_positions(atom_ids=self.select_atoms(molecule))
)
[docs]
class NullSelector(Selector):
"""Selecter that does nothing."""
[docs]
def select_atoms(
self,
molecule: stk.BuildingBlock, # noqa: ARG002
) -> tuple[int, ...]:
return ()