• Use template for lower-constraints


  • Don’t try to run issubclass on non-classes
  • Removed unused err variable
  • add lib-forward-testing-python3 test job
  • add python 3.6 unit test job
  • switch documentation job to new PTI
  • import zuul job settings from project-config


  • Assure executable name is kept when app is called as module


  • Build universal wheels
  • fix tox python3 overrides
  • support cmd2 0.9.1 in interactive mode


  • update cmd2 dependency to handle py3 only versions
  • Remove travis.yml
  • exclude cmd2 0.8.3 and update to 0.8.4
  • add lower-constraints job
  • fix typos in documentation
  • Updated from global requirements
  • Remove the warning of getargspec removal
  • Align parsed() call with cmd2 versions >= 0.7.3
  • Fix cmd2 doc URL
  • sphinxext: Warn if namespace or command pattern invalid
  • Zuul: Remove project name
  • Updated from global requirements


  • remove -s alias for –sort-columns


  • Remove empty files
  • Add ability to sort data by columns for list commands
  • Updated from global requirements
  • Remove and just pass -c in tox
  • Replace legacy tips jobs with shiny new versions
  • Move doc requirements to doc/requirements.txt
  • do not require installing demo app to build docs
  • add support for legacy command name translation
  • Use in-tree cliffdemo app for docs build
  • Updated from global requirements
  • add bandit to pep8 job
  • sphinxext: Support cliff application
  • Fix PEP8 in gate
  • doc: Cleanup of demoapp doc
  • Generate demoapp CLI refernece
  • Fix codec error when format=csv


  • handle more varied top_level.txt files in distributions


  • show the distribution providing the command in help output
  • Update .gitignore
  • Docs update for more-hooks
  • Updates for stestr
  • Allow command hooks to make changes
  • Updated from global requirements
  • add actual column names to error msg Closes-Bug: 1712876
  • Alias exit to cmd2’s quit command to exit interactive shell
  • Updated from global requirements
  • Update doc on Sphinx integration process
  • Fix regexp for detecting long options
  • sphinxext: Correct issues with usage formatting
  • Move comments up in [extras] section of setup.cfg
  • Updated from global requirements
  • Make openstackdocstheme an optional doc dependency
  • Updated from global requirements
  • doc: minor cleanup
  • Update and replace http with https for doc links
  • doc: Remove blank lines between term and definition
  • trivial: Fix comments in sphinxext module
  • Use assertIsNone(…) instead of assertIs(None,…)
  • Updated from global requirements


  • add tests for display command classes and hooks
  • Run hooks for DisplayCommandBase
  • add –fit-width option to table formatter
  • sphinxext: Add ‘application’ option to the autoprogram directive
  • use openstackdocstheme html context
  • switch from oslosphinx to openstackdocstheme
  • Fix erroneous line in command hook test
  • make smart help formatter test deterministic
  • remove references to distribute in the docs
  • add before and after hooks
  • add hook for get_epilog
  • add hook for manipulating the argument parser
  • Updated from global requirements
  • pass the command name from HelpCommand
  • Adjust completenames tests for cmd2 0.7.3+
  • rearrange existing content to follow new standard
  • sphinext: Use metavar where possible
  • sphinxext: Use ‘argparse.description’, ‘argparse.epilog’
  • sphinxext: Allow configuration of ignorable options
  • sphinxext: Generate better usage examples
  • add cmd_name argument to CompleteCommand
  • Ensure python standard argparse module is loaded
  • Updated from global requirements


  • covert test suite to use testrepository


  • Updated from global requirements
  • Add smart help formatter for command parser
  • Add support for epilogs
  • Add ‘autoprogram-cliff’ Sphinx directive
  • .gitignore: Ignore eggs


  • Use Sphinx 1.5 warning-is-error
  • Update cmd2 fix to still work with 0.6.7
  • Remove support for py34
  • Fix broken test with cmd2 0.7.0
  • Updated from global requirements
  • Updated from global requirements
  • Updated from global requirements
  • Add newline if the output formatter is json


  • Add Constraints support
  • Remove tox environments that no longer work
  • Fix command order
  • Show team and repo badges on README
  • Add print_empty parameter


  • ignore Command docstring when looking for descriptions
  • let the Command get its one-liner description from a class attribute
  • flake8 fix
  • Replace dashes and colons when using bash formatter
  • Show entire command in error message
  • Updated from global requirements
  • Updated from global requirements
  • Fix spelling mistake
  • Add Python 3.5 classifier and venv
  • Updated from global requirements
  • Changed the home-page link
  • Add Apache 2.0 license to source file
  • Updated from global requirements
  • Updated from global requirements
  • Updated from global requirements
  • Updated from global requirements
  • Clean imports in code
  • [doc]Fix URL for ‘setuptools entry points’
  • Fix a typo in comment


  • Avoid ASCII encoding errors when output is redirected
  • Fix cliff URLs in doc and demoapp
  • Remove announce.rst
  • Fix Command class doc typo
  • Updated from global requirements
  • Fixed broken link
  • add formattable columns concept
  • Add tests, cover more cases
  • Updated from global requirements
  • pep8: fix F405 error
  • command: make run() return take_action() value


  • Updated from global requirements
  • Update –max-width help
  • Add more test coverage for shell formatter
  • Add more test coverage for CSV formatter
  • Support multiple sub commands in completion
  • Factorize more test data
  • Factorize some test data
  • Factorize common test code
  • Factorize argparse importing
  • Updated from global requirements
  • Updated from global requirements
  • Add CLIFF_MAX_TERM_WIDTH envvar to complement –max-width
  • Fix prettytable.PrettyTable().max_width wrong usage
  • Fix AttributeError when entry point load failed
  • Distinguish no existed columns in ShowOne
  • Refactor HelpCommand
  • Updated from global requirements
  • Remove httplib2 from test-requirements.txt
  • Sync help message for –help


  • handle empty list in table formatter


  • Drop Python 2.6 support
  • Revert “app,command: disallow abbrev by default”
  • Fixes terminal_width on Windows


  • Updated from global requirements
  • remove openstack-common.conf
  • Add doc for deferred_help parameter
  • Fix pep8 failure
  • app,command: disallow abbrev by default
  • app: work-around abbrev
  • remove unnecessary dependency on argparse
  • Make verbose and quiet mutually exclusive
  • setup: fix Python versions classifiers
  • Don’t import unused logging
  • Don’t use non-existent method of Mock
  • Replace dashes with underscores in bash completion
  • Updated from global requirements
  • Resize columns to fit screen width
  • fix fuzzy search for same-distance case
  • Correct path to docs
  • only use unicodecsv for python 2.x
  • Fix test class docstring for py 3.5


  • Replace ‘r’ with ‘ ‘ for prettytable
  • Implement a json formatter in cliff
  • Implement a yaml formatter in cliff
  • Updated from global requirements
  • Improve help messages


  • Add csv formatter test
  • Fix encoding issue with the default python csv output
  • Remove py26 as a default test from tox.ini
  • Set demo app up with deferred help
  • Add command fuzzy matching
  • Updated from global requirements
  • Remove requirements.txt from tox.ini
  • Updated from global requirements
  • Updated from global requirements
  • Allow subcommands to accept –help when using ‘deferred_help’
  • Updated from global requirements
  • Fix logging config in demo app
  • Use base command for help test
  • Updated from global requirements
  • Include the automatically-generated changelog
  • Updated from global requirements


  • 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
  • fix author contact details
  • Print help on help command


  • Do not check requirements when loading plugins


  • 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


  • Pass user command text to the Command object
  • Document print_help_if_requested method


  • 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
  • Add deprecated attribute to commands
  • Workflow documentation is now in infra-manual


  • print the real error cmd argument
  • Updated from global requirements


  • Update link to docs in README
  • Bring doc build up to standard
  • Add pbr to installation requirements
  • Add more detail to the README
  • Updated from global requirements
  • Add docs environment to tox.ini
  • mock.assert_called_once() is not a valid method
  • Work toward Python 3.4 support and testing
  • warn against sorting requirements


  • Add release notes for 1.7.0
  • Fix stable integration tests
  • Updated from global requirements
  • Clean up default tox environment list
  • Do not allow wheels for stable tests
  • Set the main logger name to match the application
  • CSV formatter should use system-dependent line ending
  • Make show option compatible with Python 2.6
  • Use six.add_metaclass instead of __metaclass__
  • fixed typos found by RETF rules
  • The –variable option to shell format is redundant
  • Expose load_commands publicly
  • Fix wrong method name assert_called_once
  • Updated from global requirements
  • Fix pep8 failures on rule E265


  • Remove PrettyTable from documentation requirements
  • Fix a bug in ShellFormatter’s escaping of double quotes in strings
  • Import from oslo-incubator
  • add doc requirements to venv


  • Add max-width support for table formatter
  • Add value only output formattter
  • Update readme with links to bug tracker and source
  • Move pep8 dependency into pep8 tox test
  • Fix doc build with Python 2.6.x
  • Fix interactive mode with command line args
  • Update .gitreview after repo rename
  • Escape double quotes in shell formatter
  • Add unit test for shell formatter
  • Rename private attribute to avoid conflict
  • Sync with global requirements
  • Add integration tests with known consumers
  • update history for previous change
  • Make the formatters a private part of the command


  • move to pbr for packaging


  • add venv environ to tox config


  • Update history for next release
  • Move to stackforge
  • update history for stevedore change
  • Use stevedore to load formatter plugins
  • use entry points for completion plugins
  • Clean up recursive data handling
  • Always install complete command
  • attribution for bash completion work in history
  • code style fixes
  • code style fixes
  • various python code optimizations; shuffle I/O to shell classes
  • add bash complete
  • Enable debug in help mode
  • Pass the right args when pulling help from commands
  • prepare for 1.4.5 release
  • add pypy test env configuration
  • Update pyparsing dependency to 2.0.1


  • update for release 1.4.4
  • Re-raise Exception on debug mode
  • Add test to check if return code is 2 on unknown command
  • Return code 1 is already use, use code 2 instead
  • Reraise error on debug
  • Display better error message on unknown command, and return code 1
  • update announce file


  • prepare for 1.4.3 release
  • force python2.6 for that test env
  • Provide a default output encoding


  • prepare for release 1.4.2


  • prepare for release 1.4.1
  • Tighten requirements on cmd2
  • remove use of distribute in demo app
  • Fix default encoding issue with python 2.6
  • move tests into cliff package
  • add tests for dict2columns
  • Add dict2columns()
  • turn off distribute in tox


  • prep for release 1.4
  • fix flake8 issues with
  • remove the other traces of distribute
  • Remove explicit depend on distribute
  • update history for recent contribution
  • Expose instantiated interpreter instance and assign it to the ‘interpreter’ variable on the App instance
  • Update announcement for release 1.3.3


  • Prepare for release 1.3.3
  • declare support for python 3.3
  • cmd2 was released, and is compatible
  • Restore compatibility with Prettytable < 0.7.2


  • Prepare 1.3.2 release
  • Bump prettytable version accepted
  • add python 3.3 to tox
  • add style checks to tests
  • Add tests for underscore handling
  • use flake8 for style checks
  • update history.rst with convert_underscores change
  • make converting underscores optional in CommandManager
  • fix version in docs


  • prepare for 1.3.1 release
  • Fix PyParsing dependency
  • Fix typo
  • update history file for previous merge
  • Make list of application commands lexicographically ordered for help command in interactive mode


  • Prepare for 1.3 release
  • clean up history file
  • Document dependency on distribute
  • fix rst formatting in docstring
  • Update history file
  • Add tests for new functionality
  • Allow user to pass argparse_kwargs argument to the build_option_parser method. Those arguments gets passed to the ArgumentParser constructor


  • Set up for 1.2.1 release
  • Remove unused logging import
  • Fix problem with missing izip import in
  • Update announcement file for new release


  • Set up release 1.2
  • Add python2.6 support
  • remove debug print
  • remove tablib from test requirements
  • Fix logging default behavior
  • Fix interactive help command


  • bumping version number for release
  • remove the entry point data for the moved formatters


  • bump the version number to release a clean build


  • Update version and status values
  • Remove tablib formatters from core
  • fix version # in announcement


  • Doc updates for API changes. Clean up docstrings. Bump version to 1.0
  • merge API refactoring work
  • yet more pep8 work
  • fix help and tests for API change
  • Move take_action() to Command
  • more pep8 work
  • Refactor to make it easier to override separate parts in subclasses. Rename get_data() to take_action() so subclasses that do something other than query for values have a clear place to override
  • pep8 cleanup
  • add attribution to history for the previous merge
  • Adding new line to tablib formatters
  • fix tags declaration
  • document updates for 0.7
  • disable py26 tests since I do not have an environment for running them


  • bump version
  • fix interactive command processor to handle multi-part commands, including some that use the same first word as existing commands
  • declare a couple of commands that use builtin command names but use multiple words
  • update changelog
  • set the interactive mode flag before initializing the app so subclasses can check it; handle initialization errors more cleanly
  • add travis-ci status image to developer docs
  • add travis-ci status image to README
  • add a requirements file for travis-ci
  • bogus commit to trigger ci build
  • add configuration file
  • add version num to history file


  • bump version number
  • pass more details to initialize_app so subclasses can decide what sort of initialization to do
  • enable to use in Python2.6


  • remove hard version requirement to unbreak the OpenStack build


  • prepare for 0.5 release
  • document changes in history file
  • make the organization of the classes page a little more clear
  • update formatter documentation
  • fix yaml, html, and json show formatters
  • move the column option so it applies to “show” commands, too
  • add yaml, json, and html formatters
  • move the columns option out of the table formatter and into the lister base
  • make help list commands if none match exactly; fixes #8
  • require at least PrettyTable 0.6 for Python 3 support, fixes #7
  • changes in the prettytable API rolled into the python 3 support update
  • add a tox stage for pep8 testing
  • python 3.2 does not have a unicode type so ignore the error if it is missing
  • move todo list to github issues
  • update todo list
  • note about prettytable and python3
  • refactor ShowOne and Lister to share a common base class
  • more todo notes
  • tests for
  • pass the App to the help action instead of passing just the command manager, since the app has the stout handle we want to use for printing the help
  • 100% coverage of cliff.command
  • 100% coverage for
  • 100% coverage of module
  • let the interactive app set its own prompt
  • add tests for App and fix an issue with error handling and clean_up() in python 3
  • use the stderr handle given to the app instead of assuming the default


  • version number and release note updates for 0.4
  • documentation improvements
  • simplify packaging file for demo app
  • ignore files generated by dev environment
  • first pass at interactive app
  • note to add more options to csv formatter
  • add –prefix option for shell formatter; add docs for shell formatter
  • clean up help text for the other formatters
  • add shell output formatter for single items
  • add longer docstring to show how it is printed by help
  • update todo list
  • fix typo in blog post


  • update blog announcement
  • bump the version number and update the release notes
  • add ShowOne base class for commands that need to show properties of an individual object make the table formatter work as a single object formatter update the docs for the new features
  • handle an empty data set
  • correct the doctoring
  • fix version # in doc build script
  • 0.2 release announcement post


  • bump version number
  • start a release log
  • update doc instructions for getting help
  • only show the one-line description in the command list; add a description of “help”
  • register a custom help action that knows how to print the list of commands available and a help command to generate help for the other commands
  • provide an internal API for applications to register commands without going through setuptools (used for help handler)
  • Use argparse for global arguments
  • fix doc build instructions
  • add some developer instructions and links ot the source repo and bug tracker
  • add announcement blog post source
  • advice from the distutils list was to stick with distribute for now
  • add Makefile with some common release operations
  • add example output to the list formatters
  • add a requirements file for doc build on
  • add some real documentation
  • Add get_data() to the Lister base class
  • remove example that I was using as a syntax reminder
  • Add a link to the docs
  • while looking for documentation on entry points I realized distutils2 doesn’t seem to support them in the same way
  • fill in a real description of the project
  • start sphinx documentation
  • Added a bit more to the README
  • flesh out instructions for using the demo app
  • add a few more ideas
  • Added a README for the demo app
  • Added download url to both files and updated the demo with the new url


  • Added missing distribute setup file
  • move repo link to the dreamhost project
  • more to-do items
  • add demoapp to release package and clean up files being distributed from the test directory
  • notes about work still to be done
  • require PrettyTable package for the table formatter
  • improve error handling when loading formatter plugins
  • add a csv formatter for list apps
  • start creating a subclass of command for producing a list of output in different formats, using prettytable as an example formatter
  • remove unused import
  • better error handling of post-action hook in app
  • Pass the I/O streams into the app
  • add some error handling to App
  • make the log messages slightly easier to parse
  • tweak App api to make it easier to override and perform global actions before and after a command runs
  • use logging for controlling console output verbosity
  • clean up argv handling
  • install nose for tox tests
  • if no arguments are provided at all show the help message
  • replace default –help processor with one that includes the list of subcommands available
  • add debug option to nose
  • clean up dead code
  • include version info when configuring opt parse
  • Sample program with command plugins
  • first pass at an app class that can invoke commands
  • save commands using the name representation to be used in help output; don’t modify the input arg list when searching for the command; return the name of the command found so the app can stuff it into the help text of the command
  • start building command manager
  • change to apache license
  • add tox config file for tests
  • add so install works
  • add and package directory
  • add a basic description to readme
  • convert readme to rst
  • initial commit
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.