Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions python/paddle/utils/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,13 @@
from .op_version import OpLastCheckpointChecker # noqa: F401

__all__ = ['deprecated', 'run_check', 'require_version', 'try_import']


def __getattr__(name):
if name == "data":
from importlib import import_module

mod = import_module(".data", package=__name__)
globals()[name] = mod
return mod
raise AttributeError(f"module 'paddle.utils' has no attribute '{name}'")
8 changes: 8 additions & 0 deletions python/paddle/utils/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,12 @@
ConcatDataset as ConcatDataset,
Dataset as Dataset,
IterableDataset as IterableDataset,
Sampler as Sampler,
SequenceSampler as SequentialSampler, # noqa: F401
Subset as Subset,
get_worker_info as get_worker_info,
random_split as random_split,
)
from paddle.io.dataloader.collate import (
default_collate_fn as default_collate, # noqa: F401
)
57 changes: 0 additions & 57 deletions test/legacy_test/test_paddle_io_alias.py

This file was deleted.

89 changes: 89 additions & 0 deletions test/legacy_test/test_paddle_utils_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# Copyright (c) 2026 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import unittest

import paddle


class TestUtilsAttrError(unittest.TestCase):
def test_error(self):
with self.assertRaises(AttributeError):
type(paddle.utils.nonexist)


class TestAlias(unittest.TestCase):
def setUp(self):
self.ioObject = paddle.io.Dataset
self.utilsObject = paddle.utils.data.Dataset

def test_compatibility(self):
self.assertTrue(type(self.ioObject) == type(self.utilsObject))


class TestChainDatasetAlias(TestAlias):
def setUp(self):
self.ioObject = paddle.io.ChainDataset
self.utilsObject = paddle.utils.data.ChainDataset


class TestConcatDatasetAlias(TestAlias):
def setUp(self):
self.ioObject = paddle.io.ConcatDataset
self.utilsObject = paddle.utils.data.ConcatDataset


class TestIterableDatasetAlias(TestAlias):
def setUp(self):
self.ioObject = paddle.io.IterableDataset
self.utilsObject = paddle.utils.data.IterableDataset


class TestSamplerAlias(TestAlias):
def setUp(self):
self.ioObject = paddle.io.Sampler
self.utilsObject = paddle.utils.data.Sampler


class TestSequentialSamplerAlias(TestAlias):
def setUp(self):
self.ioObject = paddle.io.SequenceSampler
self.utilsObject = paddle.utils.data.SequentialSampler


class TestSubsetAlias(TestAlias):
def setUp(self):
self.ioObject = paddle.io.Subset
self.utilsObject = paddle.utils.data.Subset


class TestGetWorkerInfoAlias(TestAlias):
def setUp(self):
self.ioObject = paddle.io.get_worker_info
self.utilsObject = paddle.utils.data.get_worker_info


class TestRandomSplitAlias(TestAlias):
def setUp(self):
self.ioObject = paddle.io.random_split
self.utilsObject = paddle.utils.data.random_split


class TestDefaultCollateAlias(TestAlias):
def setUp(self):
self.ioObject = paddle.io.dataloader.collate.default_collate_fn
self.utilsObject = paddle.utils.data.default_collate


if __name__ == "__main__":
unittest.main()
Loading