SpaceLife-Updater/venv/lib64/python3.12/site-packages/_pyinstaller_hooks_contrib/tests/test_scikit_learn.py

47 lines
1.7 KiB
Python

# ------------------------------------------------------------------
# Copyright (c) 2020 PyInstaller Development Team.
#
# This file is distributed under the terms of the GNU General Public
# License (version 2.0 or later).
#
# The full license is available in LICENSE.GPL.txt, distributed with
# this software.
#
# SPDX-License-Identifier: GPL-2.0-or-later
# ------------------------------------------------------------------
import pytest
from PyInstaller.utils.hooks import is_module_satisfies
from PyInstaller.utils.tests import importorskip
# Run the tests in onedir mode only
onedir_only = pytest.mark.parametrize('pyi_builder', ['onedir'], indirect=True)
# Basic import tests for sub-packages of sklearn. Run only on demand, and only in onedir mode.
@pytest.mark.slow
@onedir_only
@importorskip('sklearn')
@pytest.mark.skipif(
not is_module_satisfies('scikit_learn >= 0.21'),
reason='The test supports only scikit-learn >= 0.21.',
)
@pytest.mark.parametrize('submodule', [
'calibration', 'cluster', 'covariance', 'cross_decomposition',
'datasets', 'decomposition', 'dummy', 'ensemble', 'exceptions',
'experimental', 'externals', 'feature_extraction',
'feature_selection', 'gaussian_process', 'inspection',
'isotonic', 'kernel_approximation', 'kernel_ridge',
'linear_model', 'manifold', 'metrics', 'mixture',
'model_selection', 'multiclass', 'multioutput',
'naive_bayes', 'neighbors', 'neural_network', 'pipeline',
'preprocessing', 'random_projection', 'semi_supervised',
'svm', 'tree', 'discriminant_analysis', 'impute', 'compose'
])
def test_sklearn(pyi_builder, submodule):
pyi_builder.test_source("""
import sklearn.{0}
""".format(submodule))