setup: make 'clean' command compatible again with distutilsv8.5.0
authorPino Toscano <[email protected]>
Sat, 25 Jun 2022 04:30:45 +0000 (25 06:30 +0200)
committerPino Toscano <[email protected]>
Sat, 25 Jun 2022 04:38:30 +0000 (25 06:38 +0200)
After the switch of 'my_clean' to a simple Command, the 'clean' command
has no more bits for options, resulting in distutils (either external
or embedded in setuptools) complaining about it:

  distutils.errors.DistutilsClassError: command class <class '__main__.my_clean'> must provide 'user_options' attribute (a list of tuples)

To overcome that, provide all the standard bits from options, i.e. the
'user_options' list, and the 'initialize_options' & 'finalize_options'
methods. In addition, add a dummy 'all' option, as distutils wants it:

  error: error in [...]/.pydistutils.cfg: command 'my_clean' has no such option 'all'

Fixes commit a965c91c6fa1275613edbbef75c0422574eb9ff2

Signed-off-by: Pino Toscano <[email protected]>
setup.py

index af7db84..fc64399 100755 (executable)
--- a/setup.py
+++ b/setup.py
@@ -313,6 +313,16 @@ class my_test(Command):
         subprocess.check_call([pytest])
 
 class my_clean(Command):
+    user_options = [
+        ('all', None, 'unused, compatibility with distutils')
+    ]
+
+    def initialize_options(self):
+        self.all = False
+
+    def finalize_options(self):
+        pass
+
     def run(self):
         if os.path.exists("build"):
             shutil.rmtree("build", ignore_errors=True)