diff --git a/qlib/data/dataset/loader.py b/qlib/data/dataset/loader.py index 22986563a..b64a169c9 100644 --- a/qlib/data/dataset/loader.py +++ b/qlib/data/dataset/loader.py @@ -284,6 +284,32 @@ class NestedDataLoader(DataLoader): We have multiple DataLoader, we can use this class to combine them. """ def __init__(self, dataloader_l: list[dict], join="left") -> None: + """ + + Parameters + ---------- + dataloader_l : list[dict] + A list of dataloader, for exmaple + + .. code-block:: python + + nd = NestedDataLoader( + dataloader_l=[ + { + "class": "qlib.contrib.data.loader.Alpha158DL", + }, { + "class": "qlib.contrib.data.loader.Alpha360DL", + "kwargs": { + "config": { + "label": ( ["Ref($close, -2)/Ref($close, -1) - 1"], ["LABEL0"]) + } + } + } + ] + ) + join : + it will pass to pd.concat when merging it. + """ super().__init__() self.data_loader_l = [(dl if isinstance(dl, DataLoader) else init_instance_by_config(dl)) for dl in dataloader_l] self.join = join diff --git a/tests/data_mid_layer_tests/test_dataloader.py b/tests/data_mid_layer_tests/test_dataloader.py index abdedb9e4..9f12180ce 100644 --- a/tests/data_mid_layer_tests/test_dataloader.py +++ b/tests/data_mid_layer_tests/test_dataloader.py @@ -26,10 +26,13 @@ class TestDataLoader(unittest.TestCase): } ] ) + # Of course you can use StaticDataLoader nd.load ... + # Then you can use it wth DataHandler; + if __name__ == "__main__": unittest.main()