Skip to content

Remove unused imports in private modules and provide tool script #374

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 24, 2025
Merged
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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,9 @@ MigrationBackup/
# Python virtual environment
.venv

# Lock files (like uv.lock)
*.lock

# Build files from utils
.eggs
*.egg-info
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ extra-standard-library = [
]

[tool.pyright]
exclude = ["build", ".git"]
exclude = ["build", ".git", ".venv*"]
stubPath = "./stubs"
pythonversion = "3.9" # Target oldest supported Python version
typeCheckingMode = "standard"
Expand Down
3 changes: 0 additions & 3 deletions stubs/skimage/_shared/coord.pyi
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
import numpy as np
from scipy.spatial import distance

def _ensure_spacing(coord, spacing, p_norm, max_out): ...
def ensure_spacing(
coords,
Expand Down
4 changes: 0 additions & 4 deletions stubs/skimage/_shared/filters.pyi
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
from collections.abc import Iterable
from typing import Literal

import numpy as np
from numpy.typing import ArrayLike, NDArray
from scipy import ndimage as ndi

from .._typing import Scalar
from . import utils
from .utils import _supported_float_type, convert_to_float, warn

@utils.deprecate_multichannel_kwarg(multichannel_position=5)
def gaussian(
Expand Down
4 changes: 0 additions & 4 deletions stubs/skimage/_shared/lazy.pyi
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
import importlib
import importlib.util
import os
import sys
from collections.abc import Mapping

def attach(
Expand Down
2 changes: 0 additions & 2 deletions stubs/skimage/_shared/setup.pyi
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
#!/usr/bin/env python

import os

base_path = ...

def configuration(parent_package="", top_path=None): ...
2 changes: 0 additions & 2 deletions stubs/skimage/_shared/tester.pyi
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import os
import sys
from typing import Literal

from numpy.typing import ArrayLike
Expand Down
26 changes: 0 additions & 26 deletions stubs/skimage/_shared/testing.pyi
Original file line number Diff line number Diff line change
@@ -1,31 +1,5 @@
import functools
import os
import re
import struct
import threading
import warnings
from tempfile import NamedTemporaryFile

import numpy as np
from numpy import testing
from numpy.testing import (
TestCase,
assert_,
assert_allclose,
assert_almost_equal,
assert_array_almost_equal,
assert_array_almost_equal_nulp,
assert_array_equal,
assert_array_less,
assert_equal,
assert_no_warnings,
assert_warns,
)
from numpy.typing import ArrayLike

from ..data._fetchers import _fetch
from ._warnings import expected_warnings

SKIP_RE = ...

skipif = ...
Expand Down
7 changes: 0 additions & 7 deletions stubs/skimage/_shared/utils.pyi
Original file line number Diff line number Diff line change
@@ -1,13 +1,6 @@
import functools
import inspect
import sys
import warnings
from collections.abc import Iterable, Mapping
from typing import Any, Literal

import numpy as np
import scipy
from numpy.lib import NumpyVersion
from numpy.typing import ArrayLike, NDArray

from ._warnings import all_warnings, warn
Expand Down
4 changes: 0 additions & 4 deletions stubs/skimage/_shared/version_requirements.pyi
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
import sys

from packaging import version as _version

def ensure_python_version(min_version): ...
def _check_version(actver, version, cmp_op): ...
def get_module_version(module_name): ...
Expand Down
4 changes: 0 additions & 4 deletions stubs/sklearn/__check_build/setup.pyi
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
import numpy
from numpy.distutils.core import setup
from numpy.distutils.misc_util import Configuration

# Author: Virgile Fritsch <virgile.fritsch@inria.fr>
# License: BSD 3 clause

Expand Down
7 changes: 0 additions & 7 deletions stubs/sklearn/_build_utils/openmp_helpers.pyi
Original file line number Diff line number Diff line change
@@ -1,10 +1,3 @@
import os
import sys
import textwrap
import warnings

from .pre_build_helpers import compile_test_program as compile_test_program

# This code is adapted for a large part from the astropy openmp helpers, which
# can be found at: https://github.com/astropy/extension-helpers/blob/master/extension_helpers/_openmp_helpers.py # noqa

Expand Down
7 changes: 0 additions & 7 deletions stubs/sklearn/_build_utils/pre_build_helpers.pyi
Original file line number Diff line number Diff line change
@@ -1,9 +1,2 @@
import glob
import os
import subprocess
import sys
import tempfile
import textwrap

def compile_test_program(code, extra_preargs: list = [], extra_postargs: list = []): ...
def basic_check_build(): ...
1 change: 0 additions & 1 deletion stubs/sklearn/_config.pyi
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from collections.abc import Iterator
from contextlib import contextmanager as contextmanager
from typing import Literal

from ._typing import Int
Expand Down
4 changes: 0 additions & 4 deletions stubs/sklearn/_loss/glm_distribution.pyi
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
import numbers
from abc import ABCMeta, abstractmethod
from collections import namedtuple as namedtuple

import numpy as np
from numpy import ndarray
from scipy.special import xlogy as xlogy

from .._typing import ArrayLike, Float

Expand Down
4 changes: 0 additions & 4 deletions stubs/sklearn/_loss/link.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,9 @@ from abc import ABC, abstractmethod
from dataclasses import dataclass
from typing import ClassVar

import numpy as np
from numpy import ndarray
from scipy.special import expit as expit, logit as logit
from scipy.stats import gmean as gmean

from .._typing import ArrayLike, Float
from ..utils.extmath import softmax as softmax

@dataclass
class Interval:
Expand Down
18 changes: 0 additions & 18 deletions stubs/sklearn/_loss/loss.pyi
Original file line number Diff line number Diff line change
@@ -1,32 +1,14 @@
import numbers
from typing import ClassVar, Literal

import numpy as np
from numpy import ndarray
from scipy.special import xlogy as xlogy

from .._typing import ArrayLike, Float, Int, MatrixLike, Scalar
from ..utils import check_scalar as check_scalar
from ..utils._readonly_array_wrapper import ReadonlyArrayWrapper as ReadonlyArrayWrapper
from ._loss import (
CyAbsoluteError as CyAbsoluteError,
CyHalfBinomialLoss as CyHalfBinomialLoss,
CyHalfGammaLoss as CyHalfGammaLoss,
CyHalfMultinomialLoss as CyHalfMultinomialLoss,
CyHalfPoissonLoss as CyHalfPoissonLoss,
CyHalfSquaredError,
CyHalfTweedieLoss as CyHalfTweedieLoss,
CyHalfTweedieLossIdentity as CyHalfTweedieLossIdentity,
CyLossFunction,
CyPinballLoss as CyPinballLoss,
)
from .link import (
BaseLink,
IdentityLink,
Interval,
LogitLink as LogitLink,
LogLink as LogLink,
MultinomialLogit as MultinomialLogit,
)

# Goals:
Expand Down
6 changes: 0 additions & 6 deletions stubs/sklearn/_loss/setup.pyi
Original file line number Diff line number Diff line change
@@ -1,7 +1 @@
import numpy
from numpy.distutils.core import setup
from numpy.distutils.misc_util import Configuration

from .._build_utils import gen_from_templates

def configuration(parent_package: str = "", top_path=None): ...
2 changes: 0 additions & 2 deletions stubs/sklearn/_min_dependencies.pyi
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
from collections import defaultdict as defaultdict

SCIPY_MIN_VERSION: str = ...
JOBLIB_MIN_VERSION: str = ...
THREADPOOLCTL_MIN_VERSION: str = ...
Expand Down
7 changes: 0 additions & 7 deletions stubs/sklearn/cluster/_affinity_propagation.pyi
Original file line number Diff line number Diff line change
@@ -1,18 +1,11 @@
from numbers import Integral as Integral, Real as Real
from typing import Any, ClassVar, Literal
from typing_extensions import Self

from numpy import ndarray
from numpy.random import RandomState

from .._config import config_context as config_context
from .._typing import ArrayLike, Float, Int, MatrixLike
from ..base import BaseEstimator, ClusterMixin
from ..exceptions import ConvergenceWarning as ConvergenceWarning
from ..metrics import euclidean_distances as euclidean_distances, pairwise_distances_argmin as pairwise_distances_argmin
from ..utils import as_float_array as as_float_array, check_random_state as check_random_state
from ..utils._param_validation import Interval as Interval, StrOptions as StrOptions
from ..utils.validation import check_is_fitted as check_is_fitted

###############################################################################
# Public API
Expand Down
12 changes: 0 additions & 12 deletions stubs/sklearn/cluster/_agglomerative.pyi
Original file line number Diff line number Diff line change
@@ -1,23 +1,11 @@
from heapq import heapify as heapify, heappop as heappop, heappush as heappush, heappushpop as heappushpop
from numbers import Integral as Integral, Real as Real
from typing import Any, Callable, ClassVar, Literal
from typing_extensions import Self

from joblib import Memory
from numpy import ndarray
from scipy import sparse as sparse
from scipy.cluster import hierarchy as hierarchy
from scipy.sparse.csgraph import connected_components as connected_components

from .._typing import ArrayLike, Float, Int, MatrixLike
from ..base import BaseEstimator, ClassNamePrefixFeaturesOutMixin, ClusterMixin
from ..metrics import DistanceMetric as DistanceMetric
from ..metrics._dist_metrics import METRIC_MAPPING as METRIC_MAPPING
from ..metrics.pairwise import paired_distances as paired_distances
from ..utils import check_array as check_array
from ..utils._fast_dict import IntFloatDict as IntFloatDict
from ..utils._param_validation import HasMethods as HasMethods, Hidden as Hidden, Interval as Interval, StrOptions as StrOptions
from ..utils.validation import check_memory as check_memory
from ._feature_agglomeration import AgglomerationTransform

###############################################################################
Expand Down
13 changes: 0 additions & 13 deletions stubs/sklearn/cluster/_bicluster.pyi
Original file line number Diff line number Diff line change
@@ -1,25 +1,12 @@
from abc import ABCMeta, abstractmethod
from numbers import Integral as Integral
from typing import Any, ClassVar, Literal
from typing_extensions import Self

from numpy import ndarray
from numpy.random import RandomState
from scipy.linalg import norm as norm
from scipy.sparse import dia_matrix as dia_matrix, issparse as issparse
from scipy.sparse.linalg import eigsh as eigsh, svds as svds

from .._typing import ArrayLike, Int, MatrixLike
from ..base import BaseEstimator, BiclusterMixin
from ..utils import check_random_state as check_random_state, check_scalar as check_scalar
from ..utils._param_validation import Interval as Interval, StrOptions as StrOptions
from ..utils.extmath import (
make_nonnegative as make_nonnegative,
randomized_svd as randomized_svd,
safe_sparse_dot as safe_sparse_dot,
)
from ..utils.validation import assert_all_finite as assert_all_finite
from . import KMeans as KMeans, MiniBatchKMeans as MiniBatchKMeans

__all__ = ["SpectralCoclustering", "SpectralBiclustering"]

Expand Down
11 changes: 0 additions & 11 deletions stubs/sklearn/cluster/_birch.pyi
Original file line number Diff line number Diff line change
@@ -1,22 +1,11 @@
from math import sqrt as sqrt
from numbers import Integral as Integral, Real as Real
from typing import Any, ClassVar
from typing_extensions import Self

from numpy import ndarray
from scipy import sparse as sparse
from scipy.sparse import spmatrix

from .._config import config_context as config_context
from .._typing import ArrayLike, Float, Int, MatrixLike
from ..base import BaseEstimator, ClassNamePrefixFeaturesOutMixin, ClusterMixin, TransformerMixin
from ..exceptions import ConvergenceWarning as ConvergenceWarning
from ..metrics import pairwise_distances_argmin as pairwise_distances_argmin
from ..metrics.pairwise import euclidean_distances as euclidean_distances
from ..utils._param_validation import Interval as Interval
from ..utils.extmath import row_norms as row_norms
from ..utils.validation import check_is_fitted as check_is_fitted
from . import AgglomerativeClustering as AgglomerativeClustering

# Authors: Manoj Kumar <manojkumarsivaraj334@gmail.com>
# Alexandre Gramfort <alexandre.gramfort@telecom-paristech.fr>
Expand Down
3 changes: 0 additions & 3 deletions stubs/sklearn/cluster/_bisect_k_means.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@ from numpy import ndarray
from numpy.random import RandomState

from .._typing import ArrayLike, Float, Int, MatrixLike
from ..utils._param_validation import StrOptions as StrOptions
from ..utils.extmath import row_norms as row_norms
from ..utils.validation import check_is_fitted as check_is_fitted, check_random_state as check_random_state
from ._kmeans import _BaseKMeans

# Author: Michal Krawczyk <mkrwczyk.1@gmail.com>
Expand Down
5 changes: 0 additions & 5 deletions stubs/sklearn/cluster/_dbscan.pyi
Original file line number Diff line number Diff line change
@@ -1,15 +1,10 @@
from numbers import Integral as Integral, Real as Real
from typing import Any, Callable, ClassVar, Literal
from typing_extensions import Self

from numpy import ndarray
from scipy import sparse as sparse

from .._typing import ArrayLike, Float, Int, MatrixLike
from ..base import BaseEstimator, ClusterMixin
from ..neighbors import NearestNeighbors as NearestNeighbors
from ..utils._param_validation import Interval as Interval, StrOptions as StrOptions
from ._dbscan_inner import dbscan_inner as dbscan_inner

# Author: Robert Layton <robertlayton@gmail.com>
# Joel Nothman <joel.nothman@gmail.com>
Expand Down
2 changes: 0 additions & 2 deletions stubs/sklearn/cluster/_feature_agglomeration.pyi
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
from numpy import ndarray
from scipy.sparse import issparse as issparse

from .._typing import ArrayLike, MatrixLike
from ..base import TransformerMixin
from ..utils.validation import check_is_fitted as check_is_fitted

# Author: V. Michel, A. Gramfort
# License: BSD 3 clause
Expand Down
28 changes: 1 addition & 27 deletions stubs/sklearn/cluster/_kmeans.pyi
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from abc import ABC, abstractmethod as abstractmethod
from numbers import Integral as Integral, Real as Real
from abc import ABC
from typing import Any, Callable, ClassVar, Literal
from typing_extensions import Self

Expand All @@ -8,31 +7,6 @@ from numpy.random import RandomState

from .._typing import ArrayLike, Float, Int, MatrixLike
from ..base import BaseEstimator, ClassNamePrefixFeaturesOutMixin, ClusterMixin, TransformerMixin
from ..exceptions import ConvergenceWarning as ConvergenceWarning
from ..metrics.pairwise import euclidean_distances as euclidean_distances
from ..utils import check_array as check_array, check_random_state as check_random_state
from ..utils._param_validation import (
Hidden as Hidden,
Interval as Interval,
StrOptions as StrOptions,
validate_params as validate_params,
)
from ..utils._readonly_array_wrapper import ReadonlyArrayWrapper as ReadonlyArrayWrapper
from ..utils.extmath import row_norms as row_norms, stable_cumsum as stable_cumsum
from ..utils.sparsefuncs import mean_variance_axis as mean_variance_axis
from ..utils.sparsefuncs_fast import assign_rows_csr as assign_rows_csr
from ..utils.validation import check_is_fitted as check_is_fitted
from ._k_means_common import CHUNK_SIZE as CHUNK_SIZE
from ._k_means_elkan import (
elkan_iter_chunked_dense as elkan_iter_chunked_dense,
elkan_iter_chunked_sparse as elkan_iter_chunked_sparse,
init_bounds_dense as init_bounds_dense,
init_bounds_sparse as init_bounds_sparse,
)
from ._k_means_lloyd import (
lloyd_iter_chunked_dense as lloyd_iter_chunked_dense,
lloyd_iter_chunked_sparse as lloyd_iter_chunked_sparse,
)

###############################################################################
# Initialization heuristic
Expand Down
Loading