ยปCore Development>Code coverage>Lib/packaging/command/clean.py

Python code coverage for Lib/packaging/command/clean.py

#countcontent
1n/a"""Clean up temporary files created by the build command."""
2n/a
3n/a# Contributed by Bastian Kleineidam <calvin@cs.uni-sb.de>
4n/a
5n/aimport os
6n/afrom shutil import rmtree
7n/afrom packaging.command.cmd import Command
8n/afrom packaging import logger
9n/a
10n/aclass clean(Command):
11n/a
12n/a description = "clean up temporary files from 'build' command"
13n/a user_options = [
14n/a ('build-base=', 'b',
15n/a "base build directory (default: 'build.build-base')"),
16n/a ('build-lib=', None,
17n/a "build directory for all modules (default: 'build.build-lib')"),
18n/a ('build-temp=', 't',
19n/a "temporary build directory (default: 'build.build-temp')"),
20n/a ('build-scripts=', None,
21n/a "build directory for scripts (default: 'build.build-scripts')"),
22n/a ('bdist-base=', None,
23n/a "temporary directory for built distributions"),
24n/a ('all', 'a',
25n/a "remove all build output, not just temporary by-products")
26n/a ]
27n/a
28n/a boolean_options = ['all']
29n/a
30n/a def initialize_options(self):
31n/a self.build_base = None
32n/a self.build_lib = None
33n/a self.build_temp = None
34n/a self.build_scripts = None
35n/a self.bdist_base = None
36n/a self.all = None
37n/a
38n/a def finalize_options(self):
39n/a self.set_undefined_options('build', 'build_base', 'build_lib',
40n/a 'build_scripts', 'build_temp')
41n/a self.set_undefined_options('bdist', 'bdist_base')
42n/a
43n/a def run(self):
44n/a # remove the build/temp.<plat> directory (unless it's already
45n/a # gone)
46n/a if os.path.exists(self.build_temp):
47n/a if self.dry_run:
48n/a logger.info('removing %s', self.build_temp)
49n/a else:
50n/a rmtree(self.build_temp)
51n/a else:
52n/a logger.debug("'%s' does not exist -- can't clean it",
53n/a self.build_temp)
54n/a
55n/a if self.all:
56n/a # remove build directories
57n/a for directory in (self.build_lib,
58n/a self.bdist_base,
59n/a self.build_scripts):
60n/a if os.path.exists(directory):
61n/a if self.dry_run:
62n/a logger.info('removing %s', directory)
63n/a else:
64n/a rmtree(directory)
65n/a else:
66n/a logger.warning("'%s' does not exist -- can't clean it",
67n/a directory)
68n/a
69n/a # just for the heck of it, try to remove the base build directory:
70n/a # we might have emptied it right now, but if not we don't care
71n/a if not self.dry_run:
72n/a try:
73n/a os.rmdir(self.build_base)
74n/a logger.info("removing '%s'", self.build_base)
75n/a except OSError:
76n/a pass