def _expand_maybe()

in src/chug/wds/filters.py [0:0]


def _expand_maybe(data, f, handler=wds.reraise_exception):
    for sample in data:
        if isinstance(sample, Mapping):
            try:
                result = f(sample)
            except Exception as exn:
                if handler(exn):
                    continue
                else:
                    break
            if result is None:
                continue
            if "__key__" in sample:
                result["__key__"] = sample["__key__"]
            yield result
        else:
            assert isinstance(sample, Sequence)
            for subsample in sample:
                assert isinstance(subsample, Mapping)
                try:
                    result = f(subsample)
                except Exception as exn:
                    if handler(exn):
                        continue
                    else:
                        break
                if result is None:
                    continue
                if "__key__" in subsample:
                    result["__key__"] = subsample["__key__"]
                yield result