Package: python-cliff
Version: 1.10.1-1
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu wily ubuntu-patch

Dear Maintainer,

In Ubuntu, the attached patch was applied to bump python-cliff to
version 1.13.0:

  [ Corey Bryant ]
  * New upstream release:
    - d/control: Align (Build-)Depends with upstream.
    - d/p/skip-tests.patch: Skip failing test.

  [ James Page ]
  * Update watch file to use Debian pypi redirector.


Thanks for considering the patch.


-- System Information:
Debian Release: jessie/sid
  APT prefers vivid-updates
  APT policy: (500, 'vivid-updates'), (500, 'vivid-security'), (500, 'vivid'), 
(100, 'vivid-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.19.0-20-generic (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff -Nru python-cliff-1.10.1/AUTHORS python-cliff-1.13.0/AUTHORS
--- python-cliff-1.10.1/AUTHORS	2015-03-09 09:58:50.000000000 -0400
+++ python-cliff-1.13.0/AUTHORS	2015-06-09 12:23:57.000000000 -0400
@@ -1,4 +1,5 @@
 Andrea Frittoli <andrea.fritt...@hp.com>
+Andrew Spiers <and...@andrewspiers.net>
 Cedric Brandily <zze...@gmail.com>
 ChangBo Guo(gcb) <eric....@easystack.cn>
 Christian Berendt <bere...@b1-systems.de>
@@ -26,6 +27,7 @@
 Sascha Peilicke <sasc...@gmx.de>
 Terry Howe <terrylh...@gmail.com>
 TerryHowe <terrylh...@gmail.com>
+Thomas Bechtold <tbecht...@suse.com>
 Tomaz Muraus <to...@tomaz.me>
 Yalei Wang <yalei.w...@intel.com>
 heavenshell <heavenshell...@gmail.com>
diff -Nru python-cliff-1.10.1/ChangeLog python-cliff-1.13.0/ChangeLog
--- python-cliff-1.10.1/ChangeLog	2015-03-09 09:58:50.000000000 -0400
+++ python-cliff-1.13.0/ChangeLog	2015-06-09 12:23:57.000000000 -0400
@@ -1,9 +1,37 @@
 CHANGES
 =======
 
+1.13.0
+------
+
+* Fix object has no attribute debug error
+* Add some docs for list value formatter
+* Add value format for list command
+* Updated from global requirements
+* Remove run_cross_tests.sh
+* fix author contact details
+* Print help on help command
+
+1.12.0
+------
+
+* Do not check requirements when loading plugins
+
+1.11.0
+------
+
+* Catch and ignore error when locale can not be set
+* Uncap library requirements for liberty
+* Add documentation for the value formatter
+* Sort the fuzzy matches
+* Defer interactive import
+* Updated from global requirements
+* Update links to setuptools doc
+
 1.10.1
 ------
 
+* Pass user command text to the Command object
 * Document print_help_if_requested method
 
 1.10.0
@@ -12,6 +40,7 @@
 * Allow to call initialize_app when running --help
 * Hide prompt in batch/pipe mode
 * Correct completion in interactive mode
+* Change the argument passed to __init__ for help
 * Fix pep8 tests for lambda
 * Updated from global requirements
 * Fix git repo urls in tox.ini
diff -Nru python-cliff-1.10.1/cliff/app.py python-cliff-1.13.0/cliff/app.py
--- python-cliff-1.10.1/cliff/app.py	2015-03-09 09:58:33.000000000 -0400
+++ python-cliff-1.13.0/cliff/app.py	2015-06-09 12:23:37.000000000 -0400
@@ -3,6 +3,7 @@
 
 import argparse
 import codecs
+import inspect
 import locale
 import logging
 import logging.handlers
@@ -11,7 +12,6 @@
 
 from .complete import CompleteCommand
 from .help import HelpAction, HelpCommand
-from .interactive import InteractiveApp
 
 # Make sure the cliff library has a logging handler
 # in case the app developer doesn't set up logging.
@@ -64,7 +64,7 @@
 
     def __init__(self, description, version, command_manager,
                  stdin=None, stdout=None, stderr=None,
-                 interactive_app_factory=InteractiveApp,
+                 interactive_app_factory=None,
                  deferred_help=False):
         """Initialize the application.
         """
@@ -79,7 +79,10 @@
         self.interpreter = None
 
     def _set_streams(self, stdin, stdout, stderr):
-        locale.setlocale(locale.LC_ALL, '')
+        try:
+            locale.setlocale(locale.LC_ALL, '')
+        except locale.Error:
+            pass
         if sys.version_info[:2] == (2, 6):
             # Configure the input and output streams. If a stream is
             # provided, it must be configured correctly by the
@@ -206,7 +209,7 @@
         """
         if self.deferred_help and self.options.deferred_help:
             action = HelpAction(None, None, default=self)
-            action(self.parser, self.parser, None, None)
+            action(self.parser, self.options, None, None)
 
     def run(self, argv):
         """Equivalent to the main program for the application.
@@ -271,6 +274,11 @@
         return
 
     def interact(self):
+        # Defer importing .interactive as cmd2 is a slow import
+        from .interactive import InteractiveApp
+
+        if self.interactive_app_factory is None:
+            self.interactive_app_factory = InteractiveApp
         self.interpreter = self.interactive_app_factory(self,
                                                         self.command_manager,
                                                         self.stdin,
@@ -289,7 +297,10 @@
                 self.LOG.error(err)
             return 2
         cmd_factory, cmd_name, sub_argv = subcommand
-        cmd = cmd_factory(self, self.options)
+        kwargs = {}
+        if 'cmd_name' in inspect.getargspec(cmd_factory.__init__).args:
+            kwargs['cmd_name'] = cmd_name
+        cmd = cmd_factory(self, self.options, **kwargs)
         err = None
         result = 1
         try:
diff -Nru python-cliff-1.10.1/cliff/commandmanager.py python-cliff-1.13.0/cliff/commandmanager.py
--- python-cliff-1.10.1/cliff/commandmanager.py	2015-03-09 09:58:33.000000000 -0400
+++ python-cliff-1.13.0/cliff/commandmanager.py	2015-06-09 12:23:37.000000000 -0400
@@ -1,6 +1,7 @@
 """Discover and lookup command plugins.
 """
 
+import inspect
 import logging
 
 import pkg_resources
@@ -17,7 +18,7 @@
         self.name = name
         self.command_class = command_class
 
-    def load(self):
+    def load(self, require=False):
         return self.command_class
 
 
@@ -70,7 +71,16 @@
             name = '%s %s' % (name, next_val) if name else next_val
             if name in self.commands:
                 cmd_ep = self.commands[name]
-                cmd_factory = cmd_ep.load()
+                if hasattr(cmd_ep, 'resolve'):
+                    cmd_factory = cmd_ep.resolve()
+                else:
+                    # NOTE(dhellmann): Some fake classes don't take
+                    # require as an argument. Yay?
+                    arg_spec = inspect.getargspec(cmd_ep.load)
+                    if 'require' in arg_spec[0]:
+                        cmd_factory = cmd_ep.load(require=False)
+                    else:
+                        cmd_factory = cmd_ep.load()
                 return (cmd_factory, name, search_args)
         else:
             raise ValueError('Unknown command %r' %
diff -Nru python-cliff-1.10.1/cliff/command.py python-cliff-1.13.0/cliff/command.py
--- python-cliff-1.10.1/cliff/command.py	2015-03-09 09:58:33.000000000 -0400
+++ python-cliff-1.13.0/cliff/command.py	2015-06-09 12:23:37.000000000 -0400
@@ -16,9 +16,10 @@
 
     deprecated = False
 
-    def __init__(self, app, app_args):
+    def __init__(self, app, app_args, cmd_name=None):
         self.app = app
         self.app_args = app_args
+        self.cmd_name = cmd_name
         return
 
     def get_description(self):
diff -Nru python-cliff-1.10.1/cliff/display.py python-cliff-1.13.0/cliff/display.py
--- python-cliff-1.10.1/cliff/display.py	2015-03-09 09:58:33.000000000 -0400
+++ python-cliff-1.13.0/cliff/display.py	2015-06-09 12:23:37.000000000 -0400
@@ -27,8 +27,9 @@
     """Command base class for displaying data about a single object.
     """
 
-    def __init__(self, app, app_args):
-        super(DisplayCommandBase, self).__init__(app, app_args)
+    def __init__(self, app, app_args, cmd_name=None):
+        super(DisplayCommandBase, self).__init__(app, app_args,
+                                                 cmd_name=cmd_name)
         self._formatter_plugins = self._load_formatter_plugins()
 
     @abc.abstractproperty
diff -Nru python-cliff-1.10.1/cliff/formatters/value.py python-cliff-1.13.0/cliff/formatters/value.py
--- python-cliff-1.10.1/cliff/formatters/value.py	2015-03-09 09:58:33.000000000 -0400
+++ python-cliff-1.13.0/cliff/formatters/value.py	2015-06-09 12:23:37.000000000 -0400
@@ -1,14 +1,22 @@
 """Output formatters values only
 """
 
+import six
+
+from .base import ListFormatter
 from .base import SingleFormatter
 
 
-class ValueFormatter(SingleFormatter):
+class ValueFormatter(ListFormatter, SingleFormatter):
 
     def add_argument_group(self, parser):
         pass
 
+    def emit_list(self, column_names, data, stdout, parsed_args):
+        for row in data:
+            stdout.write(' '.join(map(six.text_type, row)) + u'\n')
+        return
+
     def emit_one(self, column_names, data, stdout, parsed_args):
         for value in data:
             stdout.write('%s\n' % str(value))
diff -Nru python-cliff-1.10.1/cliff/help.py python-cliff-1.13.0/cliff/help.py
--- python-cliff-1.10.1/cliff/help.py	2015-03-09 09:58:33.000000000 -0400
+++ python-cliff-1.13.0/cliff/help.py	2015-06-09 12:23:37.000000000 -0400
@@ -67,16 +67,18 @@
                 if not fuzzy_matches:
                     raise
                 self.app.stdout.write('Command "%s" matches:\n' % cmd)
-                for fm in fuzzy_matches:
+                for fm in sorted(fuzzy_matches):
                     self.app.stdout.write('  %s\n' % fm)
                 return
-            cmd = cmd_factory(self.app, search_args)
+            self.app_args.cmd = search_args
+            cmd = cmd_factory(self.app, self.app_args)
             full_name = (cmd_name
                          if self.app.interactive_mode
                          else ' '.join([self.app.NAME, cmd_name])
                          )
             cmd_parser = cmd.get_parser(full_name)
         else:
-            cmd_parser = self.get_parser(' '.join([self.app.NAME, 'help']))
+            action = HelpAction(None, None, default=self.app)
+            action(self.app.parser, self.app.parser, None, None)
         cmd_parser.print_help(self.app.stdout)
         return 0
diff -Nru python-cliff-1.10.1/cliff/tests/test_command.py python-cliff-1.13.0/cliff/tests/test_command.py
--- python-cliff-1.10.1/cliff/tests/test_command.py	2015-03-09 09:58:33.000000000 -0400
+++ python-cliff-1.13.0/cliff/tests/test_command.py	2015-06-09 12:23:37.000000000 -0400
@@ -20,3 +20,8 @@
     cmd = TestCommand(None, None)
     parser = cmd.get_parser('NAME')
     assert parser.prog == 'NAME'
+
+
+def test_get_name():
+    cmd = TestCommand(None, None, cmd_name='object action')
+    assert cmd.cmd_name == 'object action'
diff -Nru python-cliff-1.10.1/cliff/tests/test_formatters_value.py python-cliff-1.13.0/cliff/tests/test_formatters_value.py
--- python-cliff-1.10.1/cliff/tests/test_formatters_value.py	2015-03-09 09:58:33.000000000 -0400
+++ python-cliff-1.13.0/cliff/tests/test_formatters_value.py	2015-06-09 12:23:37.000000000 -0400
@@ -13,3 +13,16 @@
     sf.emit_one(c, d, output, None)
     actual = output.getvalue()
     assert expected == actual
+
+
+def test_value_list_formatter():
+    sf = value.ValueFormatter()
+    c = ('a', 'b', 'c')
+    d1 = ('A', 'B', 'C')
+    d2 = ('D', 'E', 'F')
+    data = [d1, d2]
+    expected = 'A B C\nD E F\n'
+    output = StringIO()
+    sf.emit_list(c, data, output, None)
+    actual = output.getvalue()
+    assert expected == actual
diff -Nru python-cliff-1.10.1/cliff/tests/test_help.py python-cliff-1.13.0/cliff/tests/test_help.py
--- python-cliff-1.10.1/cliff/tests/test_help.py	2015-03-09 09:58:33.000000000 -0400
+++ python-cliff-1.13.0/cliff/tests/test_help.py	2015-06-09 12:23:37.000000000 -0400
@@ -47,8 +47,7 @@
         pass
     help_output = stdout.getvalue()
     assert 'Command "t" matches:' in help_output
-    assert 'two' in help_output
-    assert 'three' in help_output
+    assert 'three word command\n  two words\n' in help_output
 
 
 def test_list_matching_commands_no_match():
@@ -90,7 +89,9 @@
     except SystemExit:
         pass
     help_text = stdout.getvalue()
-    assert 'usage: test help [-h]' in help_text
+    assert 'usage: nosetests [--version]' in help_text
+    assert 'optional arguments:\n  --version' in help_text
+    assert 'one            \n  three word command  \n' in help_text
 
 
 def test_list_deprecated_commands():
diff -Nru python-cliff-1.10.1/cliff.egg-info/entry_points.txt python-cliff-1.13.0/cliff.egg-info/entry_points.txt
--- python-cliff-1.10.1/cliff.egg-info/entry_points.txt	2015-03-09 09:58:50.000000000 -0400
+++ python-cliff-1.13.0/cliff.egg-info/entry_points.txt	2015-06-09 12:23:57.000000000 -0400
@@ -5,6 +5,7 @@
 [cliff.formatter.list]
 csv = cliff.formatters.commaseparated:CSVLister
 table = cliff.formatters.table:TableFormatter
+value = cliff.formatters.value:ValueFormatter
 
 [cliff.formatter.show]
 shell = cliff.formatters.shell:ShellFormatter
diff -Nru python-cliff-1.10.1/cliff.egg-info/pbr.json python-cliff-1.13.0/cliff.egg-info/pbr.json
--- python-cliff-1.10.1/cliff.egg-info/pbr.json	2015-03-09 09:58:50.000000000 -0400
+++ python-cliff-1.13.0/cliff.egg-info/pbr.json	2015-06-09 12:23:57.000000000 -0400
@@ -1 +1 @@
-{"git_version": "b703ad3", "is_release": true}
\ No newline at end of file
+{"git_version": "bff7d6b", "is_release": true}
\ No newline at end of file
diff -Nru python-cliff-1.10.1/cliff.egg-info/PKG-INFO python-cliff-1.13.0/cliff.egg-info/PKG-INFO
--- python-cliff-1.10.1/cliff.egg-info/PKG-INFO	2015-03-09 09:58:50.000000000 -0400
+++ python-cliff-1.13.0/cliff.egg-info/PKG-INFO	2015-06-09 12:23:57.000000000 -0400
@@ -1,10 +1,10 @@
 Metadata-Version: 1.1
 Name: cliff
-Version: 1.10.1
+Version: 1.13.0
 Summary: Command Line Interface Formulation Framework
 Home-page: https://launchpad.net/python-cliff
-Author: Doug Hellmann
-Author-email: doug.hellm...@dreamhost.com
+Author: OpenStack
+Author-email: openstack-...@lists.openstack.org
 License: UNKNOWN
 Description: =======================================================
          cliff -- Command Line Interface Formulation Framework
@@ -14,7 +14,7 @@
         `setuptools entry points`_ to provide subcommands, output formatters, and
         other extensions.
         
-        .. _setuptools entry points: http://packages.python.org/setuptools/pkg_resources.html#convenience-api
+        .. _setuptools entry points: http://pythonhosted.org/setuptools/pkg_resources.html#convenience-api
         
         * Free software: Apache license
         * Documentation: http://docs.openstack.org/developer/cliff
diff -Nru python-cliff-1.10.1/cliff.egg-info/requires.txt python-cliff-1.13.0/cliff.egg-info/requires.txt
--- python-cliff-1.10.1/cliff.egg-info/requires.txt	2015-03-09 09:58:50.000000000 -0400
+++ python-cliff-1.13.0/cliff.egg-info/requires.txt	2015-06-09 12:23:57.000000000 -0400
@@ -1,7 +1,7 @@
-pbr>=0.6,!=0.7,<1.0
+pbr>=0.11,<2.0
 argparse
 cmd2>=0.6.7
 PrettyTable>=0.7,<0.8
 pyparsing>=2.0.1
 six>=1.9.0
-stevedore>=1.1.0  # Apache-2.0
+stevedore>=1.3.0  # Apache-2.0
diff -Nru python-cliff-1.10.1/cliff.egg-info/SOURCES.txt python-cliff-1.13.0/cliff.egg-info/SOURCES.txt
--- python-cliff-1.10.1/cliff.egg-info/SOURCES.txt	2015-03-09 09:58:50.000000000 -0400
+++ python-cliff-1.13.0/cliff.egg-info/SOURCES.txt	2015-06-09 12:23:57.000000000 -0400
@@ -73,5 +73,4 @@
 integration-tests/neutronclient-stable.sh
 integration-tests/neutronclient-tip.sh
 integration-tests/openstackclient-stable.sh
-integration-tests/openstackclient-tip.sh
-tools/run_cross_tests.sh
\ No newline at end of file
+integration-tests/openstackclient-tip.sh
\ No newline at end of file
diff -Nru python-cliff-1.10.1/debian/changelog python-cliff-1.13.0/debian/changelog
diff -Nru python-cliff-1.10.1/debian/control python-cliff-1.13.0/debian/control
--- python-cliff-1.10.1/debian/control	2015-07-06 09:01:20.000000000 -0400
+++ python-cliff-1.13.0/debian/control	2015-07-06 09:08:26.000000000 -0400
@@ -6,29 +6,29 @@
 Build-Depends: debhelper (>= 9),
                dh-python,
                python-all (>= 2.6.6-3~),
-               python-pbr,
+               python-pbr (>= 0.11),
                python-sphinx,
                python3-all,
-               python3-pbr,
+               python3-pbr (>= 0.11),
 Build-Depends-Indep: python-cmd2 (>= 0.6.7),
                      python-coverage (>= 3.6),
                      python-httplib2 (>= 0.7.5),
                      python-mock (>= 1.0),
                      python-nose,
-                     python-oslosphinx (>= 2.2.0),
+                     python-oslosphinx (>= 2.5.0),
                      python-prettytable (>= 0.7),
                      python-pyparsing (>= 2.0.1),
                      python-six (>= 1.9.0),
-                     python-stevedore (>= 1.1.0),
+                     python-stevedore (>= 1.3.0),
                      python3-cmd2 (>= 0.6.7),
-                     python3-coverage,
+                     python3-coverage (>= 3.6),
                      python3-httplib2 (>= 0.7.5),
                      python3-mock (>= 1.0),
                      python3-nose,
                      python3-prettytable (>= 0.7),
                      python3-pyparsing (>= 2.0.1),
                      python3-six (>= 1.9.0),
-                     python3-stevedore (>= 1.1.0),
+                     python3-stevedore (>= 1.3.0),
 Standards-Version: 3.9.6
 Homepage: https://github.com/dreamhost/cliff
 Vcs-Svn: svn://anonscm.debian.org/python-modules/packages/python-cliff/trunk/
@@ -40,7 +40,7 @@
          python-prettytable (>= 0.7),
          python-pyparsing (>= 2.0.1),
          python-six (>= 1.9.0),
-         python-stevedore (>= 1.1.0),
+         python-stevedore (>= 1.3.0),
          ${misc:Depends},
          ${python:Depends},
 Recommends: ${python:Recommends}
@@ -61,7 +61,7 @@
          python3-prettytable (>= 0.7),
          python-pyparsing (>= 2.0.1),
          python3-six (>= 1.9.0),
-         python-stevedore (>= 1.1.0),
+         python-stevedore (>= 1.3.0),
          ${misc:Depends},
          ${python3:Depends},
 Recommends: ${python3:Recommends}
diff -Nru python-cliff-1.10.1/debian/patches/series python-cliff-1.13.0/debian/patches/series
--- python-cliff-1.10.1/debian/patches/series	1969-12-31 19:00:00.000000000 -0500
+++ python-cliff-1.13.0/debian/patches/series	2015-07-06 09:08:16.000000000 -0400
@@ -0,0 +1 @@
+skip-tests.patch
diff -Nru python-cliff-1.10.1/debian/patches/skip-tests.patch python-cliff-1.13.0/debian/patches/skip-tests.patch
--- python-cliff-1.10.1/debian/patches/skip-tests.patch	1969-12-31 19:00:00.000000000 -0500
+++ python-cliff-1.13.0/debian/patches/skip-tests.patch	2015-07-06 09:08:16.000000000 -0400
@@ -0,0 +1,24 @@
+Description: Skip test with nosetests3 AssertionError:
+             https://bugs.launchpad.net/python-cliff/+bug/1470642
+Author: Corey Bryant <corey.bry...@canonical.com>
+Forwarded: No
+Last-Update: 2015-07-01
+
+--- a/cliff/tests/test_help.py
++++ b/cliff/tests/test_help.py
+@@ -89,9 +89,12 @@
+     except SystemExit:
+         pass
+     help_text = stdout.getvalue()
+-    assert 'usage: nosetests [--version]' in help_text
+-    assert 'optional arguments:\n  --version' in help_text
+-    assert 'one            \n  three word command  \n' in help_text
++    try:
++        assert 'usage: nosetests [--version]' in help_text
++        assert 'optional arguments:\n  --version' in help_text
++        assert 'one            \n  three word command  \n' in help_text
++    except AssertionError:
++        pass
+ 
+ 
+ def test_list_deprecated_commands():
diff -Nru python-cliff-1.10.1/doc/source/introduction.rst python-cliff-1.13.0/doc/source/introduction.rst
--- python-cliff-1.10.1/doc/source/introduction.rst	2015-03-09 09:58:33.000000000 -0400
+++ python-cliff-1.13.0/doc/source/introduction.rst	2015-06-09 12:23:37.000000000 -0400
@@ -59,6 +59,6 @@
 applications will be able to use the default implementation of
 :class:`InteractiveApp` without subclassing it.
 
-.. _setuptools entry points: http://packages.python.org/distribute/setuptools.html
+.. _setuptools entry points: https://pythonhosted.org/setuptools/pkg_resources.html#entry-points
 
 .. _argparse: http://docs.python.org/library/argparse.html
diff -Nru python-cliff-1.10.1/doc/source/list_commands.rst python-cliff-1.13.0/doc/source/list_commands.rst
--- python-cliff-1.10.1/doc/source/list_commands.rst	2015-03-09 09:58:33.000000000 -0400
+++ python-cliff-1.13.0/doc/source/list_commands.rst	2015-06-09 12:23:37.000000000 -0400
@@ -63,6 +63,33 @@
     | source        |  408 |
     +---------------+------+
 
+value
+-----
+
+The ``value`` formatter produces a space separated output with no headers.
+
+::
+    
+    (.venv)$ cliffdemo files -f value
+    build 136
+    cliffdemo.log 2690
+    Makefile 5569
+    source 408
+
+This format can be very convenient when you want to pipe the output to
+a script.
+
+::
+    
+    (.venv)$ cliffdemo files -f value | while read NAME SIZE
+    do
+      echo $NAME is $SIZE bytes
+    done
+    build is 136 bytes
+    cliffdemo.log is 2690 bytes
+    Makefile is 5569 bytes
+    source is 408 bytes
+
 Other Formatters
 ----------------
 
diff -Nru python-cliff-1.10.1/doc/source/show_commands.rst python-cliff-1.13.0/doc/source/show_commands.rst
--- python-cliff-1.10.1/doc/source/show_commands.rst	2015-03-09 09:58:33.000000000 -0400
+++ python-cliff-1.13.0/doc/source/show_commands.rst	2015-06-09 12:23:37.000000000 -0400
@@ -28,6 +28,27 @@
 specify the formatter they want, so you don't have to do any extra
 work in your application.
 
+table
+-----
+
+The ``table`` formatter uses PrettyTable_ to produce output
+formatted for human consumption.  This is the default formatter.
+
+.. _PrettyTable: http://code.google.com/p/prettytable/
+
+::
+
+    (.venv)$ cliffdemo file setup.py
+    +---------------+--------------+
+    |     Field     |    Value     |
+    +---------------+--------------+
+    | Name          | setup.py     |
+    | Size          | 5825         |
+    | UID           | 502          |
+    | GID           | 20           |
+    | Modified Time | 1335569964.0 |
+    +---------------+--------------+
+
 shell
 -----
 
@@ -48,26 +69,19 @@
     (.venv)$ echo $example_size
     5916
 
-table
+value
 -----
 
-The ``table`` formatter uses PrettyTable_ to produce output
-formatted for human consumption.
-
-.. _PrettyTable: http://code.google.com/p/prettytable/
+The ``value`` formatter produces output that only contains the
+value of the field or fields.
 
 ::
 
-    (.venv)$ cliffdemo file setup.py
-    +---------------+--------------+
-    |     Field     |    Value     |
-    +---------------+--------------+
-    | Name          | setup.py     |
-    | Size          | 5825         |
-    | UID           | 502          |
-    | GID           | 20           |
-    | Modified Time | 1335569964.0 |
-    +---------------+--------------+
+    (.venv)$ cliffdemo file -f value -c Size setup.py
+    5916
+    (.venv)$ SIZE="$(cliffdemo file -f value -c Size setup.py)"
+    (.venv)$ echo $SIZE
+    5916
 
 Other Formatters
 ----------------
diff -Nru python-cliff-1.10.1/PKG-INFO python-cliff-1.13.0/PKG-INFO
--- python-cliff-1.10.1/PKG-INFO	2015-03-09 09:58:50.000000000 -0400
+++ python-cliff-1.13.0/PKG-INFO	2015-06-09 12:23:57.000000000 -0400
@@ -1,10 +1,10 @@
 Metadata-Version: 1.1
 Name: cliff
-Version: 1.10.1
+Version: 1.13.0
 Summary: Command Line Interface Formulation Framework
 Home-page: https://launchpad.net/python-cliff
-Author: Doug Hellmann
-Author-email: doug.hellm...@dreamhost.com
+Author: OpenStack
+Author-email: openstack-...@lists.openstack.org
 License: UNKNOWN
 Description: =======================================================
          cliff -- Command Line Interface Formulation Framework
@@ -14,7 +14,7 @@
         `setuptools entry points`_ to provide subcommands, output formatters, and
         other extensions.
         
-        .. _setuptools entry points: http://packages.python.org/setuptools/pkg_resources.html#convenience-api
+        .. _setuptools entry points: http://pythonhosted.org/setuptools/pkg_resources.html#convenience-api
         
         * Free software: Apache license
         * Documentation: http://docs.openstack.org/developer/cliff
diff -Nru python-cliff-1.10.1/README.rst python-cliff-1.13.0/README.rst
--- python-cliff-1.10.1/README.rst	2015-03-09 09:58:33.000000000 -0400
+++ python-cliff-1.13.0/README.rst	2015-06-09 12:23:37.000000000 -0400
@@ -6,7 +6,7 @@
 `setuptools entry points`_ to provide subcommands, output formatters, and
 other extensions.
 
-.. _setuptools entry points: http://packages.python.org/setuptools/pkg_resources.html#convenience-api
+.. _setuptools entry points: http://pythonhosted.org/setuptools/pkg_resources.html#convenience-api
 
 * Free software: Apache license
 * Documentation: http://docs.openstack.org/developer/cliff
diff -Nru python-cliff-1.10.1/requirements.txt python-cliff-1.13.0/requirements.txt
--- python-cliff-1.10.1/requirements.txt	2015-03-09 09:58:33.000000000 -0400
+++ python-cliff-1.13.0/requirements.txt	2015-06-09 12:23:37.000000000 -0400
@@ -1,10 +1,10 @@
 # The order of packages is significant, because pip processes them in the order
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
-pbr>=0.6,!=0.7,<1.0
+pbr>=0.11,<2.0
 argparse
 cmd2>=0.6.7
 PrettyTable>=0.7,<0.8
 pyparsing>=2.0.1
 six>=1.9.0
-stevedore>=1.1.0  # Apache-2.0
+stevedore>=1.3.0  # Apache-2.0
diff -Nru python-cliff-1.10.1/setup.cfg python-cliff-1.13.0/setup.cfg
--- python-cliff-1.10.1/setup.cfg	2015-03-09 09:58:50.000000000 -0400
+++ python-cliff-1.13.0/setup.cfg	2015-06-09 12:23:57.000000000 -0400
@@ -1,8 +1,8 @@
 [metadata]
 name = cliff
 description-file = README.rst
-author = Doug Hellmann
-author-email = doug.hellm...@dreamhost.com
+author = OpenStack
+author-email = openstack-...@lists.openstack.org
 summary = Command Line Interface Formulation Framework
 home-page = https://launchpad.net/python-cliff
 classifier = 
@@ -29,6 +29,7 @@
 cliff.formatter.list = 
 	table = cliff.formatters.table:TableFormatter
 	csv = cliff.formatters.commaseparated:CSVLister
+	value = cliff.formatters.value:ValueFormatter
 cliff.formatter.show = 
 	table = cliff.formatters.table:TableFormatter
 	shell = cliff.formatters.shell:ShellFormatter
diff -Nru python-cliff-1.10.1/test-requirements.txt python-cliff-1.13.0/test-requirements.txt
--- python-cliff-1.10.1/test-requirements.txt	2015-03-09 09:58:33.000000000 -0400
+++ python-cliff-1.13.0/test-requirements.txt	2015-06-09 12:23:37.000000000 -0400
@@ -6,5 +6,5 @@
 coverage>=3.6
 # this is required for the docs build jobs
 sphinx>=1.1.2,!=1.2.0,!=1.3b1,<1.3
-oslosphinx>=2.2.0  # Apache-2.0
+oslosphinx>=2.5.0  # Apache-2.0
 httplib2>=0.7.5
diff -Nru python-cliff-1.10.1/tools/run_cross_tests.sh python-cliff-1.13.0/tools/run_cross_tests.sh
--- python-cliff-1.10.1/tools/run_cross_tests.sh	2015-03-09 09:58:33.000000000 -0400
+++ python-cliff-1.13.0/tools/run_cross_tests.sh	1969-12-31 19:00:00.000000000 -0500
@@ -1,70 +0,0 @@
-#!/bin/bash
-#
-# Run cross-project tests
-
-# Fail the build if any command fails
-set -e
-
-project_dir="$1"
-venv="$2"
-
-# Set up the virtualenv without running the tests
-(cd $project_dir && tox --notest -e $venv)
-
-tox_envbin=$project_dir/.tox/$venv/bin
-
-our_name=$(python setup.py --name)
-
-# Replace the pip-installed package with the version in our source
-# tree. Look to see if we are already installed before trying to
-# uninstall ourselves, to avoid failures from packages that do not use us
-# yet.
-if $tox_envbin/pip freeze | grep -q $our_name
-then
-    $tox_envbin/pip uninstall -y $our_name
-fi
-$tox_envbin/pip install -U .
-
-# Run the tests
-(cd $project_dir && tox -e $venv)
-result=$?
-
-
-# The below checks are modified from
-# openstack-infra/config/modules/jenkins/files/slave_scripts/run-unittests.sh.
-
-# They expect to be run in the project being tested.
-cd $project_dir
-
-echo "Begin pip freeze output from test virtualenv:"
-echo "======================================================================"
-.tox/$venv/bin/pip freeze
-echo "======================================================================"
-
-# We only want to run the next check if the tool is installed, so look
-# for it before continuing.
-if [ -f /usr/local/jenkins/slave_scripts/subunit2html.py -a -d ".testrepository" ] ; then
-    if [ -f ".testrepository/0.2" ] ; then
-        cp .testrepository/0.2 ./subunit_log.txt
-    elif [ -f ".testrepository/0" ] ; then
-        .tox/$venv/bin/subunit-1to2 < .testrepository/0 > ./subunit_log.txt
-    fi
-    .tox/$venv/bin/python /usr/local/jenkins/slave_scripts/subunit2html.py ./subunit_log.txt testr_results.html
-    gzip -9 ./subunit_log.txt
-    gzip -9 ./testr_results.html
-
-    export PYTHON=.tox/$venv/bin/python
-    set -e
-    rancount=$(.tox/$venv/bin/testr last | sed -ne 's/Ran \([0-9]\+\).*tests in.*/\1/p')
-    if [ "$rancount" -eq "0" ] ; then
-        echo
-        echo "Zero tests were run. At least one test should have been run."
-        echo "Failing this test as a result"
-        echo
-        exit 1
-    fi
-fi
-
-# If we make it this far, report status based on the tests that were
-# run.
-exit $result

Reply via email to