aenet.geometry.transformations.TransformationChain

class aenet.geometry.transformations.TransformationChain(transformations: list[TransformationABC])[source]

Chain multiple transformations with lazy evaluation.

This class allows sequential application of multiple transformations using itertools for memory-efficient streaming.

Parameters:

transformations (list of TransformationABC) – List of transformations to apply sequentially

Examples

>>> chain = TransformationChain([transform1, transform2])
>>> for structure in chain.apply_transformation(input_structure):
...     process(structure)
>>> # Or consume all at once
>>> structures = list(chain.apply_transformation(input_structure))
__init__(transformations: list[TransformationABC])[source]

Initialize transformation chain.

Methods

__init__(transformations)

Initialize transformation chain.

apply_transformation(structure, **kwargs)

Apply all transformations sequentially using depth-first streaming.