base

Data transformer interfaces.

class pysatl_cpd.data.providers.transformers.base.IDataTransformer[source]

Bases: ABC, Generic

Abstract source class for data transformers.

Defines the interface for transforming data providers from one type to another through a transform operation.

abstractmethod transform(provider)[source]

Transform input data provider to output data provider.

Parameters:

provider (TypeVar(DataProviderInT, bound= DataProvider[Any, Any])) – Input data provider to transform.

Returns:

Transformed data provider.

Return type:

TypeVar(DataProviderOutT, bound= DataProvider[Any, Any])

abstract property annotation: str

Transformer annotation.

Returns:

Annotation string describing this transformer.

Return type:

annotation

__and__(other)[source]

Compose this transformer with another transformer.

Parameters:

other (IDataTransformer[TypeVar(DataProviderOutT, bound= DataProvider[Any, Any]), TypeVar(DataProviderFinalT, bound= DataProvider[Any, Any])]) – Transformer applied after this transformer.

Returns:

Composed transformer applying both transforms in order.

Return type:

ComposedTransformer[TypeVar(DataProviderInT, bound= DataProvider[Any, Any]), TypeVar(DataProviderFinalT, bound= DataProvider[Any, Any])]

__hash__()[source]

Return a stable hash derived from the transformer annotation.

Returns:

Stable integer hash for the transformer instance.

Return type:

int

class pysatl_cpd.data.providers.transformers.base.ComposedTransformer(*transformers)[source]

Bases: IDataTransformer, Generic

Transformer composed of multiple transformers applied in sequence.

Applies each transformer to the result of the previous one, chaining transformations together.

Parameters:

*transformers (IDataTransformer[DataProvider, DataProvider]) – Variable-length list of transformers to apply in order.

Raises:

ValueError – If no transformers are provided.

__init__(*transformers)[source]
Parameters:

transformers (IDataTransformer[DataProvider, DataProvider])

Return type:

None

transform(provider)[source]

Apply all transformers in sequence to the input provider.

Parameters:

provider (TypeVar(DataProviderInT, bound= DataProvider[Any, Any])) – Input data provider to transform.

Returns:

Data provider after all transformations applied.

Return type:

TypeVar(DataProviderOutT, bound= DataProvider[Any, Any])

__and__(other)[source]

Append another transformer to the composition.

Parameters:

other (IDataTransformer[TypeVar(DataProviderOutT, bound= DataProvider[Any, Any]), TypeVar(DataProviderFinalT, bound= DataProvider[Any, Any])]) – Transformer applied after the current composition.

Returns:

Extended composed transformer.

Return type:

ComposedTransformer[TypeVar(DataProviderInT, bound= DataProvider[Any, Any]), TypeVar(DataProviderFinalT, bound= DataProvider[Any, Any])]

property annotation: str

Composed transformer annotation.

Returns:

Combined annotation from all composed transformers.

Return type:

annotation