From 429ac589e5f290282f91b420350b002a2c519699 Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 19 Aug 2024 18:59:56 -0400 Subject: [PATCH] Override distribution attribute type in all distutils-based commands --- setuptools/command/bdist_rpm.py | 3 +++ setuptools/command/build.py | 4 ++++ setuptools/command/build_clib.py | 4 ++++ setuptools/command/egg_info.py | 2 -- setuptools/command/register.py | 4 ++++ 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/setuptools/command/bdist_rpm.py b/setuptools/command/bdist_rpm.py index abf2b88bfc..e0d4caf2e9 100644 --- a/setuptools/command/bdist_rpm.py +++ b/setuptools/command/bdist_rpm.py @@ -1,3 +1,4 @@ +from ..dist import Distribution from ..warnings import SetuptoolsDeprecationWarning import distutils.command.bdist_rpm as orig @@ -12,6 +13,8 @@ class bdist_rpm(orig.bdist_rpm): disable eggs in RPM distributions. """ + distribution: Distribution # override distutils.dist.Distribution with setuptools.dist.Distribution + def run(self): SetuptoolsDeprecationWarning.emit( "Deprecated command", diff --git a/setuptools/command/build.py b/setuptools/command/build.py index fd53fae8ca..0c5e544804 100644 --- a/setuptools/command/build.py +++ b/setuptools/command/build.py @@ -2,12 +2,16 @@ from typing import Protocol +from ..dist import Distribution + from distutils.command.build import build as _build _ORIGINAL_SUBCOMMANDS = {"build_py", "build_clib", "build_ext", "build_scripts"} class build(_build): + distribution: Distribution # override distutils.dist.Distribution with setuptools.dist.Distribution + # copy to avoid sharing the object with parent class sub_commands = _build.sub_commands[:] diff --git a/setuptools/command/build_clib.py b/setuptools/command/build_clib.py index 5366b0c5c6..9db57ac8a2 100644 --- a/setuptools/command/build_clib.py +++ b/setuptools/command/build_clib.py @@ -1,3 +1,5 @@ +from ..dist import Distribution + import distutils.command.build_clib as orig from distutils import log from distutils.errors import DistutilsSetupError @@ -25,6 +27,8 @@ class build_clib(orig.build_clib): the compiler. """ + distribution: Distribution # override distutils.dist.Distribution with setuptools.dist.Distribution + def build_libraries(self, libraries): for lib_name, build_info in libraries: sources = build_info.get('sources') diff --git a/setuptools/command/egg_info.py b/setuptools/command/egg_info.py index 794ecd3dc3..09255a3240 100644 --- a/setuptools/command/egg_info.py +++ b/setuptools/command/egg_info.py @@ -18,7 +18,6 @@ from setuptools.command import bdist_egg from setuptools.command.sdist import sdist, walk_revctrl from setuptools.command.setopt import edit_config -from setuptools.dist import Distribution from setuptools.glob import glob from .. import _entry_points, _normalization @@ -522,7 +521,6 @@ def _safe_path(self, path): class manifest_maker(sdist): - distribution: Distribution # override distutils.dist.Distribution with setuptools.dist.Distribution template = "MANIFEST.in" def initialize_options(self): diff --git a/setuptools/command/register.py b/setuptools/command/register.py index 575790e5f2..93ef04aa0e 100644 --- a/setuptools/command/register.py +++ b/setuptools/command/register.py @@ -1,5 +1,7 @@ from setuptools.errors import RemovedCommandError +from ..dist import Distribution + import distutils.command.register as orig from distutils import log @@ -7,6 +9,8 @@ class register(orig.register): """Formerly used to register packages on PyPI.""" + distribution: Distribution # override distutils.dist.Distribution with setuptools.dist.Distribution + def run(self): msg = ( "The register command has been removed, use twine to upload "