devinabox: Get the argument parser written (but not wired up).
brett.cannon pushed 36aab8aa3dea to devinabox: http://hg.python.org/devinabox/rev/36aab8aa3dea changeset: 11:36aab8aa3dea user: Brett Cannon <brett@python.org> date: Fri Feb 25 18:13:18 2011 -0800 summary: Get the argument parser written (but not wired up). files: box.py diff --git a/box.py b/box.py --- a/box.py +++ b/box.py @@ -5,12 +5,9 @@ to download) everything you need to contribute to (C)Python's development (sans a compiler): - * Mercurial: source download + * Mercurial: source download & TortoiseHG for 32/64-bit Windows Hg is Python's VCS (Version Control System). - * TortoiseHg: Windows 32/64 - For ease-of-use for Windows users. - * Visual C++ Express: English Web installer So Windows users can compile CPython. OS X users should install XCode (http://developer.apple.com/) and @@ -19,22 +16,22 @@ Linux user should install gcc or clang using their distribution's package managers. - * Python Developer's Guide - "The devguide"; documentation on how to contribute to Python. + * coverage.py: cloned repository + For measuring the coverage of Python's test suite. Includes a + cloned repository instead of the latest release as cutting-edge support + is occasionally needed to support the in-development version of Python. * Python Enhancement Proposals Also known as PEPs. This is included as reference material, especially for PEPs 7 & 8 (the C and Python style guides, respectively). + * Python Developer's Guide + "The devguide"; documentation on how to contribute to Python. + * CPython The included repository clone has branches for all versions of Python either under development or maintenance. - * coverage.py: cloned repository - For measuring the coverage of Python's test suite. Includes a - cloned repository instead of the latest release as cutting-edge support - is occasionally needed to support the in-development version of Python. - Once the requisite code has been checked out, various optional steps can be performed to make the lives of users easier: @@ -288,26 +285,29 @@ def build(self): cmd = 'make' if sys.platform != 'win32' else 'make.bat' - with change_cwd(os.path.join(self.directory, 'Doc'): + with change_cwd(os.path.join(self.directory, 'Doc')): subprocess.check_call([cmd, 'html']) if __name__ == '__main__': import argparse - parser = arparse.ArgumentParser(prog='Python-Dev In a Box') + + all_providers = (CPython, Devguide, PEPs, CoveragePy, Mercurial, + Visual_Studio_Express) + parser = argparse.ArgumentParser(prog='Python-Dev In a Box') subparsers = parser.add_subparsers() # XXX help - parser_create = subparsers.add_parser('create') # XXX help - # XXX --all option - # XXX --basic option (everything that doesn't require a Web browser) - # XXX --miniumum option (cpython, devguide, peps) + parser_create = subparsers.add_parser('create', + help='Create a %(prog)s') + parser_create.add_argument('--build', action='store_true', default=False) + group = parser_create.add_mutually_exclusive_group() + group.add_argument('--all', dest='providers', action='store_const', + const=all_providers, + help='Provide everything (the default)') + group.add_argument('--basic', dest='providers', action='store_const', + const=(CPython, Devguide, PEPs, CoveragePy), + help='Provide the basics people probably are lacking') + group.add_argument('--minimum', dest='providers', action='store_const', + const=(CPython, Devguide, PEPs), + help='Provide the bare minimum to be productive') # XXX --build option - parser_update = subparsers.add_parser('update') # XXX help - # XXX also run build - - - - for provider in (CPython, Devguide, PEPs, Mercurial, CoveragePy, - Visual_Studio_Express,): - print('Creating', provider.__name__.replace('_', ' ')) - provider().create() - print() + # XXX parser_update = subparsers.add_parser('update', help='Update the %(prog)s') # XXX also run build -- Repository URL: http://hg.python.org/devinabox
participants (1)
-
brett.cannon