Path: blob/main/test/lib/python3.9/site-packages/setuptools/_distutils/command/clean.py
4804 views
"""distutils.command.clean12Implements the Distutils 'clean' command."""34# contributed by Bastian Kleineidam <[email protected]>, added 2000-03-1856import os7from distutils.core import Command8from distutils.dir_util import remove_tree9from distutils import log1011class clean(Command):1213description = "clean up temporary files from 'build' command"14user_options = [15('build-base=', 'b',16"base build directory (default: 'build.build-base')"),17('build-lib=', None,18"build directory for all modules (default: 'build.build-lib')"),19('build-temp=', 't',20"temporary build directory (default: 'build.build-temp')"),21('build-scripts=', None,22"build directory for scripts (default: 'build.build-scripts')"),23('bdist-base=', None,24"temporary directory for built distributions"),25('all', 'a',26"remove all build output, not just temporary by-products")27]2829boolean_options = ['all']3031def initialize_options(self):32self.build_base = None33self.build_lib = None34self.build_temp = None35self.build_scripts = None36self.bdist_base = None37self.all = None3839def finalize_options(self):40self.set_undefined_options('build',41('build_base', 'build_base'),42('build_lib', 'build_lib'),43('build_scripts', 'build_scripts'),44('build_temp', 'build_temp'))45self.set_undefined_options('bdist',46('bdist_base', 'bdist_base'))4748def run(self):49# remove the build/temp.<plat> directory (unless it's already50# gone)51if os.path.exists(self.build_temp):52remove_tree(self.build_temp, dry_run=self.dry_run)53else:54log.debug("'%s' does not exist -- can't clean it",55self.build_temp)5657if self.all:58# remove build directories59for directory in (self.build_lib,60self.bdist_base,61self.build_scripts):62if os.path.exists(directory):63remove_tree(directory, dry_run=self.dry_run)64else:65log.warn("'%s' does not exist -- can't clean it",66directory)6768# just for the heck of it, try to remove the base build directory:69# we might have emptied it right now, but if not we don't care70if not self.dry_run:71try:72os.rmdir(self.build_base)73log.info("removing '%s'", self.build_base)74except OSError:75pass767778