mooonpy.tools.loop_utils module

class mooonpy.tools.loop_utils.Cartesian(cartesian_sets: Dict[str | int, Iterable[Any]], delim: str = '.')[source]

Bases: object

Enhanced cartesian product generator with index tracking and conditional dimensions.

Initialize Cartesian generator.

Args:

cartesian_sets: Dictionary of cart_key: iterable pairs delim: Delimiter for parsing dimension.condition.name syntax

generate(return_combined_indices: List[Tuple[str, ...]] | None = None) Iterator[CartesianResult][source]

Generate cartesian product permutations.

Args:
return_combined_indices: List of dimension name tuples for combined indexing

e.g., [(‘R’, ‘dir’)] to get combined R+dir index

Yields:

CartesianResult containing {name: value} pairs with index attributes populated

generate_list(**kwargs) List[CartesianResult][source]

Generate full list of permutations (convenience method).

get_combined_index(dimension_combo: Tuple[str, ...], value_dict: Dict[str, Any]) int[source]

Calculate combined index for given dimensions from a value dictionary.

Args:

dimension_combo: Tuple of dimension names value_dict: Dictionary of {name: value} pairs

Returns:

Combined index for the specified dimensions

class mooonpy.tools.loop_utils.CartesianResult(values: Dict[str, Any], global_idx: int | None = None, dimension_indices: Dict[str, int] | None = None, combined_indices: Dict[Tuple[str, ...], int] | None = None)[source]

Bases: dict

Result dictionary with index information as attributes.

Initialize CartesianResult.

Args:

values: The main result dictionary {name: value} global_idx: Global permutation index dimension_indices: Per-dimension indices combined_indices: Combined dimension indices

string_format(strings: str | Path | List[str | Path] | Dict[Any, str | Path]) str | Path | List[str | Path] | Dict[Any, str | Path][source]

Format strings with {var} using the CartesianResult dict. Strings may be a single string, list of strings, or dict of strings. Path objects are preserved as paths.

class mooonpy.tools.loop_utils.DimensionEntry(cart_key: str, condition: str | None, name: str, iterable: List[Any])[source]

Bases: object

Represents a single entry in a dimension with its parsing information.

cart_key: str
condition: str | None
iterable: List[Any]
name: str
class mooonpy.tools.loop_utils.DimensionInfo(base: DimensionEntry, conditionals: List[DimensionEntry], parallels: List[DimensionEntry], size: int)[source]

Bases: object

Information about a parsed dimension including base and conditional entries.

base: DimensionEntry
conditionals: List[DimensionEntry]
parallels: List[DimensionEntry]
size: int
class mooonpy.tools.loop_utils.IndexInfo(global_idx: int, dimensions: Dict[str, int], combined: Dict[Tuple[str, ...], int] | None = None)[source]

Bases: object

Index information for a generated permutation.

combined: Dict[Tuple[str, ...], int] | None = None
dimensions: Dict[str, int]
global_idx: int