solrat.engine.generators.merge_loopers module

solrat.engine.generators.merge_loopers.get_unique_name() str[source]
class solrat.engine.generators.merge_loopers.Looper[source]

Bases: object

Base Looper class

set_name(name: str)[source]
get_name() str[source]
add_to_dependencies(dependencies: Set[str])[source]
is_name_set() bool[source]
get_directly_dependent_columns() Set[str][source]
abstract fill_frame(frame: DataFrame, explode: bool = True) DataFrame[source]
class solrat.engine.generators.merge_loopers.DummyOrAlreadyMerged(dependency: Looper | None = None)[source]

Bases: Looper

Looper class for the pre-merged variables.

add_to_dependencies(dependencies: Set[str])[source]
get_directly_dependent_columns() Set[str][source]
fill_frame(frame: DataFrame, explode=True) DataFrame[source]
class solrat.engine.generators.merge_loopers.Value(value: int | float | str)[source]

Bases: Looper

Looper class for a single value.

add_to_dependencies(dependencies: Set[str])[source]
fill_frame(frame: DataFrame, explode=True) DataFrame[source]
solrat.engine.generators.merge_loopers.wrap_in_value_if_needed(x: Looper | int | float) Looper[source]

Helper function to wrap int or float into Value looper.

class solrat.engine.generators.merge_loopers.FromTo(start: Looper | int | float, end: Looper | int | float)[source]

Bases: Looper

Inclusive range looper

add_to_dependencies(dependencies: Set[str])[source]
get_directly_dependent_columns() Set[str][source]
fill_frame(frame: DataFrame, explode=True) DataFrame[source]
class solrat.engine.generators.merge_loopers.Projection(vector: Looper | int | float)[source]

Bases: Looper

Projection looper: from -X to X (inclusive).

add_to_dependencies(dependencies: Set[str])[source]
get_directly_dependent_columns() Set[str][source]
fill_frame(frame: DataFrame, explode=True) DataFrame[source]
class solrat.engine.generators.merge_loopers.Triangular(vector1: Looper | int | float, vector2: Looper | int | float)[source]

Bases: Looper

Triangular looper: from \(|A-B|\) to \(A+B\)

add_to_dependencies(dependencies: Set[str])[source]
get_directly_dependent_columns() Set[str][source]
fill_frame(frame: DataFrame, explode=True) DataFrame[source]
class solrat.engine.generators.merge_loopers.Difference(left: Looper, right: Looper)[source]

Bases: Looper

Difference looper: A - B

add_to_dependencies(dependencies: Set[str])[source]
get_directly_dependent_columns() Set[str][source]
fill_frame(frame: DataFrame, explode=True) DataFrame[source]
class solrat.engine.generators.merge_loopers.Intersection(*args: Looper)[source]

Bases: Looper

Intersection looper: only common values among multiple loopers.

get_directly_dependent_columns() set[source]
fill_frame(frame: DataFrame, explode=True) DataFrame[source]
class solrat.engine.generators.merge_loopers.Constraint[source]

Bases: DummyOrAlreadyMerged

Constrains the values of some variable to a list of values. This is meant to be an artificial constraint, not triangular/etc.

class solrat.engine.generators.merge_loopers.ApplyConstraint(looper: Looper, constraint: Constraint)[source]

Bases: Looper

ApplyConstraint looper: for applying the constraint to another looper.

get_directly_dependent_columns() set[source]
fill_frame(frame: DataFrame, explode=True) DataFrame[source]