def vars_to_dims_dicts()

in hypothesis_gufunc/extra/xr.py [0:0]


def vars_to_dims_dicts(min_vars=0, max_vars=DEFAULT_VARS, min_dims=0, max_dims=DEFAULT_DIMS):
    """Generate mapping of variable name to `list` of dimensions, which is compatible with building a
    :class:`xarray:xarray.Dataset`.

    Parameters
    ----------
    min_vars : int
        Minimum size of the resulting variable list.
    max_vars : int or None
        Maximum size of the resulting variable list.
    min_dims : int
        Minimum size of the resulting dimension list.
    max_dims : int or None
        Maximum size of the resulting dimension list.

    Returns
    -------
    D : dict(typing.Hashable, list(str))
        Mapping of variable names to `list` of dimensions, which can be fed to constructor for a
        :class:`xarray:xarray.Dataset`.
    """
    _check_valid_size_interval(min_vars, max_vars, "variables")
    _check_valid_size_interval(min_dims, max_dims, "dimensions")

    def map_dict(args):
        vars_, dims = args
        dim_st = subset_lists(dims, min_size=min_dims, max_size=max_dims)
        S = fixed_dictionaries(OrderedDict([(vv, dim_st) for vv in vars_]))
        return S

    S = _vars_and_dims_pairs(min_vars, max_vars, min_dims, max_dims).flatmap(map_dict)
    return S