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