Removed bits from clean command made redundant by #732

Force --all on stock clean command unless --orig is specified, in
which case "python setup.py clean" behaves like the stock clean
command. Additionally there are now --noeggs to skip egg deletion and
--nopyc to skip pyc deletion.
This commit is contained in:
Gina Häußge 2017-03-09 18:34:28 +01:00
parent 052796d5d2
commit a49772fcf3

View file

@ -52,65 +52,74 @@ def recursively_handle_files(directory, file_matcher, folder_matcher=None, folde
class CleanCommand(_clean):
description = "clean build artifacts"
user_options = []
boolean_options = []
user_options = _clean.user_options + [("orig", None, "behave like original clean command"),
("noeggs", None, "don't clean up eggs"),
("nopyc", None, "don't clean up pyc files")]
boolean_options = _clean.boolean_options + ["orig", "noeggs", "nopyc"]
build_folder = "build"
source_folder = "src"
eggs = []
eggs =None
@classmethod
def for_options(cls, build_folder="build", source_folder="src", eggs=None):
def for_options(cls, source_folder="src", eggs=None):
if eggs is None:
eggs = []
return type(cls)(cls.__name__, (cls,), dict(
build_folder=build_folder,
source_folder=source_folder,
eggs=eggs
))
def initialize_options(self):
pass
_clean.initialize_options(self)
self.orig = None
self.noeggs = None
self.nopyc = None
def finalize_options(self):
pass
_clean.finalize_options(self)
if not self.orig:
self.all = True
def run(self):
_clean.run(self)
# build folder
if os.path.exists(self.__class__.build_folder):
print("Deleting build directory")
shutil.rmtree(self.__class__.build_folder)
if self.orig:
return
# eggs
for egg in self.__class__.eggs:
globbed_eggs = glob.glob(egg)
for globbed_egg in globbed_eggs:
print("Deleting %s directory" % globbed_egg)
shutil.rmtree(globbed_egg)
if not self.noeggs:
for egg in self.eggs:
globbed_eggs = glob.glob(egg)
for globbed_egg in globbed_eggs:
print("deleting '%s' egg" % globbed_egg)
if not self.dry_run:
shutil.rmtree(globbed_egg)
# pyc files
def delete_folder_if_empty(path, applied_handler):
if not applied_handler:
return
if len(os.listdir(path)) == 0:
shutil.rmtree(path)
print("Deleted %s since it was empty" % path)
if not self.nopyc:
def delete_folder_if_empty(path, applied_handler):
if not applied_handler:
return
if len(os.listdir(path)) == 0:
if not self.dry_run:
shutil.rmtree(path)
print("removed %s since it was empty" % path[len(self.source_folder):])
def delete_file(path):
os.remove(path)
print("Deleted %s" % path)
def delete_file(path):
print("removing '%s'" % path[len(self.source_folder):])
if not self.dry_run:
os.remove(path)
import fnmatch
recursively_handle_files(
os.path.abspath(self.__class__.source_folder),
lambda name: fnmatch.fnmatch(name.lower(), "*.pyc"),
folder_matcher=lambda dir, name, path: name != ".git",
folder_handler=delete_folder_if_empty,
file_handler=delete_file
)
import fnmatch
print("recursively removing *.pyc from '%s'" % self.source_folder)
recursively_handle_files(
os.path.abspath(self.source_folder),
lambda name: fnmatch.fnmatch(name.lower(), "*.pyc"),
folder_matcher=lambda dir, name, path: name != ".git",
folder_handler=delete_folder_if_empty,
file_handler=delete_file
)
class NewTranslation(Command):