Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-shtab for openSUSE:Factory checked in at 2026-07-14 13:45:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-shtab (Old) and /work/SRC/openSUSE:Factory/.python-shtab.new.1991 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-shtab" Tue Jul 14 13:45:26 2026 rev:4 rq:1365049 version:1.8.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-shtab/python-shtab.changes 2026-01-28 15:07:37.591197976 +0100 +++ /work/SRC/openSUSE:Factory/.python-shtab.new.1991/python-shtab.changes 2026-07-14 13:45:27.081809836 +0200 @@ -1,0 +2,6 @@ +Sun Jul 5 10:38:06 UTC 2026 - Dirk Müller <[email protected]> + +- update to 1.8.1: + * python 3.14 support + +------------------------------------------------------------------- Old: ---- shtab-1.8.0.tar.gz New: ---- shtab-1.8.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-shtab.spec ++++++ --- /var/tmp/diff_new_pack.IMJYiF/_old 2026-07-14 13:45:27.901837865 +0200 +++ /var/tmp/diff_new_pack.IMJYiF/_new 2026-07-14 13:45:27.905838003 +0200 @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-shtab -Version: 1.8.0 +Version: 1.8.1 Release: 0 Summary: Automagic shell tab completion for Python CLI applications License: Apache-2.0 ++++++ shtab-1.8.0.tar.gz -> shtab-1.8.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/.github/FUNDING.yml new/shtab-1.8.1/.github/FUNDING.yml --- old/shtab-1.8.0/.github/FUNDING.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/shtab-1.8.1/.github/FUNDING.yml 2026-07-03 13:43:04.000000000 +0200 @@ -0,0 +1,3 @@ +github: [casperdcl, tqdm] +thanks_dev: u/gh/tqdm +custom: https://tqdm.github.io/merch diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/.github/workflows/test.yml new/shtab-1.8.1/.github/workflows/test.yml --- old/shtab-1.8.0/.github/workflows/test.yml 2025-11-18 11:57:23.000000000 +0100 +++ new/shtab-1.8.1/.github/workflows/test.yml 2026-07-03 13:43:04.000000000 +0200 @@ -11,17 +11,17 @@ runs-on: ubuntu-latest strategy: matrix: - python: [3.9, 3.13] + python: [3.9, 3.14] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: {fetch-depth: 0} - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python }} - name: Install run: pip install -U -e .[dev] - run: pytest - - uses: codecov/codecov-action@v5 + - uses: codecov/codecov-action@v7 with: token: ${{ secrets.CODECOV_TOKEN }} deploy: @@ -33,12 +33,14 @@ id-token: write runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - with: {fetch-depth: 0} - - uses: actions/setup-python@v5 + - uses: actions/checkout@v7 + with: + fetch-depth: 0 + token: ${{ secrets.GH_TOKEN || github.token }} + - uses: actions/setup-python@v6 with: {python-version: '3.x'} - id: dist - uses: casperdcl/deploy-pypi@v2 + uses: casperdcl/deploy-pypi@v3 with: build: true requirements: 'build twine packaging>=24.2' # https://github.com/pypa/twine/issues/1216 @@ -65,5 +67,5 @@ history: false dir: dist/site nojekyll: true - name: Olivaw[bot] - email: [email protected] + name: tqdm[bot] + email: [email protected] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/.gitignore new/shtab-1.8.1/.gitignore --- old/shtab-1.8.0/.gitignore 2025-11-18 11:57:23.000000000 +0100 +++ new/shtab-1.8.1/.gitignore 2026-07-03 13:43:04.000000000 +0200 @@ -2,9 +2,7 @@ __pycache__/ # Packages -/MANIFEST.in /*.egg*/ -/shtab/_dist_ver.py /build/ /dist/ /docs/build/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/.pre-commit-config.yaml new/shtab-1.8.1/.pre-commit-config.yaml --- old/shtab-1.8.0/.pre-commit-config.yaml 2025-11-18 11:57:23.000000000 +0100 +++ new/shtab-1.8.1/.pre-commit-config.yaml 2026-07-03 13:43:04.000000000 +0200 @@ -2,7 +2,7 @@ python: python3 repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v5.0.0 + rev: v6.0.0 hooks: - id: check-added-large-files - id: check-builtin-literals @@ -26,6 +26,14 @@ entry: TODO types: [text] exclude: ^(.pre-commit-config.yaml|.github/workflows/test.yml)$ + - id: pytest + name: pytest quiet + language: python + entry: pytest + args: [-qq] + types: [python] + pass_filenames: false + additional_dependencies: [pytest-cov, pytest-timeout] - repo: https://github.com/PyCQA/flake8 rev: 7.3.0 hooks: @@ -38,9 +46,13 @@ - flake8-debugger - flake8-isort - flake8-pyproject - - flake8-string-format +- repo: https://github.com/asottile/pyupgrade + rev: v3.21.2 + hooks: + - id: pyupgrade + args: [--py39-plus] - repo: https://github.com/pre-commit/mirrors-mypy - rev: v1.16.1 + rev: v2.1.0 hooks: - id: mypy additional_dependencies: [types-setuptools] @@ -51,7 +63,7 @@ args: [-i] additional_dependencies: [toml] - repo: https://github.com/PyCQA/isort - rev: 6.0.1 + rev: 9.0.0a3 hooks: - id: isort ci: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/CONTRIBUTING.md new/shtab-1.8.1/CONTRIBUTING.md --- old/shtab-1.8.0/CONTRIBUTING.md 2025-11-18 11:57:23.000000000 +0100 +++ new/shtab-1.8.1/CONTRIBUTING.md 2026-07-03 13:43:04.000000000 +0200 @@ -6,7 +6,7 @@ ```bash # install development dependencies -shtab (main)$ pip install pre-commit -e .[dev] +shtab (main)$ pip install pre-commit -e ".[dev]" shtab (main)$ pre-commit install # install pre-commit checks shtab (main)$ pytest # run all tests ``` @@ -42,5 +42,5 @@ Tests and deployment are handled automatically by continuous integration. Simply tag a commit `v{major}.{minor}.{patch}` and wait for a draft release to appear -at <https://github.com/iterative/shtab/releases>. Tidy up the draft's +at <https://github.com/tqdm/shtab/releases>. Tidy up the draft's description before publishing it. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/LICENCE new/shtab-1.8.1/LICENCE --- old/shtab-1.8.0/LICENCE 2025-11-18 11:57:23.000000000 +0100 +++ new/shtab-1.8.1/LICENCE 2026-07-03 13:43:04.000000000 +0200 @@ -1,13 +1,9 @@ -Copyright 2020-2025 Casper da Costa-Luis +Copyright 2020-2026 Casper da Costa-Luis -Licensed under the Apache Licence, Version 2.0 (the "Licence"); -you may not use this project except in compliance with the Licence. -You may obtain a copy of the Licence at +Mozilla Public Licence (MPL) v. 2.0 - Exhibit A +----------------------------------------------- - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the Licence is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the Licence for the specific language governing permissions and -limitations under the Licence. +This Source Code Form is subject to the terms of the +Mozilla Public License, v. 2.0. +If a copy of the MPL was not distributed with this project, +You can obtain one at https://mozilla.org/MPL/2.0/. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/PKG-INFO new/shtab-1.8.1/PKG-INFO --- old/shtab-1.8.0/PKG-INFO 2025-11-18 11:57:34.039341000 +0100 +++ new/shtab-1.8.1/PKG-INFO 2026-07-03 13:43:13.987985400 +0200 @@ -1,13 +1,13 @@ Metadata-Version: 2.4 Name: shtab -Version: 1.8.0 +Version: 1.8.1 Summary: Automagic shell tab completion for Python CLI applications Author-email: Casper da Costa-Luis <[email protected]> -Maintainer-email: Iterative <[email protected]> -License-Expression: Apache-2.0 -Project-URL: documentation, https://docs.iterative.ai/shtab -Project-URL: repository, https://github.com/iterative/shtab -Project-URL: changelog, https://github.com/iterative/shtab/releases +Maintainer-email: tqdm developers <[email protected]> +License: MPL-2.0 +Project-URL: documentation, https://tqdm.github.io/shtab +Project-URL: repository, https://github.com/tqdm/shtab +Project-URL: changelog, https://github.com/tqdm/shtab/releases Keywords: tab,complete,completion,shell,bash,zsh,argparse Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: Console @@ -34,6 +34,7 @@ Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: Implementation Classifier: Programming Language :: Python :: Implementation :: IronPython @@ -112,19 +113,19 @@ - ``pip install shtab``, or - ``conda install -c conda-forge shtab`` -See `operating system-specific instructions in the docs <https://docs.iterative.ai/shtab/#installation>`_. +See `operating system-specific instructions in the docs <https://tqdm.github.io/shtab/#installation>`_. Usage ----- There are two ways of using ``shtab``: -- `CLI Usage <https://docs.iterative.ai/shtab/use/#cli-usage>`_: ``shtab``'s own CLI interface for external applications +- `CLI Usage <https://tqdm.github.io/shtab/use/#cli-usage>`_: ``shtab``'s own CLI interface for external applications - may not require any code modifications whatsoever - end-users execute ``shtab your_cli_app.your_parser_object`` -- `Library Usage <https://docs.iterative.ai/shtab/use/#library-usage>`_: as a library integrated into your CLI application +- `Library Usage <https://tqdm.github.io/shtab/use/#library-usage>`_: as a library integrated into your CLI application - adds a couple of lines to your application - argument mode: end-users execute ``your_cli_app --print-completion {bash,zsh,tcsh}`` @@ -133,12 +134,12 @@ Examples -------- -See `the docs for usage examples <https://docs.iterative.ai/shtab/use/#main.py>`_. +See `the docs for usage examples <https://tqdm.github.io/shtab/use/#main.py>`_. FAQs ---- -Not working? Check out `frequently asked questions <https://docs.iterative.ai/shtab/#faqs>`_. +Not working? Check out `frequently asked questions <https://tqdm.github.io/shtab/#faqs>`_. Alternatives ------------ @@ -162,23 +163,23 @@ Contributions ------------- -Please do open `issues <https://github.com/iterative/shtab/issues>`_ & `pull requests <https://github.com/iterative/shtab/pulls>`_! Some ideas: +Please do open `issues <https://github.com/tqdm/shtab/issues>`_ & `pull requests <https://github.com/tqdm/shtab/pulls>`_! Some ideas: -- support ``fish`` (`#174 <https://github.com/iterative/shtab/pull/174>`_) +- support ``fish`` (`#174 <https://github.com/tqdm/shtab/pull/174>`_) - support ``powershell`` See -`CONTRIBUTING.md <https://github.com/iterative/shtab/tree/main/CONTRIBUTING.md>`_ +`CONTRIBUTING.md <https://github.com/tqdm/shtab/tree/main/CONTRIBUTING.md>`_ for more guidance. |Hits| -.. |Logo| image:: https://github.com/iterative/shtab/raw/main/meta/logo.png -.. |Tests| image:: https://img.shields.io/github/actions/workflow/status/iterative/shtab/test.yml?logo=github&label=tests - :target: https://github.com/iterative/shtab/actions +.. |Logo| image:: https://github.com/tqdm/shtab/raw/main/meta/logo.png +.. |Tests| image:: https://img.shields.io/github/actions/workflow/status/tqdm/shtab/test.yml?logo=github&label=tests + :target: https://github.com/tqdm/shtab/actions :alt: Tests -.. |Coverage| image:: https://codecov.io/gh/iterative/shtab/branch/main/graph/badge.svg - :target: https://codecov.io/gh/iterative/shtab +.. |Coverage| image:: https://codecov.io/gh/tqdm/shtab/branch/main/graph/badge.svg + :target: https://codecov.io/gh/tqdm/shtab :alt: Coverage .. |Conda| image:: https://img.shields.io/conda/v/conda-forge/shtab.svg?label=conda&logo=conda-forge :target: https://anaconda.org/conda-forge/shtab @@ -189,6 +190,6 @@ .. |PyPI-Downloads| image:: https://img.shields.io/pypi/dm/shtab.svg?label=pypi%20downloads&logo=PyPI&logoColor=white :target: https://pepy.tech/project/shtab :alt: Downloads -.. |Hits| image:: https://cgi.cdcl.ml/hits?q=shtab&style=social&r=https://github.com/iterative/shtab&a=hidden - :target: https://cgi.cdcl.ml/hits?q=shtab&a=plot&r=https://github.com/iterative/shtab&style=social +.. |Hits| image:: https://cgi.cdcl.ml/hits?q=shtab&style=social&r=https://github.com/tqdm/shtab&a=hidden + :target: https://cgi.cdcl.ml/hits?q=shtab&a=plot&r=https://github.com/tqdm/shtab&style=social :alt: Hits diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/README.rst new/shtab-1.8.1/README.rst --- old/shtab-1.8.0/README.rst 2025-11-18 11:57:23.000000000 +0100 +++ new/shtab-1.8.1/README.rst 2026-07-03 13:43:04.000000000 +0200 @@ -45,19 +45,19 @@ - ``pip install shtab``, or - ``conda install -c conda-forge shtab`` -See `operating system-specific instructions in the docs <https://docs.iterative.ai/shtab/#installation>`_. +See `operating system-specific instructions in the docs <https://tqdm.github.io/shtab/#installation>`_. Usage ----- There are two ways of using ``shtab``: -- `CLI Usage <https://docs.iterative.ai/shtab/use/#cli-usage>`_: ``shtab``'s own CLI interface for external applications +- `CLI Usage <https://tqdm.github.io/shtab/use/#cli-usage>`_: ``shtab``'s own CLI interface for external applications - may not require any code modifications whatsoever - end-users execute ``shtab your_cli_app.your_parser_object`` -- `Library Usage <https://docs.iterative.ai/shtab/use/#library-usage>`_: as a library integrated into your CLI application +- `Library Usage <https://tqdm.github.io/shtab/use/#library-usage>`_: as a library integrated into your CLI application - adds a couple of lines to your application - argument mode: end-users execute ``your_cli_app --print-completion {bash,zsh,tcsh}`` @@ -66,12 +66,12 @@ Examples -------- -See `the docs for usage examples <https://docs.iterative.ai/shtab/use/#main.py>`_. +See `the docs for usage examples <https://tqdm.github.io/shtab/use/#main.py>`_. FAQs ---- -Not working? Check out `frequently asked questions <https://docs.iterative.ai/shtab/#faqs>`_. +Not working? Check out `frequently asked questions <https://tqdm.github.io/shtab/#faqs>`_. Alternatives ------------ @@ -95,23 +95,23 @@ Contributions ------------- -Please do open `issues <https://github.com/iterative/shtab/issues>`_ & `pull requests <https://github.com/iterative/shtab/pulls>`_! Some ideas: +Please do open `issues <https://github.com/tqdm/shtab/issues>`_ & `pull requests <https://github.com/tqdm/shtab/pulls>`_! Some ideas: -- support ``fish`` (`#174 <https://github.com/iterative/shtab/pull/174>`_) +- support ``fish`` (`#174 <https://github.com/tqdm/shtab/pull/174>`_) - support ``powershell`` See -`CONTRIBUTING.md <https://github.com/iterative/shtab/tree/main/CONTRIBUTING.md>`_ +`CONTRIBUTING.md <https://github.com/tqdm/shtab/tree/main/CONTRIBUTING.md>`_ for more guidance. |Hits| -.. |Logo| image:: https://github.com/iterative/shtab/raw/main/meta/logo.png -.. |Tests| image:: https://img.shields.io/github/actions/workflow/status/iterative/shtab/test.yml?logo=github&label=tests - :target: https://github.com/iterative/shtab/actions +.. |Logo| image:: https://github.com/tqdm/shtab/raw/main/meta/logo.png +.. |Tests| image:: https://img.shields.io/github/actions/workflow/status/tqdm/shtab/test.yml?logo=github&label=tests + :target: https://github.com/tqdm/shtab/actions :alt: Tests -.. |Coverage| image:: https://codecov.io/gh/iterative/shtab/branch/main/graph/badge.svg - :target: https://codecov.io/gh/iterative/shtab +.. |Coverage| image:: https://codecov.io/gh/tqdm/shtab/branch/main/graph/badge.svg + :target: https://codecov.io/gh/tqdm/shtab :alt: Coverage .. |Conda| image:: https://img.shields.io/conda/v/conda-forge/shtab.svg?label=conda&logo=conda-forge :target: https://anaconda.org/conda-forge/shtab @@ -122,6 +122,6 @@ .. |PyPI-Downloads| image:: https://img.shields.io/pypi/dm/shtab.svg?label=pypi%20downloads&logo=PyPI&logoColor=white :target: https://pepy.tech/project/shtab :alt: Downloads -.. |Hits| image:: https://cgi.cdcl.ml/hits?q=shtab&style=social&r=https://github.com/iterative/shtab&a=hidden - :target: https://cgi.cdcl.ml/hits?q=shtab&a=plot&r=https://github.com/iterative/shtab&style=social +.. |Hits| image:: https://cgi.cdcl.ml/hits?q=shtab&style=social&r=https://github.com/tqdm/shtab&a=hidden + :target: https://cgi.cdcl.ml/hits?q=shtab&a=plot&r=https://github.com/tqdm/shtab&style=social :alt: Hits diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/docs/index.md new/shtab-1.8.1/docs/index.md --- old/shtab-1.8.0/docs/index.md 2025-11-18 11:57:23.000000000 +0100 +++ new/shtab-1.8.1/docs/index.md 2026-07-03 13:43:04.000000000 +0200 @@ -1,8 +1,8 @@ - + [](https://pepy.tech/project/shtab) -[](https://github.com/iterative/shtab/actions) -[](https://codecov.io/gh/iterative/shtab) +[](https://github.com/tqdm/shtab/actions) +[](https://codecov.io/gh/tqdm/shtab) [](https://pypi.org/project/shtab) [](https://anaconda.org/conda-forge/shtab) @@ -109,14 +109,14 @@ Please do open [issues][GH-issue] & [pull requests][GH-pr]! Some ideas: -- support `fish` ([#174](https://github.com/iterative/shtab/pull/174)) +- support `fish` ([#174](https://github.com/tqdm/shtab/pull/174)) - support `powershell` See -[CONTRIBUTING.md](https://github.com/iterative/shtab/tree/main/CONTRIBUTING.md) +[CONTRIBUTING.md](https://github.com/tqdm/shtab/tree/main/CONTRIBUTING.md) for more guidance. -[](https://cgi.cdcl.ml/hits?q=shtab&a=plot&r=https://github.com/iterative/shtab&style=social) +[](https://cgi.cdcl.ml/hits?q=shtab&a=plot&r=https://github.com/tqdm/shtab&style=social) -[GH-issue]: https://github.com/iterative/shtab/issues -[GH-pr]: https://github.com/iterative/shtab/pulls +[GH-issue]: https://github.com/tqdm/shtab/issues +[GH-pr]: https://github.com/tqdm/shtab/pulls diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/docs/pydoc-markdown.yml new/shtab-1.8.1/docs/pydoc-markdown.yml --- old/shtab-1.8.0/docs/pydoc-markdown.yml 2025-11-18 11:57:23.000000000 +0100 +++ new/shtab-1.8.1/docs/pydoc-markdown.yml 2026-07-03 13:43:04.000000000 +0200 @@ -7,13 +7,13 @@ - type: crossref hooks: pre-render: - - sed 's#](./#](https://github.com/iterative/shtab/tree/main/#g' ../CONTRIBUTING.md > contributing.md + - sed 's#](./#](https://github.com/tqdm/shtab/tree/main/#g' ../CONTRIBUTING.md > contributing.md renderer: type: mkdocs markdown: source_linker: type: github - repo: iterative/shtab + repo: tqdm/shtab root: .. source_position: before signature source_format: | @@ -33,11 +33,11 @@ - title: External Links children: - title: Source Code - href: https://github.com/iterative/shtab + href: https://github.com/tqdm/shtab - title: Changelog - href: https://github.com/iterative/shtab/releases + href: https://github.com/tqdm/shtab/releases - title: Issues - href: https://github.com/iterative/shtab/issues?q= + href: https://github.com/tqdm/shtab/issues?q= - title: Contributing name: contributing source: contributing.md @@ -47,10 +47,10 @@ mkdocs_config: site_name: shtab documentation site_description: Automagic shell tab completion for Python CLI applications - site_url: https://docs.iterative.ai/shtab/ - site_author: Iterative - repo_name: iterative/shtab - repo_url: https://github.com/iterative/shtab + site_url: https://tqdm.github.io/shtab/ + site_author: Casper da Costa-Luis + repo_name: tqdm/shtab + repo_url: https://github.com/tqdm/shtab copyright: | © Casper da Costa-Luis <a href="https://github.com/casperdcl">@casperdcl</a> 2021 @@ -58,8 +58,8 @@ generator: false theme: name: material - logo: https://github.com/iterative/shtab/raw/main/meta/logo.png - favicon: https://github.com/iterative/shtab/raw/main/meta/logo.png + logo: https://github.com/tqdm/shtab/raw/main/meta/logo.png + favicon: https://github.com/tqdm/shtab/raw/main/meta/logo.png features: [content.tabs.link] palette: - scheme: default diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/docs/pydoc_markdown_shtab.py new/shtab-1.8.1/docs/pydoc_markdown_shtab.py --- old/shtab-1.8.0/docs/pydoc_markdown_shtab.py 2025-11-18 11:57:23.000000000 +0100 +++ new/shtab-1.8.1/docs/pydoc_markdown_shtab.py 2026-07-03 13:43:04.000000000 +0200 @@ -12,6 +12,6 @@ flags=re.M) # fix code cross-references node.docstring.content = re.sub(r"<../(\S+)>", - r"[\1](https://github.com/iterative/shtab/tree/main/\1)", + r"[\1](https://github.com/tqdm/shtab/tree/main/\1)", node.docstring.content, flags=re.M) return super()._process(node) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/docs/use.md new/shtab-1.8.1/docs/use.md --- old/shtab-1.8.0/docs/use.md 2025-11-18 11:57:23.000000000 +0100 +++ new/shtab-1.8.1/docs/use.md 2026-07-03 13:43:04.000000000 +0200 @@ -99,7 +99,7 @@ ``` !!! tip - See the [examples/](https://github.com/iterative/shtab/tree/main/examples) + See the [examples/](https://github.com/tqdm/shtab/tree/main/examples) folder for more. Any existing `argparse`-based scripts should be supported with minimal effort. @@ -148,14 +148,14 @@ ## Library Usage !!! tip - See the [examples/](https://github.com/iterative/shtab/tree/main/examples) + See the [examples/](https://github.com/tqdm/shtab/tree/main/examples) folder for more. Complex projects with subparsers and custom completions for paths matching certain patterns (e.g. `--file=*.txt`) are fully supported (see -[examples/customcomplete.py](https://github.com/iterative/shtab/tree/main/examples/customcomplete.py) +[examples/customcomplete.py](https://github.com/tqdm/shtab/tree/main/examples/customcomplete.py) or even -[iterative/dvc:commands/completion.py](https://github.com/iterative/dvc/blob/main/dvc/commands/completion.py) +[treeverse/dvc:commands/completion.py](https://github.com/treeverse/dvc/blob/main/dvc/commands/completion.py) for example). Add direct support to scripts for a little more configurability: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/pyproject.toml new/shtab-1.8.1/pyproject.toml --- old/shtab-1.8.0/pyproject.toml 2025-11-18 11:57:23.000000000 +0100 +++ new/shtab-1.8.1/pyproject.toml 2026-07-03 13:43:04.000000000 +0200 @@ -3,8 +3,6 @@ build-backend = "setuptools.build_meta" [tool.setuptools_scm] -write_to = "shtab/_dist_ver.py" -write_to_template = "__version__ = '{version}'\n" [tool.setuptools.packages.find] exclude = ["docs", "tests", "examples"] @@ -13,20 +11,20 @@ "*" = ["logo.png"] [project.urls] -documentation = "https://docs.iterative.ai/shtab" -repository = "https://github.com/iterative/shtab" -changelog = "https://github.com/iterative/shtab/releases" +documentation = "https://tqdm.github.io/shtab" +repository = "https://github.com/tqdm/shtab" +changelog = "https://github.com/tqdm/shtab/releases" [project] name = "shtab" dynamic = ["version"] authors = [{name = "Casper da Costa-Luis", email = "[email protected]"}] -maintainers = [{name = "Iterative", email = "[email protected]"}] +maintainers = [{name = "tqdm developers", email = "[email protected]"}] description = "Automagic shell tab completion for Python CLI applications" readme = "README.rst" requires-python = ">=3.9" keywords = ["tab", "complete", "completion", "shell", "bash", "zsh", "argparse"] -license = "Apache-2.0" +license = {text = "MPL-2.0"} classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Console", @@ -53,6 +51,7 @@ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation", "Programming Language :: Python :: Implementation :: IronPython", @@ -116,3 +115,8 @@ python_files = ["test_*.py"] testpaths = ["tests"] addopts = "-v --tb=short -rxs -W=error --durations=0 --cov=shtab --cov-report=term-missing --cov-report=xml" + +[tool.coverage.run] +branch = true +[tool.coverage.report] +show_missing = true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/shtab/__init__.py new/shtab-1.8.1/shtab/__init__.py --- old/shtab-1.8.0/shtab/__init__.py 2025-11-18 11:57:23.000000000 +0100 +++ new/shtab-1.8.1/shtab/__init__.py 2026-07-03 13:43:04.000000000 +0200 @@ -16,28 +16,25 @@ ) from collections import defaultdict from functools import total_ordering +from importlib.metadata import PackageNotFoundError, version from itertools import starmap from string import Template -from typing import Any, Dict, List +from typing import Any, Callable from typing import Optional as Opt from typing import Union # version detector. Precedence: installed dist, git, 'UNKNOWN' try: - from ._dist_ver import __version__ -except ImportError: - try: - from setuptools_scm import get_version + __version__ = version('shtab') +except PackageNotFoundError: + __version__ = "UNKNOWN" - __version__ = get_version(root="..", relative_to=__file__) - except (ImportError, LookupError): - __version__ = "UNKNOWN" __all__ = ["complete", "add_argument_to", "SUPPORTED_SHELLS", "FILE", "DIRECTORY", "DIR"] log = logging.getLogger(__name__) -SUPPORTED_SHELLS: List[str] = [] -_SUPPORTED_COMPLETERS = {} -CHOICE_FUNCTIONS: Dict[str, Dict[str, str]] = { +SUPPORTED_SHELLS: list[str] = [] +_SUPPORTED_COMPLETERS: dict[str, Callable] = {} +CHOICE_FUNCTIONS: dict[str, dict[str, str]] = { "file": {"bash": "_shtab_compgen_files", "zsh": "_files", "tcsh": "f"}, "directory": {"bash": "_shtab_compgen_dirs", "zsh": "_files -/", "tcsh": "d"}} FILE = CHOICE_FUNCTIONS["file"] @@ -801,7 +798,7 @@ def complete(parser: ArgumentParser, shell: str = "bash", root_prefix: Opt[str] = None, - preamble: Union[str, Dict[str, str]] = "", choice_functions: Opt[Any] = None) -> str: + preamble: Union[str, dict[str, str]] = "", choice_functions: Opt[Any] = None) -> str: """ shell: bash/zsh/tcsh @@ -827,7 +824,7 @@ ) -def completion_action(parent: Opt[ArgumentParser] = None, preamble: Union[str, Dict[str, +def completion_action(parent: Opt[ArgumentParser] = None, preamble: Union[str, dict[str, str]] = ""): class PrintCompletionAction(_ShtabPrintCompletionAction): def __call__(self, parser, namespace, values, option_string=None): @@ -839,10 +836,10 @@ def add_argument_to( parser: ArgumentParser, - option_string: Union[str, List[str]] = "--print-completion", + option_string: Union[str, list[str]] = "--print-completion", help: str = "print shell completion script", parent: Opt[ArgumentParser] = None, - preamble: Union[str, Dict[str, str]] = "", + preamble: Union[str, dict[str, str]] = "", ): """ option_string: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/shtab/_dist_ver.py new/shtab-1.8.1/shtab/_dist_ver.py --- old/shtab-1.8.0/shtab/_dist_ver.py 2025-11-18 11:57:33.000000000 +0100 +++ new/shtab-1.8.1/shtab/_dist_ver.py 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -__version__ = '1.8.0' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/shtab.egg-info/PKG-INFO new/shtab-1.8.1/shtab.egg-info/PKG-INFO --- old/shtab-1.8.0/shtab.egg-info/PKG-INFO 2025-11-18 11:57:34.000000000 +0100 +++ new/shtab-1.8.1/shtab.egg-info/PKG-INFO 2026-07-03 13:43:13.000000000 +0200 @@ -1,13 +1,13 @@ Metadata-Version: 2.4 Name: shtab -Version: 1.8.0 +Version: 1.8.1 Summary: Automagic shell tab completion for Python CLI applications Author-email: Casper da Costa-Luis <[email protected]> -Maintainer-email: Iterative <[email protected]> -License-Expression: Apache-2.0 -Project-URL: documentation, https://docs.iterative.ai/shtab -Project-URL: repository, https://github.com/iterative/shtab -Project-URL: changelog, https://github.com/iterative/shtab/releases +Maintainer-email: tqdm developers <[email protected]> +License: MPL-2.0 +Project-URL: documentation, https://tqdm.github.io/shtab +Project-URL: repository, https://github.com/tqdm/shtab +Project-URL: changelog, https://github.com/tqdm/shtab/releases Keywords: tab,complete,completion,shell,bash,zsh,argparse Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: Console @@ -34,6 +34,7 @@ Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3.14 Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: Implementation Classifier: Programming Language :: Python :: Implementation :: IronPython @@ -112,19 +113,19 @@ - ``pip install shtab``, or - ``conda install -c conda-forge shtab`` -See `operating system-specific instructions in the docs <https://docs.iterative.ai/shtab/#installation>`_. +See `operating system-specific instructions in the docs <https://tqdm.github.io/shtab/#installation>`_. Usage ----- There are two ways of using ``shtab``: -- `CLI Usage <https://docs.iterative.ai/shtab/use/#cli-usage>`_: ``shtab``'s own CLI interface for external applications +- `CLI Usage <https://tqdm.github.io/shtab/use/#cli-usage>`_: ``shtab``'s own CLI interface for external applications - may not require any code modifications whatsoever - end-users execute ``shtab your_cli_app.your_parser_object`` -- `Library Usage <https://docs.iterative.ai/shtab/use/#library-usage>`_: as a library integrated into your CLI application +- `Library Usage <https://tqdm.github.io/shtab/use/#library-usage>`_: as a library integrated into your CLI application - adds a couple of lines to your application - argument mode: end-users execute ``your_cli_app --print-completion {bash,zsh,tcsh}`` @@ -133,12 +134,12 @@ Examples -------- -See `the docs for usage examples <https://docs.iterative.ai/shtab/use/#main.py>`_. +See `the docs for usage examples <https://tqdm.github.io/shtab/use/#main.py>`_. FAQs ---- -Not working? Check out `frequently asked questions <https://docs.iterative.ai/shtab/#faqs>`_. +Not working? Check out `frequently asked questions <https://tqdm.github.io/shtab/#faqs>`_. Alternatives ------------ @@ -162,23 +163,23 @@ Contributions ------------- -Please do open `issues <https://github.com/iterative/shtab/issues>`_ & `pull requests <https://github.com/iterative/shtab/pulls>`_! Some ideas: +Please do open `issues <https://github.com/tqdm/shtab/issues>`_ & `pull requests <https://github.com/tqdm/shtab/pulls>`_! Some ideas: -- support ``fish`` (`#174 <https://github.com/iterative/shtab/pull/174>`_) +- support ``fish`` (`#174 <https://github.com/tqdm/shtab/pull/174>`_) - support ``powershell`` See -`CONTRIBUTING.md <https://github.com/iterative/shtab/tree/main/CONTRIBUTING.md>`_ +`CONTRIBUTING.md <https://github.com/tqdm/shtab/tree/main/CONTRIBUTING.md>`_ for more guidance. |Hits| -.. |Logo| image:: https://github.com/iterative/shtab/raw/main/meta/logo.png -.. |Tests| image:: https://img.shields.io/github/actions/workflow/status/iterative/shtab/test.yml?logo=github&label=tests - :target: https://github.com/iterative/shtab/actions +.. |Logo| image:: https://github.com/tqdm/shtab/raw/main/meta/logo.png +.. |Tests| image:: https://img.shields.io/github/actions/workflow/status/tqdm/shtab/test.yml?logo=github&label=tests + :target: https://github.com/tqdm/shtab/actions :alt: Tests -.. |Coverage| image:: https://codecov.io/gh/iterative/shtab/branch/main/graph/badge.svg - :target: https://codecov.io/gh/iterative/shtab +.. |Coverage| image:: https://codecov.io/gh/tqdm/shtab/branch/main/graph/badge.svg + :target: https://codecov.io/gh/tqdm/shtab :alt: Coverage .. |Conda| image:: https://img.shields.io/conda/v/conda-forge/shtab.svg?label=conda&logo=conda-forge :target: https://anaconda.org/conda-forge/shtab @@ -189,6 +190,6 @@ .. |PyPI-Downloads| image:: https://img.shields.io/pypi/dm/shtab.svg?label=pypi%20downloads&logo=PyPI&logoColor=white :target: https://pepy.tech/project/shtab :alt: Downloads -.. |Hits| image:: https://cgi.cdcl.ml/hits?q=shtab&style=social&r=https://github.com/iterative/shtab&a=hidden - :target: https://cgi.cdcl.ml/hits?q=shtab&a=plot&r=https://github.com/iterative/shtab&style=social +.. |Hits| image:: https://cgi.cdcl.ml/hits?q=shtab&style=social&r=https://github.com/tqdm/shtab&a=hidden + :target: https://cgi.cdcl.ml/hits?q=shtab&a=plot&r=https://github.com/tqdm/shtab&style=social :alt: Hits diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/shtab.egg-info/SOURCES.txt new/shtab-1.8.1/shtab.egg-info/SOURCES.txt --- old/shtab-1.8.0/shtab.egg-info/SOURCES.txt 2025-11-18 11:57:34.000000000 +0100 +++ new/shtab-1.8.1/shtab.egg-info/SOURCES.txt 2026-07-03 13:43:13.000000000 +0200 @@ -4,6 +4,7 @@ LICENCE README.rst pyproject.toml +.github/FUNDING.yml .github/workflows/test.yml docs/index.md docs/pydoc-markdown.yml @@ -16,7 +17,6 @@ meta/logo.png shtab/__init__.py shtab/__main__.py -shtab/_dist_ver.py shtab/main.py shtab/py.typed shtab.egg-info/PKG-INFO @@ -24,6 +24,8 @@ shtab.egg-info/dependency_links.txt shtab.egg-info/entry_points.txt shtab.egg-info/requires.txt +shtab.egg-info/scm_file_list.json +shtab.egg-info/scm_version.json shtab.egg-info/top_level.txt tests/__init__.py tests/test_shtab.py \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/shtab.egg-info/scm_file_list.json new/shtab-1.8.1/shtab.egg-info/scm_file_list.json --- old/shtab-1.8.0/shtab.egg-info/scm_file_list.json 1970-01-01 01:00:00.000000000 +0100 +++ new/shtab-1.8.1/shtab.egg-info/scm_file_list.json 2026-07-03 13:43:13.000000000 +0200 @@ -0,0 +1,27 @@ +{ + "files": [ + ".pre-commit-config.yaml", + "LICENCE", + "pyproject.toml", + "CONTRIBUTING.md", + "README.rst", + ".gitignore", + "meta/logo.png", + "docs/pydoc_markdown_shtab.py", + "docs/pydoc-markdown.yml", + "docs/requirements.txt", + "docs/use.md", + "docs/index.md", + "tests/__init__.py", + "tests/test_shtab.py", + "shtab/py.typed", + "shtab/__init__.py", + "shtab/main.py", + "shtab/__main__.py", + "examples/customcomplete.py", + "examples/pathcomplete.py", + "examples/docopt-greeter.py", + ".github/FUNDING.yml", + ".github/workflows/test.yml" + ] +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/shtab-1.8.0/shtab.egg-info/scm_version.json new/shtab-1.8.1/shtab.egg-info/scm_version.json --- old/shtab-1.8.0/shtab.egg-info/scm_version.json 1970-01-01 01:00:00.000000000 +0100 +++ new/shtab-1.8.1/shtab.egg-info/scm_version.json 2026-07-03 13:43:13.000000000 +0200 @@ -0,0 +1,8 @@ +{ + "tag": "1.8.1", + "distance": 0, + "node": "g946ef0ad84246bfd417bf48dc9ae625dde827a04", + "dirty": false, + "branch": "HEAD", + "node_date": "2026-07-03" +}
