diff options
Diffstat (limited to 'PC/layout/support/options.py')
-rw-r--r-- | PC/layout/support/options.py | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/PC/layout/support/options.py b/PC/layout/support/options.py deleted file mode 100644 index 76d9e34..0000000 --- a/PC/layout/support/options.py +++ /dev/null @@ -1,122 +0,0 @@ -""" -List of optional components. -""" - -__author__ = "Steve Dower <steve.dower@python.org>" -__version__ = "3.8" - - -__all__ = [] - - -def public(f): - __all__.append(f.__name__) - return f - - -OPTIONS = { - "stable": {"help": "stable ABI stub"}, - "pip": {"help": "pip"}, - "distutils": {"help": "distutils"}, - "tcltk": {"help": "Tcl, Tk and tkinter"}, - "idle": {"help": "Idle"}, - "tests": {"help": "test suite"}, - "tools": {"help": "tools"}, - "venv": {"help": "venv"}, - "dev": {"help": "headers and libs"}, - "symbols": {"help": "symbols"}, - "bdist-wininst": {"help": "bdist_wininst support"}, - "underpth": {"help": "a python._pth file", "not-in-all": True}, - "launchers": {"help": "specific launchers"}, - "appxmanifest": {"help": "an appxmanifest"}, - "props": {"help": "a python.props file"}, - "chm": {"help": "the CHM documentation"}, - "html-doc": {"help": "the HTML documentation"}, -} - - -PRESETS = { - "appx": { - "help": "APPX package", - "options": [ - "stable", - "pip", - "distutils", - "tcltk", - "idle", - "venv", - "dev", - "launchers", - "appxmanifest", - # XXX: Disabled for now "precompile", - ], - }, - "nuget": { - "help": "nuget package", - "options": ["stable", "pip", "distutils", "dev", "props"], - }, - "default": { - "help": "development kit package", - "options": [ - "stable", - "pip", - "distutils", - "tcltk", - "idle", - "tests", - "tools", - "venv", - "dev", - "symbols", - "bdist-wininst", - "chm", - ], - }, - "embed": { - "help": "embeddable package", - "options": ["stable", "zip-lib", "flat-dlls", "underpth", "precompile"], - }, -} - - -@public -def get_argparse_options(): - for opt, info in OPTIONS.items(): - help = "When specified, includes {}".format(info["help"]) - if info.get("not-in-all"): - help = "{}. Not affected by --include-all".format(help) - - yield "--include-{}".format(opt), help - - for opt, info in PRESETS.items(): - help = "When specified, includes default options for {}".format(info["help"]) - yield "--preset-{}".format(opt), help - - -def ns_get(ns, key, default=False): - return getattr(ns, key.replace("-", "_"), default) - - -def ns_set(ns, key, value=True): - k1 = key.replace("-", "_") - k2 = "include_{}".format(k1) - if hasattr(ns, k2): - setattr(ns, k2, value) - elif hasattr(ns, k1): - setattr(ns, k1, value) - else: - raise AttributeError("no argument named '{}'".format(k1)) - - -@public -def update_presets(ns): - for preset, info in PRESETS.items(): - if ns_get(ns, "preset-{}".format(preset)): - for opt in info["options"]: - ns_set(ns, opt) - - if ns.include_all: - for opt in OPTIONS: - if OPTIONS[opt].get("not-in-all"): - continue - ns_set(ns, opt) |