Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
for composite_axis in composite_axes_left:
known = {axis for axis in composite_axis if known_lengths[axis] is not None}
unknown = {axis for axis in composite_axis if known_lengths[axis] is None}
lookup = dict(zip(list(known_lengths), range(len(known_lengths))))
if len(unknown) > 1:
raise EinopsError('Could not infer sizes for {}'.format(unknown))
assert len(unknown) + len(known) == len(composite_axis)
input_axes_known_unknown.append(([lookup[axis] for axis in known], [lookup[axis] for axis in unknown]))
result_axes_grouping = [[position_lookup_after_reduction[axis] for axis in composite_axis]
for composite_axis in composite_axes_rght]
ellipsis_left = math.inf if _ellipsis not in composite_axes_left else composite_axes_left.index(_ellipsis)
ellipsis_rght = math.inf if _ellipsis not in composite_axes_rght else composite_axes_rght.index(_ellipsis)
return TransformRecipe(elementary_axes_lengths=list(known_lengths.values()),
input_composite_axes=input_axes_known_unknown,
output_composite_axes=result_axes_grouping,
reduction_type=reduction,
reduced_elementary_axes=tuple(reduced_axes),
ellipsis_positions=(ellipsis_left, ellipsis_rght)
)