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