summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/conf.py7
-rw-r--r--docs/pscripts/pcreate.rst5
-rw-r--r--pyramid/scaffolds/template.py8
-rw-r--r--pyramid/scripts/pcreate.py56
-rw-r--r--pyramid/scripts/pdistreport.py4
-rw-r--r--setup.py2
6 files changed, 40 insertions, 42 deletions
diff --git a/docs/conf.py b/docs/conf.py
index 12dd27722..5496452bd 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -51,11 +51,10 @@ book = os.environ.get('BOOK')
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.doctest',
- 'sphinx.ext.intersphinx',
- 'sphinx.ext.todo',
- 'sphinx.ext.viewcode',
'repoze.sphinx.autointerface',
- 'sphinxcontrib.programoutput',
+ 'sphinx.ext.viewcode',
+ 'sphinx.ext.intersphinx',
+ 'sphinxcontrib.autoprogram',
# enable pylons_sphinx_latesturl when this branch is no longer "latest"
# 'pylons_sphinx_latesturl',
]
diff --git a/docs/pscripts/pcreate.rst b/docs/pscripts/pcreate.rst
index b5ec3f4e2..7159395b7 100644
--- a/docs/pscripts/pcreate.rst
+++ b/docs/pscripts/pcreate.rst
@@ -6,8 +6,7 @@
``pcreate``
-----------
-.. program-output:: pcreate --help
- :prompt:
- :shell:
+.. autoprogram:: pyramid.scripts.pcreate:PCreateCommand
+ :prog: pcreate.py
.. seealso:: :ref:`creating_a_project`
diff --git a/pyramid/scaffolds/template.py b/pyramid/scaffolds/template.py
index d88f5b2a6..e5098e815 100644
--- a/pyramid/scaffolds/template.py
+++ b/pyramid/scaffolds/template.py
@@ -81,7 +81,7 @@ class Template(object):
template_dir = self.template_dir()
if not self.exists(output_dir):
self.out("Creating directory %s" % output_dir)
- if not command.options.simulate:
+ if not command.args.simulate:
# Don't let copydir create this top-level directory,
# since copydir will svn add it sometimes:
self.makedirs(output_dir)
@@ -90,9 +90,9 @@ class Template(object):
output_dir,
vars,
verbosity=command.verbosity,
- simulate=command.options.simulate,
- interactive=command.options.interactive,
- overwrite=command.options.overwrite,
+ simulate=command.args.simulate,
+ interactive=command.args.interactive,
+ overwrite=command.args.overwrite,
indent=1,
template_renderer=self.render_template,
)
diff --git a/pyramid/scripts/pcreate.py b/pyramid/scripts/pcreate.py
index b3e3b65fa..ba4fcc8ae 100644
--- a/pyramid/scripts/pcreate.py
+++ b/pyramid/scripts/pcreate.py
@@ -2,7 +2,7 @@
# (http://pythonpaste.org) Licensed under the MIT license:
# http://www.opensource.org/licenses/mit-license.php
-import optparse
+import argparse
import os
import os.path
import pkg_resources
@@ -22,79 +22,79 @@ def main(argv=sys.argv, quiet=False):
class PCreateCommand(object):
verbosity = 1 # required
- description = """\
+ parser = argparse.ArgumentParser(description="""\
Render Pyramid scaffolding to an output directory.
Note: As of Pyramid 1.8, this command is deprecated. Use a specific
cookiecutter instead:
https://github.com/Pylons/?q=cookiecutter
-"""
- usage = "usage: %prog [options] -s <scaffold> output_directory"
- parser = optparse.OptionParser(usage, description=description)
- parser.add_option('-s', '--scaffold',
+""")
+ parser.add_argument('-s', '--scaffold',
dest='scaffold_name',
action='append',
help=("Add a scaffold to the create process "
"(multiple -s args accepted)"))
- parser.add_option('-t', '--template',
+ parser.add_argument('-t', '--template',
dest='scaffold_name',
action='append',
help=('A backwards compatibility alias for '
'-s/--scaffold. Add a scaffold to the '
'create process (multiple -t args accepted)'))
- parser.add_option('-l', '--list',
+ parser.add_argument('-l', '--list',
dest='list',
action='store_true',
help="List all available scaffold names")
- parser.add_option('--list-templates',
+ parser.add_argument('--list-templates',
dest='list',
action='store_true',
help=("A backwards compatibility alias for -l/--list. "
"List all available scaffold names."))
- parser.add_option('--package-name',
+ parser.add_argument('--package-name',
dest='package_name',
action='store',
- type='string',
help='Package name to use. The name provided is assumed '
'to be a valid Python package name, and will not '
'be validated. By default the package name is '
'derived from the value of output_directory.')
- parser.add_option('--simulate',
+ parser.add_argument('--simulate',
dest='simulate',
action='store_true',
help='Simulate but do no work')
- parser.add_option('--overwrite',
+ parser.add_argument('--overwrite',
dest='overwrite',
action='store_true',
help='Always overwrite')
- parser.add_option('--interactive',
+ parser.add_argument('--interactive',
dest='interactive',
action='store_true',
help='When a file would be overwritten, interrogate '
'(this is the default, but you may specify it to '
'override --overwrite)')
- parser.add_option('--ignore-conflicting-name',
+ parser.add_argument('--ignore-conflicting-name',
dest='force_bad_name',
action='store_true',
default=False,
help='Do create a project even if the chosen name '
'is the name of an already existing / importable '
'package.')
+ parser.add_argument('output_directory',
+ help='The directory where the project will be '
+ 'created.')
pyramid_dist = pkg_resources.get_distribution("pyramid")
def __init__(self, argv, quiet=False):
self.quiet = quiet
- self.options, self.args = self.parser.parse_args(argv[1:])
- if not self.options.interactive and not self.options.overwrite:
- self.options.interactive = True
+ self.args = self.parser.parse_args()
+ if not self.args.interactive and not self.args.overwrite:
+ self.args.interactive = True
self.scaffolds = self.all_scaffolds()
def run(self):
self._warn_pcreate_deprecated()
- if self.options.list:
+ if self.args.list:
return self.show_scaffolds()
- if not self.options.scaffold_name and not self.args:
+ if not self.args.scaffold_name and not self.args:
if not self.quiet: # pragma: no cover
self.parser.print_help()
self.out('')
@@ -108,18 +108,18 @@ https://github.com/Pylons/?q=cookiecutter
@property
def output_path(self):
- return os.path.abspath(os.path.normpath(self.args[0]))
+ return os.path.abspath(os.path.normpath(self.args.output_directory))
@property
def project_vars(self):
output_dir = self.output_path
project_name = os.path.basename(os.path.split(output_dir)[1])
- if self.options.package_name is None:
+ if self.args.package_name is None:
pkg_name = _bad_chars_re.sub(
'', project_name.lower().replace('-', '_'))
safe_name = pkg_resources.safe_name(project_name)
else:
- pkg_name = self.options.package_name
+ pkg_name = self.args.package_name
safe_name = pkg_name
egg_name = pkg_resources.to_filename(safe_name)
@@ -152,7 +152,7 @@ https://github.com/Pylons/?q=cookiecutter
def render_scaffolds(self):
props = self.project_vars
output_dir = self.output_path
- for scaffold_name in self.options.scaffold_name:
+ for scaffold_name in self.args.scaffold_name:
for scaffold in self.scaffolds:
if scaffold.name == scaffold_name:
scaffold.run(self, output_dir, props)
@@ -189,7 +189,7 @@ https://github.com/Pylons/?q=cookiecutter
print(msg)
def validate_input(self):
- if not self.options.scaffold_name:
+ if not self.args.scaffold_name:
self.out('You must provide at least one scaffold name: -s <scaffold name>')
self.out('')
self.show_scaffolds()
@@ -198,14 +198,14 @@ https://github.com/Pylons/?q=cookiecutter
self.out('You must provide a project name')
return False
available = [x.name for x in self.scaffolds]
- diff = set(self.options.scaffold_name).difference(available)
+ diff = set(self.args.scaffold_name).difference(available)
if diff:
self.out('Unavailable scaffolds: %s' % ", ".join(sorted(diff)))
return False
pkg_name = self.project_vars['package']
- if pkg_name == 'site' and not self.options.force_bad_name:
+ if pkg_name == 'site' and not self.args.force_bad_name:
self.out('The package name "site" has a special meaning in '
'Python. Are you sure you want to use it as your '
'project\'s name?')
@@ -221,7 +221,7 @@ https://github.com/Pylons/?q=cookiecutter
if not pkg_exists:
return True
- if self.options.force_bad_name:
+ if self.args.force_bad_name:
return True
self.out('A package named "{0}" already exists, are you sure you want '
'to use it as your project\'s name?'.format(pkg_name))
diff --git a/pyramid/scripts/pdistreport.py b/pyramid/scripts/pdistreport.py
index 61098dc27..a504c9545 100644
--- a/pyramid/scripts/pdistreport.py
+++ b/pyramid/scripts/pdistreport.py
@@ -1,7 +1,7 @@
import sys
import platform
import pkg_resources
-import optparse
+import argparse
from operator import itemgetter
def out(*args): # pragma: no cover
@@ -15,7 +15,7 @@ def main(argv=sys.argv, pkg_resources=pkg_resources, platform=platform.platform,
# all args except argv are for unit testing purposes only
description = "Show Python distribution versions and locations in use"
usage = "usage: %prog"
- parser = optparse.OptionParser(usage, description=description)
+ parser = argparse.ArgumentParser(usage, description=description)
parser.parse_args(argv[1:])
packages = []
for distribution in pkg_resources.working_set:
diff --git a/setup.py b/setup.py
index 383991d73..63e82e707 100644
--- a/setup.py
+++ b/setup.py
@@ -64,7 +64,7 @@ docs_extras = [
'repoze.sphinx.autointerface',
'pylons_sphinx_latesturl',
'pylons-sphinx-themes',
- 'sphinxcontrib-programoutput',
+ 'sphinxcontrib-autoprogram',
]
testing_extras = tests_require + [