diff --git a/changelog.d/3482.misc.rst b/changelog.d/3482.misc.rst new file mode 100644 index 0000000000..10bab94e58 --- /dev/null +++ b/changelog.d/3482.misc.rst @@ -0,0 +1 @@ +Sync with pypa/distutils@274758f1c02048d295efdbc13d2f88d9923547f8, restoring compatibility shim in bdist.format_commands. diff --git a/setuptools/_distutils/command/bdist.py b/setuptools/_distutils/command/bdist.py index 4af1b8e668..c9fdbf131c 100644 --- a/setuptools/_distutils/command/bdist.py +++ b/setuptools/_distutils/command/bdist.py @@ -4,6 +4,8 @@ distribution).""" import os +import warnings + from distutils.core import Command from distutils.errors import DistutilsPlatformError, DistutilsOptionError from distutils.util import get_platform @@ -20,6 +22,16 @@ def show_formats(): pretty_printer.print_help("List of available distribution formats:") +class ListCompat(dict): + # adapter to allow for Setuptools compatibility in format_commands + def append(self, item): + warnings.warn( + """format_commands is now a dict. append is deprecated.""", + DeprecationWarning, + stacklevel=2, + ) + + class bdist(Command): description = "create a built (binary) distribution" @@ -65,18 +77,23 @@ class bdist(Command): default_format = {'posix': 'gztar', 'nt': 'zip'} # Define commands in preferred order for the --help-formats option - format_commands = dict( - rpm=('bdist_rpm', "RPM distribution"), - gztar=('bdist_dumb', "gzip'ed tar file"), - bztar=('bdist_dumb', "bzip2'ed tar file"), - xztar=('bdist_dumb', "xz'ed tar file"), - ztar=('bdist_dumb', "compressed tar file"), - tar=('bdist_dumb', "tar file"), - wininst=('bdist_wininst', "Windows executable installer"), - zip=('bdist_dumb', "ZIP file"), - msi=('bdist_msi', "Microsoft Installer"), + format_commands = ListCompat( + { + 'rpm': ('bdist_rpm', "RPM distribution"), + 'gztar': ('bdist_dumb', "gzip'ed tar file"), + 'bztar': ('bdist_dumb', "bzip2'ed tar file"), + 'xztar': ('bdist_dumb', "xz'ed tar file"), + 'ztar': ('bdist_dumb', "compressed tar file"), + 'tar': ('bdist_dumb', "tar file"), + 'wininst': ('bdist_wininst', "Windows executable installer"), + 'zip': ('bdist_dumb', "ZIP file"), + 'msi': ('bdist_msi', "Microsoft Installer"), + } ) + # for compatibility until consumers only reference format_commands + format_command = format_commands + def initialize_options(self): self.bdist_base = None self.plat_name = None