Debian

Available patches from Ubuntu

To see Ubuntu differences wrt. to Debian, write down a grep-dctrl query identifying the packages you're interested in:
grep-dctrl -n -sPackage Sources.Debian
(e.g. -FPackage linux-ntfs or linux-ntfs)

Modified packages are listed below:

Debian ( Changelog | PTS | Bugs ) Ubuntu ( Changelog | txt | LP | Bugs ) | Diff from Ubuntu

Source: migrate

migrate (0.13.0-0ubuntu1) focal; urgency=medium * d/gbp.conf: Update gbp configuration file. * d/control: Update Vcs-* links and maintainers. * d/watch: Switch to pypi.debian.net as new release is not available from github. * New upstream release. * d/control: Align (Build-)Depends with upstream. * d/p/*: Rebased. * d/test.sh: Drop use of mysql_install_db as it has been dropped in MySQL 8. Use mysqld to initialize instead. -- Corey Bryant <corey.bryant@canonical.com> Fri, 14 Feb 2020 12:50:22 -0500

Modifications :
  1. Download patch test-requirements-py3.txt

    --- 0.12.0-3/test-requirements-py3.txt 2019-01-22 14:02:49.000000000 +0000 +++ 0.13.0-0ubuntu1/test-requirements-py3.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ibm-db-sa-py3
  2. Download patch PKG-INFO

    --- 0.12.0-3/PKG-INFO 1970-01-01 00:00:00.000000000 +0000 +++ 0.13.0-0ubuntu1/PKG-INFO 2019-10-22 21:15:46.000000000 +0000 @@ -0,0 +1,71 @@ +Metadata-Version: 1.1 +Name: sqlalchemy-migrate +Version: 0.13.0 +Summary: Database schema migration for SQLAlchemy +Home-page: http://www.openstack.org/ +Author: OpenStack +Author-email: openstack-discuss@lists.openstack.org +License: UNKNOWN +Description: SQLAlchemy Migrate + ================== + + Fork from http://code.google.com/p/sqlalchemy-migrate/ to get it working with + SQLAlchemy 0.8. + + Inspired by Ruby on Rails' migrations, Migrate provides a way to deal with + database schema changes in `SQLAlchemy <http://sqlalchemy.org>`_ projects. + + Migrate extends SQLAlchemy to have database changeset handling. It provides a + database change repository mechanism which can be used from the command line as + well as from inside python code. + + Help + ---- + + Sphinx documentation is available at the project page `readthedocs.org + <https://sqlalchemy-migrate.readthedocs.org/>`_. + + Users and developers can be found at #openstack-dev on Freenode IRC + network and at the public users mailing list `migrate-users + <http://groups.google.com/group/migrate-users>`_. + + New releases and major changes are announced at the public announce mailing + list `openstack-dev + <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>`_ + and at the Python package index `sqlalchemy-migrate + <http://pypi.python.org/pypi/sqlalchemy-migrate>`_. + + Homepage is located at `stackforge + <http://github.com/stackforge/sqlalchemy-migrate/>`_ + + You can also clone a current `development version + <http://github.com/stackforge/sqlalchemy-migrate>`_ + + Tests and Bugs + -------------- + + To run automated tests: + + * install tox: ``pip install -U tox`` + * run tox: ``tox`` + * to test only a specific Python version: ``tox -e py27`` (Python 2.7) + + Please report any issues with sqlalchemy-migrate to the issue tracker at + `Launchpad issues + <https://bugs.launchpad.net/sqlalchemy-migrate>`_ + + +Platform: UNKNOWN +Classifier: Environment :: OpenStack +Classifier: Intended Audience :: Information Technology +Classifier: Intended Audience :: System Administrators +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: POSIX :: Linux +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6
  3. Download patch debian/patches/disable_issuetracker.patch

    --- 0.12.0-3/debian/patches/disable_issuetracker.patch 2019-07-16 16:12:38.000000000 +0000 +++ 0.13.0-0ubuntu1/debian/patches/disable_issuetracker.patch 2020-02-14 17:50:22.000000000 +0000 @@ -3,16 +3,7 @@ Author: Michael Terry <michael.terry@can Forwarded: not-needed --- a/doc/source/conf.py +++ b/doc/source/conf.py -@@ -28,7 +28,7 @@ - - # Add any Sphinx extension module names here, as strings. They can be extensions - # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. --extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinxcontrib.issuetracker'] -+extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx'] - - # link to sqlalchemy docs - intersphinx_mapping = { -@@ -96,8 +96,8 @@ +@@ -97,8 +97,8 @@ # Options for sphinxcontrib.issuetracker # --------------------------------------
  4. Download patch debian/test.sh

    --- 0.12.0-3/debian/test.sh 2019-07-16 16:12:38.000000000 +0000 +++ 0.13.0-0ubuntu1/debian/test.sh 2020-02-14 17:50:22.000000000 +0000 @@ -19,7 +19,7 @@ fi # --force is needed because buildd's can't resolve their own hostnames to ips echo "===> Preparing MySQL temp folder" -mysql_install_db --no-defaults --datadir=${MYTEMP_DIR} ${MYSQL_INSTALL_DB_OPT} --user=${ME} +/usr/sbin/mysqld --no-defaults --datadir=${MYTEMP_DIR} ${MYSQL_INSTALL_DB_OPT} --user=${ME} --initialize chown -R ${ME} ${MYTEMP_DIR} echo "===> Starting MySQL" /usr/sbin/mysqld --no-defaults --skip-grant-tables --user=${ME} --socket=${MYTEMP_DIR}/mysql.sock --datadir=${MYTEMP_DIR} --skip-networking &
  5. Download patch sqlalchemy_migrate.egg-info/entry_points.txt

    --- 0.12.0-3/sqlalchemy_migrate.egg-info/entry_points.txt 1970-01-01 00:00:00.000000000 +0000 +++ 0.13.0-0ubuntu1/sqlalchemy_migrate.egg-info/entry_points.txt 2019-10-22 21:15:46.000000000 +0000 @@ -0,0 +1,4 @@ +[console_scripts] +migrate = migrate.versioning.shell:main +migrate-repository = migrate.versioning.migrate_repository:main +
  6. Download patch .gitreview

    --- 0.12.0-3/.gitreview 2019-01-22 14:02:49.000000000 +0000 +++ 0.13.0-0ubuntu1/.gitreview 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -[gerrit] -host=review.openstack.org -port=29418 -project=openstack/sqlalchemy-migrate.git
  7. Download patch debian/control

    --- 0.12.0-3/debian/control 2019-07-16 16:12:38.000000000 +0000 +++ 0.13.0-0ubuntu1/debian/control 2020-02-14 17:50:22.000000000 +0000 @@ -1,7 +1,8 @@ Source: migrate Section: python Priority: optional -Maintainer: Debian OpenStack <team+openstack@tracker.debian.org> +Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +XSBC-Original-Maintainer: Debian OpenStack <team+openstack@tracker.debian.org> Uploaders: Thomas Goirand <zigo@debian.org>, Jan Dittberner <jandd@debian.org>, @@ -9,9 +10,9 @@ Build-Depends: debhelper (>= 10), dh-python, openstack-pkg-tools, - python3-sphinx, + python3-sphinx (>= 1.1.2), python3-all, - python3-pbr, + python3-pbr (>= 1.8), python3-setuptools, Build-Depends-Indep: default-mysql-client | mysql-client, @@ -19,24 +20,24 @@ Build-Depends-Indep: python3-coverage, python3-decorator, python3-feedparser, - python3-fixtures, - python3-mock, + python3-fixtures (>= 0.3.14), + python3-mock (>= 1.2), python3-mysqldb, python3-psycopg2, python3-scripttest, - python3-six, - python3-sqlalchemy, + python3-six (>= 1.7.0), + python3-sqlalchemy (>= 0.9.6), python3-sqlparse, - python3-subunit, - python3-tempita, - python3-testtools, - python3-tz, + python3-subunit (>= 0.0.18), + python3-tempita (>= 0.4), + python3-testtools (>= 0.9.34), + python3-tz (>= 2010h), subunit, testrepository, Standards-Version: 4.3.0 Homepage: https://github.com/openstack/sqlalchemy-migrate -Vcs-Git: https://salsa.debian.org/openstack-team/libs/migrate.git -Vcs-Browser: https://salsa.debian.org/openstack-team/libs/migrate +Vcs-Git: https://git.launchpad.net/~ubuntu-server-dev/ubuntu/+source/migrate +Vcs-Browser: https://git.launchpad.net/~ubuntu-server-dev/ubuntu/+source/migrate Package: python-migrate-doc Section: doc @@ -66,11 +67,11 @@ Package: python3-migrate Architecture: all Depends: python3-decorator, - python3-pbr, - python3-six, - python3-sqlalchemy, + python3-pbr (>= 1.8), + python3-six (>= 1.7.0), + python3-sqlalchemy (>= 0.9.6), python3-sqlparse, - python3-tempita, + python3-tempita (>= 0.4), ${misc:Depends}, ${python3:Depends}, Suggests:
  8. Download patch sqlalchemy_migrate.egg-info/not-zip-safe

    --- 0.12.0-3/sqlalchemy_migrate.egg-info/not-zip-safe 1970-01-01 00:00:00.000000000 +0000 +++ 0.13.0-0ubuntu1/sqlalchemy_migrate.egg-info/not-zip-safe 2019-10-22 21:15:46.000000000 +0000 @@ -0,0 +1 @@ +
  9. Download patch ChangeLog
  10. Download patch tox.ini

    --- 0.12.0-3/tox.ini 2019-01-22 14:02:49.000000000 +0000 +++ 0.13.0-0ubuntu1/tox.ini 2019-10-22 21:14:37.000000000 +0000 @@ -1,7 +1,7 @@ [tox] minversion = 1.6 skipsdist = True -envlist = py27,py27sa07,py27sa08,py27sa09,py33,py34,pep8 +envlist = py27,py27sa07,py27sa08,py27sa09,py33,py34,py35,py36,pep8 [testenv] usedevelop = True @@ -13,65 +13,49 @@ deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt commands = bash tools/pretty_tox.sh '{posargs}' -[testenv:py26] -deps = sqlalchemy>=0.9 - -r{toxinidir}/test-requirements.txt - -r{toxinidir}/test-requirements-py2.txt - [testenv:py27] deps = sqlalchemy>=0.9 -r{toxinidir}/test-requirements.txt - -r{toxinidir}/test-requirements-py2.txt - -[testenv:py26sa07] -basepython = python2.6 -deps = sqlalchemy>=0.7,<=0.7.99 - -r{toxinidir}/test-requirements.txt - -r{toxinidir}/test-requirements-py2.txt - -[testenv:py26sa08] -basepython = python2.6 -deps = sqlalchemy>=0.8,<=0.8.99 - -r{toxinidir}/test-requirements.txt - -r{toxinidir}/test-requirements-py2.txt - -[testenv:py26sa09] -basepython = python2.6 -deps = sqlalchemy>=0.9,<=0.9.99 - -r{toxinidir}/test-requirements.txt - -r{toxinidir}/test-requirements-py2.txt [testenv:py27sa07] basepython = python2.7 deps = sqlalchemy>=0.7,<=0.7.99 -r{toxinidir}/test-requirements.txt - -r{toxinidir}/test-requirements-py2.txt [testenv:py27sa08] basepython = python2.7 deps = sqlalchemy>=0.8,<=0.8.99 -r{toxinidir}/test-requirements.txt - -r{toxinidir}/test-requirements-py2.txt [testenv:py27sa09] basepython = python2.7 deps = sqlalchemy>=0.9,<=0.9.99 -r{toxinidir}/test-requirements.txt - -r{toxinidir}/test-requirements-py2.txt [testenv:py33] deps = sqlalchemy>=0.9 -r{toxinidir}/test-requirements.txt - -r{toxinidir}/test-requirements-py3.txt [testenv:py34] deps = sqlalchemy>=0.9 -r{toxinidir}/test-requirements.txt - -r{toxinidir}/test-requirements-py3.txt + +[testenv:py35] +deps = sqlalchemy>=0.9 + -r{toxinidir}/test-requirements.txt + +[testenv:py36] +deps = sqlalchemy>=0.9 + -r{toxinidir}/test-requirements.txt [testenv:pep8] commands = flake8 +[testenv:docs] +basepython = python3 +deps = -r{toxinidir}/doc/requirements.txt +commands = sphinx-build doc/source doc/build/html + [testenv:venv] commands = {posargs} @@ -135,3 +119,15 @@ ignore = E111,E113,E121,E122,E123,E124,E show-source = true builtins = _ exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,tools,build + +[testenv:bindep] +# Do not install any requirements. We want this to be fast and work even if +# system dependencies are missing, since it's used to tell you what system +# dependencies are missing! This also means that bindep must be installed +# separately, outside of the requirements files, and develop mode disabled +# explicitly to avoid unnecessarily installing the checked-out repo too (this +# further relies on "tox.skipsdist = True" above). +usedevelop = False +deps = bindep +commands = + bindep test
  11. Download patch test-requirements.txt

    --- 0.12.0-3/test-requirements.txt 2019-01-22 14:02:49.000000000 +0000 +++ 0.13.0-0ubuntu1/test-requirements.txt 2019-10-22 21:14:37.000000000 +0000 @@ -10,6 +10,7 @@ feedparser fixtures>=0.3.14 mock>=1.2 mox>=0.5.3 +mysqlclient psycopg2 python-subunit>=0.0.18 sphinx>=1.1.2,<1.2 @@ -18,6 +19,10 @@ testrepository>=0.0.17 testtools>=0.9.34,<0.9.36 tempest-lib>=0.1.0 +# db2 support +ibm_db_sa>=0.3.0;python_version<'3.0' +ibm-db-sa-py3;python_version>='3.0' + scripttest # NOTE(rpodolyaka): This version identifier is currently necessary as # pytz otherwise does not install on pip 1.4 or higher
  12. Download patch doc/source/index.rst

    --- 0.12.0-3/doc/source/index.rst 2019-01-22 14:02:49.000000000 +0000 +++ 0.13.0-0ubuntu1/doc/source/index.rst 2019-10-22 21:14:37.000000000 +0000 @@ -55,7 +55,7 @@ Dialect support .. list-table:: :header-rows: 1 - :widths: 25 10 10 10 10 10 11 + :widths: 25 10 10 10 10 10 11 10 * - Operation / Dialect - :ref:`sqlite <sqlite-d>` @@ -72,6 +72,7 @@ Dialect support - yes - no - not supported + - unknown * - :ref:`ALTER TABLE RENAME COLUMN <column-alter>` - yes (workaround) [#1]_ - yes @@ -79,6 +80,7 @@ Dialect support - yes - yes - not supported + - unknown * - :ref:`ALTER TABLE ADD COLUMN <column-create>` - yes (workaround) [#2]_ - yes @@ -86,6 +88,7 @@ Dialect support - yes - yes - not supported + - unknown * - :ref:`ALTER TABLE DROP COLUMN <column-drop>` - yes (workaround) [#1]_ - yes @@ -93,6 +96,7 @@ Dialect support - yes - yes - not supported + - unknown * - :ref:`ALTER TABLE ALTER COLUMN <column-alter>` - yes (workaround) [#1]_ - yes @@ -100,6 +104,7 @@ Dialect support - yes (with limitations) [#3]_ - yes [#4]_ - not supported + - unknown * - :ref:`ALTER TABLE ADD CONSTRAINT <constraint-tutorial>` - partial (workaround) [#1]_ - yes @@ -107,6 +112,7 @@ Dialect support - yes - yes - not supported + - unknown * - :ref:`ALTER TABLE DROP CONSTRAINT <constraint-tutorial>` - partial (workaround) [#1]_ - yes @@ -114,6 +120,7 @@ Dialect support - yes - yes - not supported + - unknown * - :ref:`RENAME INDEX <index-rename>` - no - yes @@ -121,6 +128,7 @@ Dialect support - yes - yes - not supported + - unknown .. [#1] Table is renamed to temporary table, new table is created followed by
  13. Download patch doc/requirements.txt

    --- 0.12.0-3/doc/requirements.txt 1970-01-01 00:00:00.000000000 +0000 +++ 0.13.0-0ubuntu1/doc/requirements.txt 2019-10-22 21:14:37.000000000 +0000 @@ -0,0 +1 @@ +sphinx>=1.6.2,!=1.6.6 # BSD
  14. Download patch doc/source/conf.py

    --- 0.12.0-3/doc/source/conf.py 2019-01-22 14:02:49.000000000 +0000 +++ 0.13.0-0ubuntu1/doc/source/conf.py 2019-10-22 21:14:37.000000000 +0000 @@ -28,7 +28,8 @@ sys.path.append(os.path.dirname(os.path. # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinxcontrib.issuetracker'] +extensions = ['sphinx.ext.autodoc', + 'sphinx.ext.intersphinx'] # link to sqlalchemy docs intersphinx_mapping = { @@ -128,7 +129,7 @@ html_style = 'default.css' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] +# html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format.
  15. Download patch debian/patches/use-local-intersphinx.patch

    --- 0.12.0-3/debian/patches/use-local-intersphinx.patch 2019-07-16 16:12:38.000000000 +0000 +++ 0.13.0-0ubuntu1/debian/patches/use-local-intersphinx.patch 2020-02-14 17:50:22.000000000 +0000 @@ -2,7 +2,7 @@ Subject: use local objects.inv for inter Author: Jan Dittberner <jandd@debian.org> --- a/doc/source/conf.py +++ b/doc/source/conf.py -@@ -32,8 +32,7 @@ +@@ -33,8 +33,7 @@ # link to sqlalchemy docs intersphinx_mapping = {
  16. Download patch playbooks/sqlalchemy-migrate-devstack-dsvm/run.yaml

    --- 0.12.0-3/playbooks/sqlalchemy-migrate-devstack-dsvm/run.yaml 1970-01-01 00:00:00.000000000 +0000 +++ 0.13.0-0ubuntu1/playbooks/sqlalchemy-migrate-devstack-dsvm/run.yaml 2019-10-22 21:14:37.000000000 +0000 @@ -0,0 +1,49 @@ +- hosts: all + name: Autoconverted job legacy-sqlalchemy-migrate-devstack-dsvm from old job gate-sqlalchemy-migrate-devstack-dsvm-nv + tasks: + + - name: Ensure legacy workspace directory + file: + path: '{{ ansible_user_dir }}/workspace' + state: directory + + - shell: + cmd: | + set -e + set -x + cat > clonemap.yaml << EOF + clonemap: + - name: openstack/devstack-gate + dest: devstack-gate + EOF + /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \ + https://opendev.org \ + openstack/devstack-gate + executable: /bin/bash + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}' + + - shell: + cmd: | + set -e + set -x + export PYTHONUNBUFFERED=true + export PROJECTS="x/sqlalchemy-migrate $PROJECTS" + export DEVSTACK_GATE_TEMPEST=1 + export DEVSTACK_GATE_TEMPEST_FULL=1 + export BRANCH_OVERRIDE=default + if [ "$BRANCH_OVERRIDE" != "default" ] ; then + export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE + fi + + function pre_test_hook { + cd /opt/stack/new/sqlalchemy-migrate + sudo -H pip install . + } + export -f pre_test_hook + + cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh + ./safe-devstack-vm-gate-wrap.sh + executable: /bin/bash + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}'
  17. Download patch .gitignore

    --- 0.12.0-3/.gitignore 2019-01-22 14:02:49.000000000 +0000 +++ 0.13.0-0ubuntu1/.gitignore 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -.eggs/ -AUTHORS -ChangeLog -.tox -.testrepository/ -*.pyc -*data/* -*build/* -*dist/* -*ez_setup.py -*.egg/* -*egg-info/* -*bin/* -*include/* -*lib/* -lib64 -sa06/* -.idea/* -.coverage -test_db.cfg -nosexcover -.ropeproject -.*.swp -docs/_static
  18. Download patch bindep.txt

    --- 0.12.0-3/bindep.txt 1970-01-01 00:00:00.000000000 +0000 +++ 0.13.0-0ubuntu1/bindep.txt 2019-10-22 21:14:37.000000000 +0000 @@ -0,0 +1,16 @@ +# This is a cross-platform list tracking distribution packages needed for install and tests; +# see https://docs.openstack.org/infra/bindep/ for additional information. + +# NOTE(mriedem): This list is woefully incomplete but is just listing mysql +# and postgresql binary dependencies to make tools/test-setup.sh work. + +libmysqlclient-dev [platform:dpkg] +libpq-dev [platform:dpkg test] +mysql [platform:rpm] +mysql-client [platform:dpkg] +mysql-devel [platform:rpm test] +mysql-server +postgresql +postgresql-client [platform:dpkg] +postgresql-devel [platform:rpm test] +postgresql-server [platform:rpm]
  19. Download patch test-requirements-py2.txt

    --- 0.12.0-3/test-requirements-py2.txt 2019-01-22 14:02:49.000000000 +0000 +++ 0.13.0-0ubuntu1/test-requirements-py2.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -ibm_db_sa>=0.3.0 -MySQL-python
  20. Download patch sqlalchemy_migrate.egg-info/top_level.txt

    --- 0.12.0-3/sqlalchemy_migrate.egg-info/top_level.txt 1970-01-01 00:00:00.000000000 +0000 +++ 0.13.0-0ubuntu1/sqlalchemy_migrate.egg-info/top_level.txt 2019-10-22 21:15:46.000000000 +0000 @@ -0,0 +1 @@ +migrate
  21. Download patch sqlalchemy_migrate.egg-info/SOURCES.txt

    --- 0.12.0-3/sqlalchemy_migrate.egg-info/SOURCES.txt 1970-01-01 00:00:00.000000000 +0000 +++ 0.13.0-0ubuntu1/sqlalchemy_migrate.egg-info/SOURCES.txt 2019-10-22 21:15:46.000000000 +0000 @@ -0,0 +1,136 @@ +.testr.conf +.zuul.yaml +AUTHORS +COPYING +ChangeLog +MANIFEST.in +README.rst +TODO +bindep.txt +doc-requirements.txt +requirements.txt +setup.cfg +setup.py +test-requirements.txt +test_db.cfg +test_db_py3.cfg +tox.ini +doc/requirements.txt +doc/source/Makefile +doc/source/api.rst +doc/source/changelog.rst +doc/source/changeset.rst +doc/source/conf.py +doc/source/credits.rst +doc/source/download.rst +doc/source/faq.rst +doc/source/glossary.rst +doc/source/index.rst +doc/source/tools.rst +doc/source/versioning.rst +doc/source/historical/ProjectDesignDecisionsAutomation.trac +doc/source/historical/ProjectDesignDecisionsScriptFormat.trac +doc/source/historical/ProjectDesignDecisionsVersioning.trac +doc/source/historical/ProjectDetailedDesign.trac +doc/source/historical/ProjectGoals.trac +doc/source/historical/ProjectProposal.txt +doc/source/historical/RepositoryFormat.trac +doc/source/historical/RepositoryFormat2.trac +doc/source/theme/almodovar.css +doc/source/theme/layout.css +doc/source/theme/layout.html +migrate/__init__.py +migrate/exceptions.py +migrate/changeset/__init__.py +migrate/changeset/ansisql.py +migrate/changeset/constraint.py +migrate/changeset/schema.py +migrate/changeset/util.py +migrate/changeset/databases/__init__.py +migrate/changeset/databases/firebird.py +migrate/changeset/databases/ibmdb2.py +migrate/changeset/databases/mysql.py +migrate/changeset/databases/oracle.py +migrate/changeset/databases/postgres.py +migrate/changeset/databases/sqlite.py +migrate/changeset/databases/visitor.py +migrate/tests/__init__.py +migrate/tests/changeset/__init__.py +migrate/tests/changeset/test_changeset.py +migrate/tests/changeset/test_constraint.py +migrate/tests/changeset/databases/__init__.py +migrate/tests/changeset/databases/test_ibmdb2.py +migrate/tests/fixture/__init__.py +migrate/tests/fixture/base.py +migrate/tests/fixture/database.py +migrate/tests/fixture/models.py +migrate/tests/fixture/pathed.py +migrate/tests/fixture/shell.py +migrate/tests/fixture/warnings.py +migrate/tests/integrated/__init__.py +migrate/tests/integrated/test_docs.py +migrate/tests/versioning/__init__.py +migrate/tests/versioning/test_api.py +migrate/tests/versioning/test_cfgparse.py +migrate/tests/versioning/test_database.py +migrate/tests/versioning/test_genmodel.py +migrate/tests/versioning/test_keyedinstance.py +migrate/tests/versioning/test_pathed.py +migrate/tests/versioning/test_repository.py +migrate/tests/versioning/test_runchangeset.py +migrate/tests/versioning/test_schema.py +migrate/tests/versioning/test_schemadiff.py +migrate/tests/versioning/test_script.py +migrate/tests/versioning/test_shell.py +migrate/tests/versioning/test_template.py +migrate/tests/versioning/test_util.py +migrate/tests/versioning/test_version.py +migrate/versioning/__init__.py +migrate/versioning/api.py +migrate/versioning/cfgparse.py +migrate/versioning/config.py +migrate/versioning/genmodel.py +migrate/versioning/migrate_repository.py +migrate/versioning/pathed.py +migrate/versioning/repository.py +migrate/versioning/schema.py +migrate/versioning/schemadiff.py +migrate/versioning/shell.py +migrate/versioning/template.py +migrate/versioning/version.py +migrate/versioning/script/__init__.py +migrate/versioning/script/base.py +migrate/versioning/script/py.py +migrate/versioning/script/sql.py +migrate/versioning/templates/__init__.py +migrate/versioning/templates/manage/default.py_tmpl +migrate/versioning/templates/manage/pylons.py_tmpl +migrate/versioning/templates/repository/__init__.py +migrate/versioning/templates/repository/default/README +migrate/versioning/templates/repository/default/__init__.py +migrate/versioning/templates/repository/default/migrate.cfg +migrate/versioning/templates/repository/default/versions/__init__.py +migrate/versioning/templates/repository/pylons/README +migrate/versioning/templates/repository/pylons/__init__.py +migrate/versioning/templates/repository/pylons/migrate.cfg +migrate/versioning/templates/repository/pylons/versions/__init__.py +migrate/versioning/templates/script/__init__.py +migrate/versioning/templates/script/default.py_tmpl +migrate/versioning/templates/script/pylons.py_tmpl +migrate/versioning/templates/sql_script/default.py_tmpl +migrate/versioning/templates/sql_script/pylons.py_tmpl +migrate/versioning/util/__init__.py +migrate/versioning/util/importpath.py +migrate/versioning/util/keyedinstance.py +playbooks/sqlalchemy-migrate-devstack-dsvm/post.yaml +playbooks/sqlalchemy-migrate-devstack-dsvm/run.yaml +sqlalchemy_migrate.egg-info/PKG-INFO +sqlalchemy_migrate.egg-info/SOURCES.txt +sqlalchemy_migrate.egg-info/dependency_links.txt +sqlalchemy_migrate.egg-info/entry_points.txt +sqlalchemy_migrate.egg-info/not-zip-safe +sqlalchemy_migrate.egg-info/pbr.json +sqlalchemy_migrate.egg-info/requires.txt +sqlalchemy_migrate.egg-info/top_level.txt +tools/pretty_tox.sh +tools/test-setup.sh \ No newline at end of file
  22. Download patch debian/watch

    --- 0.12.0-3/debian/watch 2019-07-16 16:12:38.000000000 +0000 +++ 0.13.0-0ubuntu1/debian/watch 2020-02-14 17:50:22.000000000 +0000 @@ -1,3 +1,3 @@ version=3 -opts="uversionmangle=s/\.(b|rc)/~$1/" \ -https://github.com/stackforge/sqlalchemy-migrate/tags .*/(\d[\d\.]+)\.tar\.gz +opts=uversionmangle=s/(rc|a|b|c)/~$1/ \ +https://pypi.debian.net/sqlalchemy-migrate/sqlalchemy-migrate-(.+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz)))
  23. Download patch setup.cfg

    --- 0.12.0-3/setup.cfg 2019-01-22 14:02:49.000000000 +0000 +++ 0.13.0-0ubuntu1/setup.cfg 2019-10-22 21:15:46.000000000 +0000 @@ -1,34 +1,41 @@ [metadata] name = sqlalchemy-migrate summary = Database schema migration for SQLAlchemy -description-file = - README.rst +description-file = + README.rst author = OpenStack author-email = openstack-discuss@lists.openstack.org home-page = http://www.openstack.org/ -classifier = - Environment :: OpenStack - Intended Audience :: Information Technology - Intended Audience :: System Administrators - License :: OSI Approved :: Apache Software License - Operating System :: POSIX :: Linux - Programming Language :: Python - Programming Language :: Python :: 2 - Programming Language :: Python :: 2.7 - Programming Language :: Python :: 3 - Programming Language :: Python :: 3.3 - Programming Language :: Python :: 3.4 +classifier = + Environment :: OpenStack + Intended Audience :: Information Technology + Intended Audience :: System Administrators + License :: OSI Approved :: Apache Software License + Operating System :: POSIX :: Linux + Programming Language :: Python + Programming Language :: Python :: 2 + Programming Language :: Python :: 2.7 + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.3 + Programming Language :: Python :: 3.4 + Programming Language :: Python :: 3.5 + Programming Language :: Python :: 3.6 [files] -packages = - migrate +packages = + migrate [entry_points] -console_scripts = - migrate = migrate.versioning.shell:main - migrate-repository = migrate.versioning.migrate_repository:main +console_scripts = + migrate = migrate.versioning.shell:main + migrate-repository = migrate.versioning.migrate_repository:main [build_sphinx] all_files = 1 build-dir = doc/build source-dir = doc/source + +[egg_info] +tag_build = +tag_date = 0 +
  24. Download patch migrate/changeset/databases/visitor.py

    --- 0.12.0-3/migrate/changeset/databases/visitor.py 2019-01-22 14:02:49.000000000 +0000 +++ 0.13.0-0ubuntu1/migrate/changeset/databases/visitor.py 2019-10-22 21:14:37.000000000 +0000 @@ -73,7 +73,7 @@ def run_single_visitor(engine, visitorca with support for migrate visitors. """ if connection is None: - conn = engine.contextual_connect(close_with_result=False) + conn = engine.connect() else: conn = connection visitor = visitorcallable(engine.dialect, conn)
  25. Download patch migrate/versioning/script/py.py

    --- 0.12.0-3/migrate/versioning/script/py.py 2019-01-22 14:02:49.000000000 +0000 +++ 0.13.0-0ubuntu1/migrate/versioning/script/py.py 2019-10-22 21:14:37.000000000 +0000 @@ -141,8 +141,14 @@ class PythonScript(base.BaseScript): script_func = self._func(funcname) # check for old way of using engine - if not inspect.getargspec(script_func)[0]: - raise TypeError("upgrade/downgrade functions must accept engine" + arg_spec = None + if six.PY2: + arg_spec = inspect.getargspec(script_func) + else: + arg_spec = inspect.getfullargspec(script_func) + if not arg_spec[0]: + raise TypeError( + "upgrade/downgrade functions must accept engine" " parameter (since version 0.5.4)") script_func(engine)
  26. Download patch sqlalchemy_migrate.egg-info/requires.txt

    --- 0.12.0-3/sqlalchemy_migrate.egg-info/requires.txt 1970-01-01 00:00:00.000000000 +0000 +++ 0.13.0-0ubuntu1/sqlalchemy_migrate.egg-info/requires.txt 2019-10-22 21:15:46.000000000 +0000 @@ -0,0 +1,6 @@ +pbr>=1.8 +SQLAlchemy>=0.9.6 +decorator +six>=1.7.0 +sqlparse +Tempita>=0.4
  27. Download patch AUTHORS

    --- 0.12.0-3/AUTHORS 1970-01-01 00:00:00.000000000 +0000 +++ 0.13.0-0ubuntu1/AUTHORS 2019-10-22 21:15:46.000000000 +0000 @@ -0,0 +1,65 @@ +Alex Favaro <alexfav619@gmail.com> +Andreas Jaeger <aj@suse.com> +Anusree <anusree.a04@gmail.com> +Bob Farrell <robertanthonyfarrell@gmail.com> +Brant Knudson <bknudson@us.ibm.com> +Chih-Hsuan Yen <yen@chyen.cc> +Chris Withers <chris@simplistix.co.uk> +Corey Bryant <corey.bryant@canonical.com> +Cyril Roelandt <cyril.roelandt@enovance.com> +Dan Prince <dprince@redhat.com> +David Ripton <dripton@redhat.com> +Domen Kožar <domen@dev.si> +Dustin J. Mitchell <dustin@mozilla.com> +Eric Harney <eharney@redhat.com> +Gabriel <g2p.code+sqla@gmail.com> +Haikel Guemar <hguemar@fedoraproject.org> +Ihar Hrachyshka <ihrachys@redhat.com> +Jan Dittberner <jan.dittberner@gmail.com> +Jan Dittberner <jan.dittberner@googlemail.com> +Jan Dittberner <jan@dittberner.info> +Jason Michalski <armooo@armooo.net> +Jeremy Stanley <fungi@yuggoth.org> +Jonathan Herlin <Jonte@jherlin.se> +Josip Delic <delijati@googlemail.com> +Longgeek <longgeek@thstack.com> +Matt Riedemann <mriedem.os@gmail.com> +Matt Riedemann <mriedem@us.ibm.com> +Mike Bayer <mike_mp@zzzcomputing.com> +Monty Taylor <mordred@inaugust.com> +Nicola Soranzo <nicola.soranzo@earlham.ac.uk> +Pete Keen <pete@bugsplat.info> +Peter Conerly <pconerly@gmail.com> +Pádraig Brady <P@draigBrady.com> +Pádraig Brady <pbrady@redhat.com> +Qin Zhao <chaochin@gmail.com> +Rahul Priyadarshi <rahul.priyadarshi@in.ibm.com> +Rick Copeland <rick446@usa.net> +Roman Podoliaka <rpodolyaka@mirantis.com> +Roman Podolyaka <rpodolyaka@mirantis.com> +Sascha Peilicke <saschpe@gmx.de> +Sascha Peilicke <speilicke@suse.com> +Sean Dague <sean.dague@samsung.com> +Sean Dague <sean@dague.net> +Sean Mooney <work@seanmooney.info> +Sheng Bo Hou <sbhou@cn.ibm.com> +Thomas Goirand <thomas@goirand.fr> +Thomas Goirand <zigo@debian.org> +Thuy Christenson <thuy@us.ibm.com> +Tony Breeds <tony@bakeyournoodle.com> +Victor Stinner <vstinner@redhat.com> +Yuval Langer <yuval.langer@gmail.com> +al.yazdi@gmail.com <unknown> +asuffield@gmail.com <unknown> +ches.martin <unknown> +christian.simms <unknown> +chrisw <unknown> +dineshbhor <dinesh.bhor@nttdata.com> +emil.kroymann <unknown> +hudson@fubarite.fubar.si <unknown> +iElectric <unknown> +jan.dittberner <unknown> +markbmc@gmail.com <unknown> +percious17 <unknown> +root@fubarite.fubar.si <unknown> +wyuenho@gmail.com <unknown>
  28. Download patch sqlalchemy_migrate.egg-info/PKG-INFO

    --- 0.12.0-3/sqlalchemy_migrate.egg-info/PKG-INFO 1970-01-01 00:00:00.000000000 +0000 +++ 0.13.0-0ubuntu1/sqlalchemy_migrate.egg-info/PKG-INFO 2019-10-22 21:15:46.000000000 +0000 @@ -0,0 +1,71 @@ +Metadata-Version: 1.1 +Name: sqlalchemy-migrate +Version: 0.13.0 +Summary: Database schema migration for SQLAlchemy +Home-page: http://www.openstack.org/ +Author: OpenStack +Author-email: openstack-discuss@lists.openstack.org +License: UNKNOWN +Description: SQLAlchemy Migrate + ================== + + Fork from http://code.google.com/p/sqlalchemy-migrate/ to get it working with + SQLAlchemy 0.8. + + Inspired by Ruby on Rails' migrations, Migrate provides a way to deal with + database schema changes in `SQLAlchemy <http://sqlalchemy.org>`_ projects. + + Migrate extends SQLAlchemy to have database changeset handling. It provides a + database change repository mechanism which can be used from the command line as + well as from inside python code. + + Help + ---- + + Sphinx documentation is available at the project page `readthedocs.org + <https://sqlalchemy-migrate.readthedocs.org/>`_. + + Users and developers can be found at #openstack-dev on Freenode IRC + network and at the public users mailing list `migrate-users + <http://groups.google.com/group/migrate-users>`_. + + New releases and major changes are announced at the public announce mailing + list `openstack-dev + <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>`_ + and at the Python package index `sqlalchemy-migrate + <http://pypi.python.org/pypi/sqlalchemy-migrate>`_. + + Homepage is located at `stackforge + <http://github.com/stackforge/sqlalchemy-migrate/>`_ + + You can also clone a current `development version + <http://github.com/stackforge/sqlalchemy-migrate>`_ + + Tests and Bugs + -------------- + + To run automated tests: + + * install tox: ``pip install -U tox`` + * run tox: ``tox`` + * to test only a specific Python version: ``tox -e py27`` (Python 2.7) + + Please report any issues with sqlalchemy-migrate to the issue tracker at + `Launchpad issues + <https://bugs.launchpad.net/sqlalchemy-migrate>`_ + + +Platform: UNKNOWN +Classifier: Environment :: OpenStack +Classifier: Intended Audience :: Information Technology +Classifier: Intended Audience :: System Administrators +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: POSIX :: Linux +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6
  29. Download patch .zuul.yaml

    --- 0.12.0-3/.zuul.yaml 1970-01-01 00:00:00.000000000 +0000 +++ 0.13.0-0ubuntu1/.zuul.yaml 2019-10-22 21:14:37.000000000 +0000 @@ -0,0 +1,37 @@ +- project: + templates: + - docs-on-readthedocs + - openstack-python-jobs + - openstack-python35-jobs + - openstack-python36-jobs + vars: + rtd_webhook_id: '61274' + check: + jobs: + - sqlalchemy-migrate-tox-py27sa07 + - sqlalchemy-migrate-devstack: + voting: false + gate: + jobs: + - sqlalchemy-migrate-tox-py27sa07 + +- job: + name: sqlalchemy-migrate-tox-py27sa07 + parent: tox + description: | + Run tests for sqlalchemy-migrate project. + + Uses tox with the ``py27sa07`` environment. + vars: + tox_envlist: py27sa07 + +- job: + name: sqlalchemy-migrate-devstack + parent: legacy-dsvm-base + run: playbooks/sqlalchemy-migrate-devstack-dsvm/run.yaml + post-run: playbooks/sqlalchemy-migrate-devstack-dsvm/post.yaml + timeout: 10800 + required-projects: + - openstack/devstack + - openstack/devstack-gate + - x/sqlalchemy-migrate
  30. Download patch sqlalchemy_migrate.egg-info/pbr.json

    --- 0.12.0-3/sqlalchemy_migrate.egg-info/pbr.json 1970-01-01 00:00:00.000000000 +0000 +++ 0.13.0-0ubuntu1/sqlalchemy_migrate.egg-info/pbr.json 2019-10-22 21:15:46.000000000 +0000 @@ -0,0 +1 @@ +{"git_version": "5d1f322", "is_release": true} \ No newline at end of file
  31. Download patch sqlalchemy_migrate.egg-info/dependency_links.txt

    --- 0.12.0-3/sqlalchemy_migrate.egg-info/dependency_links.txt 1970-01-01 00:00:00.000000000 +0000 +++ 0.13.0-0ubuntu1/sqlalchemy_migrate.egg-info/dependency_links.txt 2019-10-22 21:15:46.000000000 +0000 @@ -0,0 +1 @@ +
  32. Download patch playbooks/sqlalchemy-migrate-devstack-dsvm/post.yaml

    --- 0.12.0-3/playbooks/sqlalchemy-migrate-devstack-dsvm/post.yaml 1970-01-01 00:00:00.000000000 +0000 +++ 0.13.0-0ubuntu1/playbooks/sqlalchemy-migrate-devstack-dsvm/post.yaml 2019-10-22 21:14:37.000000000 +0000 @@ -0,0 +1,15 @@ +- hosts: primary + tasks: + + - name: Copy files from {{ ansible_user_dir }}/workspace/ on node + synchronize: + src: '{{ ansible_user_dir }}/workspace/' + dest: '{{ zuul.executor.log_root }}' + mode: pull + copy_links: true + verify_host: true + rsync_opts: + - --include=/logs/** + - --include=*/ + - --exclude=* + - --prune-empty-dirs
  33. Download patch debian/gbp.conf

    --- 0.12.0-3/debian/gbp.conf 1970-01-01 00:00:00.000000000 +0000 +++ 0.13.0-0ubuntu1/debian/gbp.conf 2020-02-14 17:50:22.000000000 +0000 @@ -0,0 +1,7 @@ +[DEFAULT] +debian-branch = master +upstream-tag = %(version)s +pristine-tar = True + +[buildpackage] +export-dir = ../build-area
  34. Download patch migrate/changeset/schema.py

    --- 0.12.0-3/migrate/changeset/schema.py 2019-01-22 14:02:49.000000000 +0000 +++ 0.13.0-0ubuntu1/migrate/changeset/schema.py 2019-10-22 21:14:37.000000000 +0000 @@ -138,7 +138,7 @@ def alter_column(*p, **k): delta = ColumnDelta(*p, **k) visitorcallable = get_engine_visitor(engine, 'schemachanger') - engine._run_visitor(visitorcallable, delta) + _run_visitor(engine, visitorcallable, delta) return delta @@ -167,6 +167,20 @@ def _to_index(index, table=None, engine= return ret +def _run_visitor( + connectable, visitorcallable, element, connection=None, **kwargs +): + if connection is not None: + visitorcallable( + connection.dialect, connection, **kwargs).traverse_single(element) + else: + conn = connectable.connect() + try: + visitorcallable( + conn.dialect, conn, **kwargs).traverse_single(element) + finally: + conn.close() + # Python3: if we just use: # @@ -574,7 +588,7 @@ populated with defaults self.add_to_table(table) engine = self.table.bind visitorcallable = get_engine_visitor(engine, 'columngenerator') - engine._run_visitor(visitorcallable, self, connection, **kwargs) + _run_visitor(engine, visitorcallable, self, connection, **kwargs) # TODO: reuse existing connection if self.populate_default and self.default is not None: @@ -595,7 +609,7 @@ populated with defaults self.table = table engine = self.table.bind visitorcallable = get_engine_visitor(engine, 'columndropper') - engine._run_visitor(visitorcallable, self, connection, **kwargs) + _run_visitor(engine, visitorcallable, self, connection, **kwargs) self.remove_from_table(self.table, unset_table=False) self.table = None return self @@ -689,7 +703,7 @@ class ChangesetIndex(object): engine = self.table.bind self.new_name = name visitorcallable = get_engine_visitor(engine, 'schemachanger') - engine._run_visitor(visitorcallable, self, connection, **kwargs) + _run_visitor(engine, visitorcallable, self, connection, **kwargs) self.name = name
  35. Download patch debian/patches/remove-tempest-lib-build-depends-from-upstream.patch

    --- 0.12.0-3/debian/patches/remove-tempest-lib-build-depends-from-upstream.patch 2019-07-16 16:12:38.000000000 +0000 +++ 0.13.0-0ubuntu1/debian/patches/remove-tempest-lib-build-depends-from-upstream.patch 2020-02-14 17:50:22.000000000 +0000 @@ -3,13 +3,13 @@ Author: Thomas Goirand <zigo@debian.org> Forwarded: no Last-Update: 2018-04-27 ---- migrate-0.11.0.orig/test-requirements.txt -+++ migrate-0.11.0/test-requirements.txt -@@ -16,7 +16,6 @@ sphinx>=1.1.2,<1.2 +--- a/test-requirements.txt ++++ b/test-requirements.txt +@@ -17,7 +17,6 @@ sphinxcontrib_issuetracker testrepository>=0.0.17 testtools>=0.9.34,<0.9.36 -tempest-lib>=0.1.0 - scripttest - # NOTE(rpodolyaka): This version identifier is currently necessary as + # db2 support + ibm_db_sa>=0.3.0;python_version<'3.0'
  36. Download patch doc/source/download.rst

    --- 0.12.0-3/doc/source/download.rst 2019-01-22 14:02:49.000000000 +0000 +++ 0.13.0-0ubuntu1/doc/source/download.rst 2019-10-22 21:14:37.000000000 +0000 @@ -2,7 +2,7 @@ Download -------- You can get the latest version of SQLAlchemy Migrate from the -`project's download page`_, the `cheese shop`_, pip_ or via easy_install_:: +the `cheese shop`_, pip_ or via easy_install_:: $ easy_install sqlalchemy-migrate

Debian ( Changelog | PTS | Bugs ) Ubuntu ( Changelog | txt | LP | Bugs ) | Diff from Ubuntu

Source: python-cliff

python-cliff (2.18.0-0ubuntu1) focal; urgency=medium * New upstream release for OpenStack Ussuri. -- Sahid Orentino Ferdjaoui <sahid.ferdjaoui@canonical.com> Tue, 28 Jan 2020 16:42:57 +0100 python-cliff (2.16.0-0ubuntu1) focal; urgency=medium * Merge from Debian unstable. Remaining changes: - d/gbp.conf: Retain for pristine-tar. - d/watch: Get tarball from pypi.debian.net. - d/control: Drop (Build-)Depends on python3-unicodecsv as its only needed for Python 2 (LP: #1736717). * New upstream release for OpenStack Ussuri. * d/control: Align (Build-)Depends with upstream. -- Corey Bryant <corey.bryant@canonical.com> Thu, 12 Dec 2019 15:19:31 -0500 python-cliff (2.15.0-0ubuntu1) eoan; urgency=medium * New upstream release for OpenStack Train. -- Corey Bryant <corey.bryant@canonical.com> Tue, 30 Jul 2019 15:28:14 -0400

Modifications :
  1. Download patch doc/source/user/sphinxext.rst

    --- 2.14.1-2/doc/source/user/sphinxext.rst 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/doc/source/user/sphinxext.rst 2020-01-08 20:36:15.000000000 +0000 @@ -125,6 +125,14 @@ Directive .. seealso:: The ``:ignored:`` directive option. + `autoprogram_cliff_app_dist_name` + The name of the python distribution (the name used with pip, as opposed to + the package name used for importing) providing the commands/applications + being documented. Generated documentation for plugin components includes + a message indicating the name of the plugin. Setting this option tells + cliff the name of the distribution providing components natively so their + documentation does not include this message. + .. seealso:: Module `sphinxcontrib.autoprogram`
  2. Download patch cliff.egg-info/SOURCES.txt

    --- 2.14.1-2/cliff.egg-info/SOURCES.txt 1970-01-01 00:00:00.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff.egg-info/SOURCES.txt 2020-01-08 20:37:02.000000000 +0000 @@ -0,0 +1,94 @@ +.stestr.conf +.testr.conf +.zuul.yaml +AUTHORS +CONTRIBUTING.rst +ChangeLog +LICENSE +README.rst +bandit.yaml +lower-constraints.txt +requirements.txt +setup.cfg +setup.py +test-requirements.txt +tox.ini +cliff/__init__.py +cliff/_argparse.py +cliff/app.py +cliff/columns.py +cliff/command.py +cliff/commandmanager.py +cliff/complete.py +cliff/display.py +cliff/help.py +cliff/hooks.py +cliff/interactive.py +cliff/lister.py +cliff/show.py +cliff/sphinxext.py +cliff/utils.py +cliff.egg-info/PKG-INFO +cliff.egg-info/SOURCES.txt +cliff.egg-info/dependency_links.txt +cliff.egg-info/entry_points.txt +cliff.egg-info/not-zip-safe +cliff.egg-info/pbr.json +cliff.egg-info/requires.txt +cliff.egg-info/top_level.txt +cliff/formatters/__init__.py +cliff/formatters/base.py +cliff/formatters/commaseparated.py +cliff/formatters/json_format.py +cliff/formatters/shell.py +cliff/formatters/table.py +cliff/formatters/value.py +cliff/formatters/yaml_format.py +cliff/tests/__init__.py +cliff/tests/base.py +cliff/tests/test_app.py +cliff/tests/test_columns.py +cliff/tests/test_command.py +cliff/tests/test_command_hooks.py +cliff/tests/test_commandmanager.py +cliff/tests/test_complete.py +cliff/tests/test_formatters_csv.py +cliff/tests/test_formatters_json.py +cliff/tests/test_formatters_shell.py +cliff/tests/test_formatters_table.py +cliff/tests/test_formatters_value.py +cliff/tests/test_formatters_yaml.py +cliff/tests/test_help.py +cliff/tests/test_interactive.py +cliff/tests/test_lister.py +cliff/tests/test_show.py +cliff/tests/test_sphinxext.py +cliff/tests/test_utils.py +cliff/tests/utils.py +demoapp/README.rst +demoapp/setup.py +demoapp/cliffdemo/__init__.py +demoapp/cliffdemo/__main__.py +demoapp/cliffdemo/encoding.py +demoapp/cliffdemo/hook.py +demoapp/cliffdemo/list.py +demoapp/cliffdemo/main.py +demoapp/cliffdemo/show.py +demoapp/cliffdemo/simple.py +doc/requirements.txt +doc/source/conf.py +doc/source/index.rst +doc/source/contributors/index.rst +doc/source/install/index.rst +doc/source/reference/index.rst +doc/source/user/complete.rst +doc/source/user/demoapp.rst +doc/source/user/history.rst +doc/source/user/index.rst +doc/source/user/interactive_mode.rst +doc/source/user/introduction.rst +doc/source/user/list_commands.rst +doc/source/user/show_commands.rst +doc/source/user/sphinxext.rst +integration-tests/neutronclient-tip.sh +integration-tests/openstackclient-tip.sh \ No newline at end of file
  3. Download patch PKG-INFO

    --- 2.14.1-2/PKG-INFO 1970-01-01 00:00:00.000000000 +0000 +++ 2.18.0-0ubuntu1/PKG-INFO 2020-01-08 20:37:02.000000000 +0000 @@ -0,0 +1,45 @@ +Metadata-Version: 1.1 +Name: cliff +Version: 2.18.0 +Summary: Command Line Interface Formulation Framework +Home-page: https://docs.openstack.org/cliff/latest/ +Author: OpenStack +Author-email: openstack-discuss@lists.openstack.org +License: UNKNOWN +Description: ======================== + Team and repository tags + ======================== + + .. image:: https://governance.openstack.org/tc/badges/cliff.svg + :target: https://governance.openstack.org/tc/reference/tags/index.html + + .. Change things from this point on + + ======================================================= + cliff -- Command Line Interface Formulation Framework + ======================================================= + + cliff is a framework for building command line programs. It uses + `setuptools entry points`_ to provide subcommands, output formatters, and + other extensions. + + .. _setuptools entry points: http://setuptools.readthedocs.io/en/latest/pkg_resources.html#convenience-api + + * Free software: Apache license + * Documentation: https://docs.openstack.org/cliff/latest/ + * Source: https://opendev.org/openstack/cliff + * Bugs: https://bugs.launchpad.net/python-cliff + * Contributors: https://github.com/openstack/cliff/graphs/contributors + + +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Intended Audience :: Developers +Classifier: Environment :: Console
  4. Download patch cliff/tests/test_app.py

    --- 2.14.1-2/cliff/tests/test_app.py 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff/tests/test_app.py 2020-01-08 20:36:15.000000000 +0000 @@ -74,10 +74,27 @@ class TestInteractiveMode(base.TestBase) name='interactive_app_factory' ) self.assertIsNone(app.interpreter) - app.run([]) + ret = app.run([]) self.assertIsNotNone(app.interpreter) cmdloop = app.interactive_app_factory.return_value.cmdloop cmdloop.assert_called_once_with() + self.assertNotEqual(ret, 0) + + def test_interactive_mode_cmdloop_error(self): + app, command = make_app() + cmdloop_mock = mock.MagicMock( + name='cmdloop', + ) + cmdloop_mock.return_value = 1 + app.interactive_app_factory = mock.MagicMock( + name='interactive_app_factory' + ) + self.assertIsNone(app.interpreter) + ret = app.run([]) + self.assertIsNotNone(app.interpreter) + cmdloop = app.interactive_app_factory.return_value.cmdloop + cmdloop.assert_called_once_with() + self.assertNotEqual(ret, 0) class TestInitAndCleanup(base.TestBase): @@ -99,14 +116,16 @@ class TestInitAndCleanup(base.TestBase): def test_clean_up_success(self): app, command = make_app() app.clean_up = mock.MagicMock(name='clean_up') - app.run(['mock']) + ret = app.run(['mock']) app.clean_up.assert_called_once_with(command.return_value, 0, None) + self.assertEqual(ret, 0) def test_clean_up_error(self): app, command = make_app() app.clean_up = mock.MagicMock(name='clean_up') - app.run(['error']) + ret = app.run(['error']) + self.assertNotEqual(ret, 0) app.clean_up.assert_called_once_with(mock.ANY, mock.ANY, mock.ANY) call_args = app.clean_up.call_args_list[0] @@ -119,12 +138,8 @@ class TestInitAndCleanup(base.TestBase): app, command = make_app() app.clean_up = mock.MagicMock(name='clean_up') - try: - app.run(['--debug', 'error']) - except RuntimeError as err: - self.assertIs(err, app.clean_up.call_args_list[0][0][2]) - else: - self.fail('Should have had an exception') + ret = app.run(['--debug', 'error']) + self.assertNotEqual(ret, 0) self.assertTrue(app.clean_up.called) call_args = app.clean_up.call_args_list[0] @@ -157,7 +172,7 @@ class TestInitAndCleanup(base.TestBase): side_effect=RuntimeError('within clean_up'), ) try: - app.run(['--debug', 'error']) + ret = app.run(['--debug', 'error']) except RuntimeError as err: if not hasattr(err, '__context__'): # The exception passed to clean_up is not the exception @@ -166,7 +181,7 @@ class TestInitAndCleanup(base.TestBase): # with the new one as a __context__ attribute. self.assertIsNot(err, app.clean_up.call_args_list[0][0][2]) else: - self.fail('Should have had an exception') + self.assertNotEqual(ret, 0) self.assertTrue(app.clean_up.called) call_args = app.clean_up.call_args_list[0]
  5. Download patch README.rst

    --- 2.14.1-2/README.rst 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/README.rst 2020-01-08 20:36:15.000000000 +0000 @@ -19,5 +19,6 @@ other extensions. * Free software: Apache license * Documentation: https://docs.openstack.org/cliff/latest/ -* Source: https://git.openstack.org/cgit/openstack/cliff +* Source: https://opendev.org/openstack/cliff * Bugs: https://bugs.launchpad.net/python-cliff +* Contributors: https://github.com/openstack/cliff/graphs/contributors
  6. Download patch doc/source/install/index.rst

    --- 2.14.1-2/doc/source/install/index.rst 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/doc/source/install/index.rst 2020-01-08 20:36:15.000000000 +0000 @@ -33,7 +33,7 @@ or:: Source Code =========== -The source is hosted on github: https://git.openstack.org/cgit/openstack/cliff +The source is hosted on OpenDev: https://opendev.org/openstack/cliff Reporting Bugs ==============
  7. Download patch MANIFEST.in

    --- 2.14.1-2/MANIFEST.in 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/MANIFEST.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -include setup.py -recursive-include docs *.rst *.py *.html *.css *.js *.png *.txt -recursive-include demoapp *.py -recursive-include tests *.py -include tox.ini -
  8. Download patch .gitreview

    --- 2.14.1-2/.gitreview 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/.gitreview 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -[gerrit] -host=review.openstack.org -port=29418 -project=openstack/cliff.git
  9. Download patch cliff/_argparse.py

    --- 2.14.1-2/cliff/_argparse.py 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff/_argparse.py 2020-01-08 20:36:15.000000000 +0000 @@ -10,15 +10,18 @@ # License for the specific language governing permissions and limitations # under the License. -"""Special argparse module that allows to bypass abbrev mode.""" +"""Overrides of standard argparse behavior.""" from __future__ import absolute_import -from argparse import * # noqa + +import argparse import sys +import warnings + +class ArgumentParser(argparse.ArgumentParser): -if sys.version_info < (3, 5): - class ArgumentParser(ArgumentParser): # noqa + if sys.version_info < (3, 5): def __init__(self, *args, **kwargs): self.allow_abbrev = kwargs.pop("allow_abbrev", True) super(ArgumentParser, self).__init__(*args, **kwargs) @@ -28,3 +31,97 @@ if sys.version_info < (3, 5): return super(ArgumentParser, self)._get_option_tuples( option_string) return () + + # NOTE(dhellmann): We have to override the methods for creating + # groups to return our objects that know how to deal with the + # special conflict handler. + + def add_argument_group(self, *args, **kwargs): + group = _ArgumentGroup(self, *args, **kwargs) + self._action_groups.append(group) + return group + + def add_mutually_exclusive_group(self, **kwargs): + group = _MutuallyExclusiveGroup(self, **kwargs) + self._mutually_exclusive_groups.append(group) + return group + + def _handle_conflict_ignore(self, action, conflicting_actions): + _handle_conflict_ignore( + self, + self._option_string_actions, + action, + conflicting_actions, + ) + + +def _handle_conflict_ignore(container, option_string_actions, + new_action, conflicting_actions): + + # Remember the option strings the new action starts with so we can + # restore them as part of error reporting if we need to. + original_option_strings = new_action.option_strings + + # Remove all of the conflicting option strings from the new action + # and report an error if none are left at the end. + for option_string, action in conflicting_actions: + + # remove the conflicting option from the new action + new_action.option_strings.remove(option_string) + warnings.warn( + ('Ignoring option string {} for new action ' + 'because it conflicts with an existing option.').format( + option_string)) + + # if the option now has no option string, remove it from the + # container holding it + if not new_action.option_strings: + new_action.option_strings = original_option_strings + raise argparse.ArgumentError( + new_action, + ('Cannot resolve conflicting option string, ' + 'all names conflict.'), + ) + + +class _ArgumentGroup(argparse._ArgumentGroup): + + def _handle_conflict_ignore(self, action, conflicting_actions): + _handle_conflict_ignore( + self, + self._option_string_actions, + action, + conflicting_actions, + ) + + +class _MutuallyExclusiveGroup(argparse._MutuallyExclusiveGroup): + + def _handle_conflict_ignore(self, action, conflicting_actions): + _handle_conflict_ignore( + self, + self._option_string_actions, + action, + conflicting_actions, + ) + + +class SmartHelpFormatter(argparse.HelpFormatter): + """Smart help formatter to output raw help message if help contain \n. + + Some command help messages maybe have multiple line content, the built-in + argparse.HelpFormatter wrap and split the content according to width, and + ignore \n in the raw help message, it merge multiple line content in one + line to output, that looks messy. SmartHelpFormatter keep the raw help + message format if it contain \n, and wrap long line like HelpFormatter + behavior. + """ + + def _split_lines(self, text, width): + lines = text.splitlines() if '\n' in text else [text] + wrap_lines = [] + for each_line in lines: + wrap_lines.extend( + super(SmartHelpFormatter, self)._split_lines(each_line, width) + ) + return wrap_lines
  10. Download patch debian/control

    --- 2.14.1-2/debian/control 2019-07-17 03:08:04.000000000 +0000 +++ 2.18.0-0ubuntu1/debian/control 2020-01-28 15:42:57.000000000 +0000 @@ -1,7 +1,8 @@ Source: python-cliff Section: python Priority: optional -Maintainer: Debian OpenStack <team+openstack@tracker.debian.org> +Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +XSBC-Original-Maintainer: Debian OpenStack <team+openstack@tracker.debian.org> Uploaders: Jan Dittberner <jandd@debian.org>, Thomas Goirand <zigo@debian.org>, @@ -10,26 +11,28 @@ Build-Depends: dh-python, openstack-pkg-tools, python3-all, - python3-pbr, + python3-pbr (>= 2.0.0), python3-setuptools, - python3-sphinx, + python3-sphinx (>= 1.6.2), Build-Depends-Indep: - python3-cmd2, - python3-coverage, + python3-cmd2 (>= 0.8.0), + python3-coverage (>= 4.0), python3-docutils, - python3-mock, - python3-openstackdocstheme, - python3-prettytable, - python3-pyparsing, - python3-six, + python3-mock (>= 2.0.0), + python3-openstackdocstheme (>= 1.18.1), + python3-prettytable (>= 0.7.2), + python3-pyparsing (>= 2.1.0), + python3-six (>= 1.10.0), python3-stestr, - python3-stevedore (>= 1.30.1), - python3-testscenarios, - python3-testtools, - python3-yaml, + python3-stevedore (>= 1:1.20.0), + python3-subunit (>= 1.0.0), + python3-testrepository (>= 0.0.18), + python3-testscenarios (>= 0.4), + python3-testtools (>= 2.2.0), + python3-yaml (>= 3.12), Standards-Version: 4.3.0 -Vcs-Browser: https://salsa.debian.org/openstack-team/python/python-cliff -Vcs-Git: https://salsa.debian.org/openstack-team/python/python-cliff.git +Vcs-Browser: https://git.launchpad.net/~ubuntu-server-dev/ubuntu/+source/python-cliff +Vcs-Git: git://git.launchpad.net/~ubuntu-server-dev/ubuntu/+source/python-cliff Homepage: https://github.com/dreamhost/cliff Testsuite: autopkgtest-pkg-python @@ -53,14 +56,14 @@ Description: command line interface form Package: python3-cliff Architecture: all Depends: - python3-cmd2, + python3-cmd2 (>= 0.8.0), python3-docutils, - python3-pbr, - python3-prettytable, - python3-pyparsing, - python3-six, - python3-stevedore (>= 1.30.1), - python3-unicodecsv, + python3-pbr (>= 2.0.0), + python3-prettytable (>= 0.7.2), + python3-pyparsing (>= 2.1.0), + python3-six (>= 1.10.0), + python3-stevedore (>= 1:1.20.0), + python3-yaml (>= 3.12), ${misc:Depends}, ${python3:Depends}, Recommends:
  11. Download patch cliff/tests/test_commandmanager.py

    --- 2.14.1-2/cliff/tests/test_commandmanager.py 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff/tests/test_commandmanager.py 2020-01-08 20:36:15.000000000 +0000 @@ -199,3 +199,57 @@ class TestLegacyCommand(base.TestBase): mgr.find_command, ['cmd2'], ) + + +class TestLookupAndFindPartialName(base.TestBase): + + scenarios = [ + ('one-word', {'argv': ['o']}), + ('two-words', {'argv': ['t', 'w']}), + ('three-words', {'argv': ['t', 'w', 'c']}), + ] + + def test(self): + mgr = utils.TestCommandManager(utils.TEST_NAMESPACE) + cmd, name, remaining = mgr.find_command(self.argv) + self.assertTrue(cmd) + self.assertEqual(' '.join(self.argv), name) + self.assertFalse(remaining) + + +class TestGetByPartialName(base.TestBase): + + def setUp(self): + super(TestGetByPartialName, self).setUp() + self.commands = { + 'resource provider list': 1, + 'resource class list': 2, + 'server list': 3, + 'service list': 4} + + def test_no_candidates(self): + self.assertEqual( + [], commandmanager._get_commands_by_partial_name( + ['r', 'p'], self.commands)) + self.assertEqual( + [], commandmanager._get_commands_by_partial_name( + ['r', 'p', 'c'], self.commands)) + + def test_multiple_candidates(self): + self.assertEqual( + 2, len(commandmanager._get_commands_by_partial_name( + ['se', 'li'], self.commands))) + + def test_one_candidate(self): + self.assertEqual( + ['resource provider list'], + commandmanager._get_commands_by_partial_name( + ['r', 'p', 'l'], self.commands)) + self.assertEqual( + ['resource provider list'], + commandmanager._get_commands_by_partial_name( + ['resource', 'provider', 'list'], self.commands)) + self.assertEqual( + ['server list'], + commandmanager._get_commands_by_partial_name( + ['serve', 'l'], self.commands))
  12. Download patch cliff.egg-info/requires.txt

    --- 2.14.1-2/cliff.egg-info/requires.txt 1970-01-01 00:00:00.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff.egg-info/requires.txt 2020-01-08 20:37:02.000000000 +0000 @@ -0,0 +1,10 @@ +pbr!=2.1.0,>=2.0.0 +cmd2!=0.8.3,<0.9.0,>=0.8.0 +PrettyTable<0.8,>=0.7.2 +pyparsing>=2.1.0 +six>=1.10.0 +stevedore>=1.20.0 +PyYAML>=3.12 + +[:(python_version<'3.0')] +unicodecsv>=0.8.0
  13. Download patch ChangeLog
  14. Download patch tox.ini

    --- 2.14.1-2/tox.ini 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/tox.ini 2020-01-08 20:36:15.000000000 +0000 @@ -1,6 +1,6 @@ [tox] minversion = 2.0 -envlist = py35,py27,pep8 +envlist = py27,py37,pep8 [testenv] setenv = @@ -16,7 +16,7 @@ commands = python setup.py test --coverage --coverage-package-name=cliff --slowest --testr-args='{posargs}' coverage report --show-missing deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} + -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/upper-constraints.txt} -r{toxinidir}/test-requirements.txt -r{toxinidir}/requirements.txt
  15. Download patch test-requirements.txt

    --- 2.14.1-2/test-requirements.txt 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/test-requirements.txt 2020-01-08 20:36:15.000000000 +0000 @@ -12,7 +12,8 @@ coverage!=4.4,>=4.0 # Apache-2.0 # sphinx is required in test-requirements in addition to doc/requirements # because there is a sphinx extension that has tests -sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD +sphinx!=1.6.6,!=1.6.7,<2.0.0,>=1.6.2;python_version=='2.7' # BSD +sphinx!=1.6.6,!=1.6.7,!=2.1.0,>=1.6.2;python_version>='3.4' # BSD # Bandit security code scanner bandit>=1.1.0 # Apache-2.0
  16. Download patch cliff/app.py

    --- 2.14.1-2/cliff/app.py 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff/app.py 2020-01-08 20:36:15.000000000 +0000 @@ -324,8 +324,7 @@ class App(object): self.stdin, self.stdout, ) - self.interpreter.cmdloop() - return 0 + return self.interpreter.cmdloop() def get_fuzzy_matches(self, cmd): """return fuzzy matches of unknown command @@ -412,7 +411,8 @@ class App(object): else: self.LOG.error('Could not clean up: %s', err2) if self.options.debug: - raise + # 'raise' here gets caught and does not exit like we want + return result else: try: self.clean_up(cmd, result, None)
  17. Download patch cliff.egg-info/dependency_links.txt

    --- 2.14.1-2/cliff.egg-info/dependency_links.txt 1970-01-01 00:00:00.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff.egg-info/dependency_links.txt 2020-01-08 20:37:02.000000000 +0000 @@ -0,0 +1 @@ +
  18. Download patch doc/requirements.txt

    --- 2.14.1-2/doc/requirements.txt 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/doc/requirements.txt 2020-01-08 20:36:15.000000000 +0000 @@ -1,5 +1,6 @@ # 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. -sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD +sphinx!=1.6.6,!=1.6.7,<2.0.0,>=1.6.2;python_version=='2.7' # BSD +sphinx!=1.6.6,!=1.6.7,!=2.1.0,>=1.6.2;python_version>='3.4' # BSD openstackdocstheme>=1.18.1 # Apache-2.0
  19. Download patch .gitignore

    --- 2.14.1-2/.gitignore 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/.gitignore 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ -*.py[co] - -# Packages -*.egg* -dist -build -eggs -parts -bin -var -sdist -develop-eggs -.installed.cfg -.venv - -# Installer logs -pip-log.txt - -# Unit test / coverage reports -.coverage -.tox - -#Translations -*.mo - -#Mr Developer -.mr.developer.cfg - -#sample output -*.log -*.log.* - -# pbr output -AUTHORS -ChangeLog - -# Editors -*~ -.*.swp -/.stestr/ -/.testrepository/ -/cover/ -.coverage.*
  20. Download patch cliff.egg-info/entry_points.txt

    --- 2.14.1-2/cliff.egg-info/entry_points.txt 1970-01-01 00:00:00.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff.egg-info/entry_points.txt 2020-01-08 20:37:02.000000000 +0000 @@ -0,0 +1,32 @@ +[cliff.demo] +error = cliffdemo.simple:Error +file = cliffdemo.show:File +files = cliffdemo.list:Files +hooked = cliffdemo.hook:Hooked +list files = cliffdemo.list:Files +show file = cliffdemo.show:File +simple = cliffdemo.simple:Simple +two_part = cliffdemo.simple:Simple +unicode = cliffdemo.encoding:Encoding + +[cliff.demo.hooked] +sample-hook = cliffdemo.hook:Hook + +[cliff.formatter.completion] +bash = cliff.complete:CompleteBash +none = cliff.complete:CompleteNoCode + +[cliff.formatter.list] +csv = cliff.formatters.commaseparated:CSVLister +json = cliff.formatters.json_format:JSONFormatter +table = cliff.formatters.table:TableFormatter +value = cliff.formatters.value:ValueFormatter +yaml = cliff.formatters.yaml_format:YAMLFormatter + +[cliff.formatter.show] +json = cliff.formatters.json_format:JSONFormatter +shell = cliff.formatters.shell:ShellFormatter +table = cliff.formatters.table:TableFormatter +value = cliff.formatters.value:ValueFormatter +yaml = cliff.formatters.yaml_format:YAMLFormatter +
  21. Download patch cliff/interactive.py

    --- 2.14.1-2/cliff/interactive.py 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff/interactive.py 2020-01-08 20:36:15.000000000 +0000 @@ -41,7 +41,8 @@ class InteractiveApp(cmd2.Cmd): doc_header = "Shell commands (type help <topic>):" app_cmd_header = "Application commands (type help <topic>):" - def __init__(self, parent_app, command_manager, stdin, stdout): + def __init__(self, parent_app, command_manager, stdin, stdout, + errexit=False): self.parent_app = parent_app if not hasattr(sys.stdin, 'isatty') or sys.stdin.isatty(): self.prompt = '(%s) ' % parent_app.NAME @@ -49,6 +50,7 @@ class InteractiveApp(cmd2.Cmd): # batch/pipe mode self.prompt = '' self.command_manager = command_manager + self.errexit = errexit cmd2.Cmd.__init__(self, 'tab', stdin=stdin, stdout=stdout) def _split_line(self, line): @@ -69,7 +71,11 @@ class InteractiveApp(cmd2.Cmd): # since it already has the logic for executing # the subcommand. line_parts = self._split_line(line) - self.parent_app.run_subcommand(line_parts) + ret = self.parent_app.run_subcommand(line_parts) + if self.errexit: + # Only provide this if errexit is enabled, + # otherise keep old behaviour + return ret def completenames(self, text, line, begidx, endidx): """Tab-completion for command prefix without completer delimiter. @@ -175,4 +181,7 @@ class InteractiveApp(cmd2.Cmd): return statement def cmdloop(self): - self._cmdloop() + # We don't want the cmd2 cmdloop() behaviour, just call the old one + # directly. In part this is because cmd2.cmdloop() doe not return + # anything useful and we want to have a useful exit code. + return self._cmdloop()
  22. Download patch cliff.egg-info/not-zip-safe

    --- 2.14.1-2/cliff.egg-info/not-zip-safe 1970-01-01 00:00:00.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff.egg-info/not-zip-safe 2020-01-08 20:37:02.000000000 +0000 @@ -0,0 +1 @@ +
  23. Download patch debian/watch

    --- 2.14.1-2/debian/watch 2019-07-17 03:08:04.000000000 +0000 +++ 2.18.0-0ubuntu1/debian/watch 2020-01-28 15:42:57.000000000 +0000 @@ -1,3 +1,3 @@ version=3 -opts="uversionmangle=s/\.(b|rc)/~$1/" \ -https://github.com/openstack/cliff/tags .*/(\d[\d\.]+)\.tar\.gz +opts=uversionmangle=s/(rc|a|b|c)/~$1/ \ +http://pypi.debian.net/cliff/cliff-(.+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz)))
  24. Download patch cliff/commandmanager.py

    --- 2.14.1-2/cliff/commandmanager.py 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff/commandmanager.py 2020-01-08 20:36:15.000000000 +0000 @@ -23,6 +23,18 @@ from . import utils LOG = logging.getLogger(__name__) +def _get_commands_by_partial_name(args, commands): + n = len(args) + candidates = [] + for command_name in commands: + command_parts = command_name.split() + if len(command_parts) != n: + continue + if all(command_parts[i].startswith(args[i]) for i in range(n)): + candidates.append(command_name) + return candidates + + class EntryPointWrapper(object): """Wrap up a command class already imported to make it look like a plugin. """ @@ -97,8 +109,17 @@ class CommandManager(object): # Convert the legacy command name to its new name. if name in self._legacy: name = self._legacy[name] + + found = None if name in self.commands: - cmd_ep = self.commands[name] + found = name + else: + candidates = _get_commands_by_partial_name( + argv[:i], self.commands) + if len(candidates) == 1: + found = candidates[0] + if found: + cmd_ep = self.commands[found] if hasattr(cmd_ep, 'resolve'): cmd_factory = cmd_ep.resolve() else:
  25. Download patch setup.cfg

    --- 2.14.1-2/setup.cfg 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/setup.cfg 2020-01-08 20:37:02.000000000 +0000 @@ -2,57 +2,53 @@ name = cliff description-file = README.rst author = OpenStack -author-email = openstack-dev@lists.openstack.org +author-email = openstack-discuss@lists.openstack.org summary = Command Line Interface Formulation Framework home-page = https://docs.openstack.org/cliff/latest/ -classifier = - Development Status :: 5 - Production/Stable - License :: OSI Approved :: Apache Software License - Programming Language :: Python - Programming Language :: Python :: 2 - Programming Language :: Python :: 2.7 - Programming Language :: Python :: 3 - Programming Language :: Python :: 3.5 - Intended Audience :: Developers - Environment :: Console +classifier = + Development Status :: 5 - Production/Stable + License :: OSI Approved :: Apache Software License + Programming Language :: Python + Programming Language :: Python :: 2 + Programming Language :: Python :: 2.7 + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.6 + Programming Language :: Python :: 3.7 + Intended Audience :: Developers + Environment :: Console [files] -packages = - cliff +packages = + cliff [entry_points] -cliff.formatter.list = - table = cliff.formatters.table:TableFormatter - csv = cliff.formatters.commaseparated:CSVLister - value = cliff.formatters.value:ValueFormatter - yaml = cliff.formatters.yaml_format:YAMLFormatter - json = cliff.formatters.json_format:JSONFormatter - -cliff.formatter.show = - table = cliff.formatters.table:TableFormatter - shell = cliff.formatters.shell:ShellFormatter - value = cliff.formatters.value:ValueFormatter - yaml = cliff.formatters.yaml_format:YAMLFormatter - json = cliff.formatters.json_format:JSONFormatter - -cliff.formatter.completion = - bash = cliff.complete:CompleteBash - none = cliff.complete:CompleteNoCode - -# NOTE(dhellmann): Duplicated from demoapp/setup.py for the -# documentation build. -cliff.demo = - simple = cliffdemo.simple:Simple - two_part = cliffdemo.simple:Simple - error = cliffdemo.simple:Error - list files = cliffdemo.list:Files - files = cliffdemo.list:Files - file = cliffdemo.show:File - show file = cliffdemo.show:File - unicode = cliffdemo.encoding:Encoding - hooked = cliffdemo.hook:Hooked -cliff.demo.hooked = - sample-hook = cliffdemo.hook:Hook +cliff.formatter.list = + table = cliff.formatters.table:TableFormatter + csv = cliff.formatters.commaseparated:CSVLister + value = cliff.formatters.value:ValueFormatter + yaml = cliff.formatters.yaml_format:YAMLFormatter + json = cliff.formatters.json_format:JSONFormatter +cliff.formatter.show = + table = cliff.formatters.table:TableFormatter + shell = cliff.formatters.shell:ShellFormatter + value = cliff.formatters.value:ValueFormatter + yaml = cliff.formatters.yaml_format:YAMLFormatter + json = cliff.formatters.json_format:JSONFormatter +cliff.formatter.completion = + bash = cliff.complete:CompleteBash + none = cliff.complete:CompleteNoCode +cliff.demo = + simple = cliffdemo.simple:Simple + two_part = cliffdemo.simple:Simple + error = cliffdemo.simple:Error + list files = cliffdemo.list:Files + files = cliffdemo.list:Files + file = cliffdemo.show:File + show file = cliffdemo.show:File + unicode = cliffdemo.encoding:Encoding + hooked = cliffdemo.hook:Hooked +cliff.demo.hooked = + sample-hook = cliffdemo.hook:Hook [bdist_wheel] universal = 1 @@ -62,3 +58,8 @@ all-files = 1 warning-is-error = 1 build-dir = doc/build source-dir = doc/source + +[egg_info] +tag_build = +tag_date = 0 +
  26. Download patch requirements.txt

    --- 2.14.1-2/requirements.txt 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/requirements.txt 2020-01-08 20:36:15.000000000 +0000 @@ -2,8 +2,7 @@ # of appearance. Changing the order has an impact on the overall integration # process, which may cause wedges in the gate later. pbr!=2.1.0,>=2.0.0 # Apache-2.0 -cmd2!=0.8.3,<0.9.0;python_version<'3.0' # MIT -cmd2!=0.8.3;python_version>='3.0' # MIT +cmd2>=0.8.0,!=0.8.3,<0.9.0 # MIT PrettyTable<0.8,>=0.7.2 # BSD pyparsing>=2.1.0 # MIT six>=1.10.0 # MIT
  27. Download patch cliff.egg-info/top_level.txt

    --- 2.14.1-2/cliff.egg-info/top_level.txt 1970-01-01 00:00:00.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff.egg-info/top_level.txt 2020-01-08 20:37:02.000000000 +0000 @@ -0,0 +1 @@ +cliff
  28. Download patch cliff.egg-info/PKG-INFO

    --- 2.14.1-2/cliff.egg-info/PKG-INFO 1970-01-01 00:00:00.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff.egg-info/PKG-INFO 2020-01-08 20:37:02.000000000 +0000 @@ -0,0 +1,45 @@ +Metadata-Version: 1.1 +Name: cliff +Version: 2.18.0 +Summary: Command Line Interface Formulation Framework +Home-page: https://docs.openstack.org/cliff/latest/ +Author: OpenStack +Author-email: openstack-discuss@lists.openstack.org +License: UNKNOWN +Description: ======================== + Team and repository tags + ======================== + + .. image:: https://governance.openstack.org/tc/badges/cliff.svg + :target: https://governance.openstack.org/tc/reference/tags/index.html + + .. Change things from this point on + + ======================================================= + cliff -- Command Line Interface Formulation Framework + ======================================================= + + cliff is a framework for building command line programs. It uses + `setuptools entry points`_ to provide subcommands, output formatters, and + other extensions. + + .. _setuptools entry points: http://setuptools.readthedocs.io/en/latest/pkg_resources.html#convenience-api + + * Free software: Apache license + * Documentation: https://docs.openstack.org/cliff/latest/ + * Source: https://opendev.org/openstack/cliff + * Bugs: https://bugs.launchpad.net/python-cliff + * Contributors: https://github.com/openstack/cliff/graphs/contributors + + +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Intended Audience :: Developers +Classifier: Environment :: Console
  29. Download patch cliff/command.py

    --- 2.14.1-2/cliff/command.py 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff/command.py 2020-01-08 20:36:15.000000000 +0000 @@ -137,8 +137,10 @@ class Command(object): (h.obj.get_epilog() for h in self._hooks), ) parts.extend(hook_epilogs) - app_dist_name = _get_distribution_for_module( - inspect.getmodule(self.app) + app_dist_name = getattr( + self, 'app_dist_name', _get_distribution_for_module( + inspect.getmodule(self.app) + ) ) dist_name = _get_distribution_for_module(inspect.getmodule(self)) if dist_name and dist_name != app_dist_name: @@ -155,7 +157,8 @@ class Command(object): description=self.get_description(), epilog=self.get_epilog(), prog=prog_name, - formatter_class=_SmartHelpFormatter, + formatter_class=_argparse.SmartHelpFormatter, + conflict_handler='ignore', ) for hook in self._hooks: hook.obj.get_parser(parser) @@ -220,24 +223,3 @@ class Command(object): if ret is not None: return_code = ret return return_code - - -class _SmartHelpFormatter(_argparse.HelpFormatter): - """Smart help formatter to output raw help message if help contain \n. - - Some command help messages maybe have multiple line content, the built-in - argparse.HelpFormatter wrap and split the content according to width, and - ignore \n in the raw help message, it merge multiple line content in one - line to output, that looks messy. SmartHelpFormatter keep the raw help - message format if it contain \n, and wrap long line like HelpFormatter - behavior. - """ - - def _split_lines(self, text, width): - lines = text.splitlines() if '\n' in text else [text] - wrap_lines = [] - for each_line in lines: - wrap_lines.extend( - super(_SmartHelpFormatter, self)._split_lines(each_line, width) - ) - return wrap_lines
  30. Download patch doc/Makefile

    --- 2.14.1-2/doc/Makefile 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/doc/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,153 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = build - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext - -help: - @echo "Please use \`make <target>' where <target> is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - -rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/cliff.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/cliff.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/cliff" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/cliff" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt."
  31. Download patch Makefile

    --- 2.14.1-2/Makefile 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -help: - @echo "release - package and upload a release" - @echo "sdist - package" - @echo "docs - generate HTML documentation" - @echo "clean - remove build artifacts" - -release: docs - rm -rf dist build - python setup.py sdist upload - -sdist: docs - python setup.py sdist - ls -l dist - -clean: - rm -rf dist build *.egg-info - (cd doc && make clean) - -.PHONY: docs -docs: - (cd doc && make clean html)
  32. Download patch cliff.egg-info/pbr.json

    --- 2.14.1-2/cliff.egg-info/pbr.json 1970-01-01 00:00:00.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff.egg-info/pbr.json 2020-01-08 20:37:02.000000000 +0000 @@ -0,0 +1 @@ +{"git_version": "009b13b", "is_release": true} \ No newline at end of file
  33. Download patch AUTHORS

    --- 2.14.1-2/AUTHORS 1970-01-01 00:00:00.000000000 +0000 +++ 2.18.0-0ubuntu1/AUTHORS 2020-01-08 20:37:02.000000000 +0000 @@ -0,0 +1,101 @@ +Akihiro Motoki <amotoki@gmail.com> +Alessandro Pilotti <apilotti@cloudbasesolutions.com> +Andrea Frittoli <andrea.frittoli@hp.com> +Andreas Jaeger <aj@suse.com> +Andreas Jaeger <aj@suse.de> +Andrew Spiers <andrew@andrewspiers.net> +Andrey Volkov <avolkov@mirantis.com> +Atsushi SAKAI <sakaia@jp.fujitsu.com> +Brano Zarnovican <zarnovican@gmail.com> +Cao Xuan Hoang <hoangcx@vn.fujitsu.com> +Cedric Brandily <zzelle@gmail.com> +ChangBo Guo(gcb) <eric.guo@easystack.cn> +Christian Berendt <berendt@b1-systems.de> +Christophe CHAUVET <christophe.chauvet@gmail.com> +Clint Byrum <clint@fewbar.com> +Corey Bryant <corey.bryant@canonical.com> +Dan Kirkwood <dangogh@gmail.com> +Dean Troyer <dtroyer@gmail.com> +Derek Higgins <derekh@redhat.com> +Dirk Mueller <dirk@dmllr.de> +Dirk Mueller <dirk@dmllr> +Doug Hellmann <doug.hellmann@dreamhost.com> +Doug Hellmann <doug.hellmann@gmail.com> +Doug Hellmann <doug@doughellmann.com> +Duncan McGreggor <duncan@dreamhost.com> +Eric Fried <openstack@fried.cc> +Eyal Posener <eyal@stratoscale.com> +Feodor Tersin <ftersin@cloudscaling.com> +Flavio Percoco <flaper87@gmail.com> +Ghanshyam Mann <gmann@ghanshyammann.com> +Hongbin Lu <hongbin.lu@huawei.com> +Ilya Shakhat <ishakhat@mirantis.com> +James Downs <egon@egon.cc> +James E. Blair <jeblair@redhat.com> +Jamie Lennox <jamielennox@redhat.com> +Jaspreet Singh Rawel <jaspreetsinghrawel@gmail.com> +Jeremy Stanley <fungi@yuggoth.org> +Joe Server <jserver@broadway.com> +John Dennis <jdennis@redhat.com> +Jonathan LaCour <jonathan@cleverdevil.org> +Juan Antonio Osorio Robles <jaosorior@redhat.com> +Julien Danjou <julien@danjou.info> +KATO Tomoyuki <kato.tomoyuki@jp.fujitsu.com> +Ken'ichi Ohmichi <ken-oomichi@wx.jp.nec.com> +Kien Nguyen <kiennt@vn.fujitsu.com> +Maciej Kwiek <mkwiek@mirantis.com> +Mark McClain <mark.mcclain@dreamhost.com> +Masayuki Igawa <masayuki.igawa@gmail.com> +Masayuki Igawa <masayuki@igawa.io> +Matt Joyce <matt.joyce@cloudscaling.com> +Matthew Edmonds <edmondsw@us.ibm.com> +Matthew Thode <mthode@mthode.org> +Michael Davies <michael@the-davies.net> +Monty Taylor <mordred@inaugust.com> +Neil Borle <neil.borle@emc.com> +Nguyen Hung Phuong <phuongnh@vn.fujitsu.com> +Nicola Soranzo <nicola.soranzo@earlham.ac.uk> +Pierre-André MOREY <kick@mifamofi.net> +Qiu Yu <qiuyu@ebaysf.com> +Rajath Agasthya <rajathagasthya@gmail.com> +Ricardo Kirkner <ricardo@kirkner.com.ar> +Rui Chen <chenrui.momo@gmail.com> +Ruslan Aliev <raliev@mirantis.com> +Ryan Petrello <lists@ryanpetrello.com> +Ryan Selden <ryanx.seldon@intel.com> +Sascha Peilicke <saschpe@gmx.de> +Sean Perry <sean.perry@hp.com> +Sorin Sbarnea <ssbarnea@redhat.com> +Stephen Finucane <sfinucan@redhat.com> +Steve Baker <sbaker@redhat.com> +Steve Martinelli <s.martinelli@gmail.com> +Terry Howe <terrylhowe@gmail.com> +TerryHowe <terrylhowe@gmail.com> +Thomas Bechtold <tbechtold@suse.com> +Thomas Herve <therve@redhat.com> +Tomaz Muraus <tomaz@tomaz.me> +Tony Breeds <tony@bakeyournoodle.com> +Tony Xu <hhktony@gmail.com> +Vincent Legoll <vincent.legoll@idgrilles.fr> +Vitalii Kulanov <vitaliy@kulanov.org.ua> +Yalei Wang <yalei.wang@intel.com> +Yossi Ovadia <yossi.ovadia@nokia.com> +Yushiro FURUKAWA <y.furukawa_2@jp.fujitsu.com> +ZhongShengping <chdzsp@163.com> +caoyue <yue.cao@easystack.cn> +dineshbhor <dinesh.bhor@nttdata.com> +gcmalloc <gcmalloc@gmail.com> +gengchc2 <geng.changcai2@zte.com.cn> +heavenshell <heavenshell.jp@gmail.com> +howardlee <lihongweibj@inspur.com> +kafka <guowang@unitedstack.com> +kangyufei <kangyf@inspur.com> +lingyongxu <lyxu@fiberhome.com> +liyingjun <yingjun.li@kylin-cloud.com> +markmcclain <mark@four-m.org> +melissaml <ma.lei@99cloud.net> +qingszhao <zhao.daqing@99cloud.net> +qneill <quentin.neill@gmail.com> +shizhihui <zhihui.shi@easystack.cn> +xuanyandong <xuanyandong@inspur.com> +yanpuqing <yanpq@awcloud.com>
  34. Download patch .zuul.yaml

    --- 2.14.1-2/.zuul.yaml 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/.zuul.yaml 2020-01-08 20:36:15.000000000 +0000 @@ -17,7 +17,7 @@ vars: # Set work dir to neutronclient so that if it's triggered by one of the # other repos the tests will run in the same place - zuul_work_dir: src/git.openstack.org/openstack/python-neutronclient + zuul_work_dir: src/opendev.org/openstack/python-neutronclient - project: templates: @@ -26,8 +26,7 @@ - lib-forward-testing-python3 - openstack-lower-constraints-jobs - openstack-python-jobs - - openstack-python35-jobs - - openstack-python36-jobs + - openstack-python3-ussuri-jobs - publish-openstack-docs-pti check: jobs:
  35. Download patch debian/gbp.conf

    --- 2.14.1-2/debian/gbp.conf 1970-01-01 00:00:00.000000000 +0000 +++ 2.18.0-0ubuntu1/debian/gbp.conf 2020-01-28 15:42:57.000000000 +0000 @@ -0,0 +1,7 @@ +[DEFAULT] +debian-branch = master +upstream-tag = %(version)s +pristine-tar = True + +[buildpackage] +export-dir = ../build-area
  36. Download patch cliff/tests/test_interactive.py

    --- 2.14.1-2/cliff/tests/test_interactive.py 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff/tests/test_interactive.py 2020-01-08 20:36:15.000000000 +0000 @@ -24,13 +24,13 @@ class FakeApp(object): class TestInteractive(base.TestBase): - def make_interactive_app(self, *command_names): + def make_interactive_app(self, errexit, *command_names): fake_command_manager = [(x, None) for x in command_names] return InteractiveApp(FakeApp, fake_command_manager, - stdin=None, stdout=None) + stdin=None, stdout=None, errexit=errexit) def _test_completenames(self, expecteds, prefix): - app = self.make_interactive_app('hips', 'hippo', 'nonmatching') + app = self.make_interactive_app(False, 'hips', 'hippo', 'nonmatching') self.assertEqual( set(app.completenames(prefix, '', 0, 1)), set(expecteds)) @@ -58,7 +58,7 @@ class TestInteractive(base.TestBase): def _test_completedefault(self, expecteds, line, begidx): command_names = set(['show file', 'show folder', 'show long', 'list all']) - app = self.make_interactive_app(*command_names) + app = self.make_interactive_app(False, *command_names) observeds = app.completedefault(None, line, begidx, None) self.assertEqual(set(expecteds), set(observeds)) self.assertTrue( @@ -78,3 +78,13 @@ class TestInteractive(base.TestBase): def test_no_completedefault(self): self._test_completedefault([], 'taz ', 4) + + def test_no_errexit(self): + command_names = set(['show file', 'show folder', 'list all']) + app = self.make_interactive_app(False, *command_names) + self.assertFalse(app.errexit) + + def test_errexit(self): + command_names = set(['show file', 'show folder', 'list all']) + app = self.make_interactive_app(True, *command_names) + self.assertTrue(app.errexit)
  37. Download patch cliff/sphinxext.py

    --- 2.14.1-2/cliff/sphinxext.py 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff/sphinxext.py 2020-01-08 20:36:15.000000000 +0000 @@ -322,6 +322,9 @@ class AutoprogramCliffDirective(rst.Dire :returns: A list of nested docutil nodes """ command = command_class(None, None) + if not getattr(command, 'app_dist_name', None): + command.app_dist_name = ( + self.env.config.autoprogram_cliff_app_dist_name) parser = command.get_parser(command_name) ignored_opts = ignored_opts or [] @@ -375,3 +378,4 @@ def setup(app): app.add_directive('autoprogram-cliff', AutoprogramCliffDirective) app.add_config_value('autoprogram_cliff_application', '', True) app.add_config_value('autoprogram_cliff_ignored', ['--help'], True) + app.add_config_value('autoprogram_cliff_app_dist_name', None, True)
  38. Download patch cliff/formatters/json_format.py

    --- 2.14.1-2/cliff/formatters/json_format.py 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff/formatters/json_format.py 2020-01-08 20:36:15.000000000 +0000 @@ -52,3 +52,4 @@ class JSONFormatter(base.ListFormatter, } indent = None if parsed_args.noindent else 2 json.dump(one, stdout, indent=indent) + stdout.write('\n')
  39. Download patch cliff/display.py

    --- 2.14.1-2/cliff/display.py 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff/display.py 2020-01-08 20:36:15.000000000 +0000 @@ -71,7 +71,8 @@ class DisplayCommandBase(command.Command default=[], dest='columns', metavar='COLUMN', - help='specify the column(s) to include, can be repeated', + help='specify the column(s) to include, can be ' + 'repeated to show multiple columns', ) for formatter in self._formatter_plugins: formatter.obj.add_argument_group(parser)
  40. Download patch cliff/tests/test_command.py

    --- 2.14.1-2/cliff/tests/test_command.py 2018-12-20 19:51:11.000000000 +0000 +++ 2.18.0-0ubuntu1/cliff/tests/test_command.py 2020-01-08 20:36:15.000000000 +0000 @@ -45,7 +45,9 @@ class TestCommand(command.Command): ) parser.add_argument( '-z', - help='used in TestArgumentParser', + dest='zippy', + default='zippy-default', + help='defined in TestCommand and used in TestArgumentParser', ) return parser @@ -141,10 +143,32 @@ class TestArgumentParser(base.TestBase): cmd = TestCommand(None, None) parser = cmd.get_parser('NAME') # We should have an exception registering an option with a - # name that already exists because we do not want commands to - # override global options. + # name that already exists because we configure the argument + # parser to ignore conflicts but this option has no other name + # to be used. self.assertRaises( argparse.ArgumentError, parser.add_argument, '-z', ) + + def test_option_name_collision_with_alias(self): + cmd = TestCommand(None, None) + parser = cmd.get_parser('NAME') + # We not should have an exception registering an option with a + # name that already exists because we configure the argument + # parser to ignore conflicts and this option can be added as + # --zero even if the -z is ignored. + parser.add_argument('-z', '--zero') + + def test_resolve_option_with_name_collision(self): + cmd = TestCommand(None, None) + parser = cmd.get_parser('NAME') + parser.add_argument( + '-z', '--zero', + dest='zero', + default='zero-default', + ) + args = parser.parse_args(['-z', 'foo', 'a', 'b']) + self.assertEqual(args.zippy, 'foo') + self.assertEqual(args.zero, 'zero-default')
  1. migrate
  2. python-cliff