Incrementally check and update core dimension sizes for a single argument. Arguments --------- dim_sizes : Dict[str, int] Sizes of existing core dimensions. Will be updated in-place. arg : ndarray Argument to examine. core_dims : Tuple[str, ...] Core
(dim_sizes, arg, core_dims)
| 2030 | |
| 2031 | |
| 2032 | def _update_dim_sizes(dim_sizes, arg, core_dims): |
| 2033 | """ |
| 2034 | Incrementally check and update core dimension sizes for a single argument. |
| 2035 | |
| 2036 | Arguments |
| 2037 | --------- |
| 2038 | dim_sizes : Dict[str, int] |
| 2039 | Sizes of existing core dimensions. Will be updated in-place. |
| 2040 | arg : ndarray |
| 2041 | Argument to examine. |
| 2042 | core_dims : Tuple[str, ...] |
| 2043 | Core dimensions for this argument. |
| 2044 | """ |
| 2045 | if not core_dims: |
| 2046 | return |
| 2047 | |
| 2048 | num_core_dims = len(core_dims) |
| 2049 | if arg.ndim < num_core_dims: |
| 2050 | raise ValueError( |
| 2051 | '%d-dimensional argument does not have enough ' |
| 2052 | 'dimensions for all core dimensions %r' |
| 2053 | % (arg.ndim, core_dims)) |
| 2054 | |
| 2055 | core_shape = arg.shape[-num_core_dims:] |
| 2056 | for dim, size in zip(core_dims, core_shape): |
| 2057 | if dim in dim_sizes: |
| 2058 | if size != dim_sizes[dim]: |
| 2059 | raise ValueError( |
| 2060 | 'inconsistent size for core dimension %r: %r vs %r' |
| 2061 | % (dim, size, dim_sizes[dim])) |
| 2062 | else: |
| 2063 | dim_sizes[dim] = size |
| 2064 | |
| 2065 | |
| 2066 | def _parse_input_dimensions(args, input_core_dims): |
no outgoing calls
no test coverage detected