--- /dev/null
+from _typeshed import Self
+from types import ModuleType
+from typing import Any, Callable, Generic, TypeVar, overload
+from unittest import TestLoader, TestSuite
+
+from setuptools import Command
+
+_T = TypeVar("_T")
+
+class ScanningLoader(TestLoader):
+ def __init__(self) -> None: ...
+ def loadTestsFromModule(self, module: ModuleType, pattern: Any | None = ...) -> list[TestSuite]: ... # type: ignore
+
+class NonDataProperty(Generic[_T]):
+ fget: Callable[..., _T]
+ def __init__(self, fget: Callable[..., _T]) -> None: ...
+ @overload
+ def __get__(self: Self, obj: None, objtype: object = ...) -> Self: ...
+ @overload
+ def __get__(self, obj: Any, objtype: object = ...) -> _T: ...
+
+class test(Command):
+ description: str
+ user_options: Any
+ test_suite: Any
+ test_module: Any
+ test_loader: Any
+ test_runner: Any
+ def initialize_options(self) -> None: ...
+ def finalize_options(self) -> None: ...
+ # TODO: uncomment once https://github.com/python/mypy/pull/10884 is released
+ # def test_args(self): ...
+ def with_project_on_sys_path(self, func) -> None: ...
+ def project_on_sys_path(self, include_dists=...): ...
+ @staticmethod
+ def paths_on_pythonpath(paths) -> None: ...
+ @staticmethod
+ def install_dists(dist): ...
+ def run(self) -> None: ...
+ def run_tests(self) -> None: ...