Skip to content

map_over_datasets - What is the required output of func? #10053

Open
@Illviljan

Description

@Illviljan

What is your issue?

The introductory text and type hints seems to match:

func: Callable[..., Dataset | None | tuple[Dataset | None, ...]],

``func`` needs to return a Dataset, tuple of Dataset objects or None in order
to be able to rebuild the subtrees after mapping, as each result will be
assigned to its respective node of a new tree via `DataTree.from_dict`. Any
returned value that is one of these types will be stacked into a separate
tree before returning all of them.

But the parameter doc is more restrictive:

func : callable
Function to apply to datasets with signature:
`func(*args: Dataset, **kwargs) -> Union[Dataset, tuple[Dataset, ...]]`.
(i.e. func must accept at least one Dataset and return at least one Dataset.)

Some examples showing the different return types would be nice as well. I understand the use case of func: Callable[..., Dataset], but I struggle with the other return types.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions