Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-repoze.sphinx.autointerface for openSUSE:Factory checked in at 2022-10-08 01:25:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-repoze.sphinx.autointerface (Old) and /work/SRC/openSUSE:Factory/.python-repoze.sphinx.autointerface.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-repoze.sphinx.autointerface" Sat Oct 8 01:25:03 2022 rev:7 rq:1008684 version:1.0.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-repoze.sphinx.autointerface/python-repoze.sphinx.autointerface.changes 2018-12-12 17:28:12.986897282 +0100 +++ /work/SRC/openSUSE:Factory/.python-repoze.sphinx.autointerface.new.2275/python-repoze.sphinx.autointerface.changes 2022-10-08 01:25:08.942219203 +0200 @@ -1,0 +2,19 @@ +Fri Oct 7 07:50:10 UTC 2022 - Dirk M??ller <dmuel...@suse.com> + +- make the package python 3.6+ only as it dropped support + for older versions + +------------------------------------------------------------------- +Fri Oct 7 03:51:26 UTC 2022 - Yogalakshmi Arunachalam <yarunacha...@suse.com> + +- Update to version 1.0.0 (2022-05-26) + Remove sphinx.util.force_decode. Previously we hacked it in to support Python 2 and Sphinx 3.x, but Sphinx 4.0 deprecated it and dropped Python 2 support. + Replace Travis-CI with GitHub Actions + Add support for Python 3.6, 3.7, 3.8, 3.9, 3.10, and PyPy3. + Drop support for Python 2.7, 3.3, 3.4, 3.5, and PyPy. + Update to work with newer Sphinx versions: + Sphinx.domains -> Sphinx.registry.domains + Sphinx.override_domain(D) -> Sphinx.add_domain(D, override=True) + Drop support for Sphinx < 4.0. + +------------------------------------------------------------------- Old: ---- repoze.sphinx.autointerface-0.8.tar.gz New: ---- repoze.sphinx.autointerface-1.0.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-repoze.sphinx.autointerface.spec ++++++ --- /var/tmp/diff_new_pack.GcnrJt/_old 2022-10-08 01:25:12.202226679 +0200 +++ /var/tmp/diff_new_pack.GcnrJt/_new 2022-10-08 01:25:12.202226679 +0200 @@ -1,7 +1,7 @@ # -# spec file for package python +# spec file # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,16 +16,17 @@ # -%{?!python_module:%define python_module() python-%{**} python3-%{**}} +%{?!python_module:%define python_module() python3-%{**}} %global modname repoze.sphinx.autointerface Name: python-%{modname} -Version: 0.8 +Version: 1.0.0 Release: 0 Summary: Sphinx extension: auto-generates API docs from Zope interfaces License: SUSE-Repoze Group: Development/Languages/Python URL: http://www.repoze.org Source: https://files.pythonhosted.org/packages/source/r/repoze.sphinx.autointerface/%{modname}-%{version}.tar.gz +BuildRequires: %{python_module base >= 3.6} BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros ++++++ repoze.sphinx.autointerface-0.8.tar.gz -> repoze.sphinx.autointerface-1.0.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/repoze.sphinx.autointerface-0.8/.github/workflows/ci-tests.yml new/repoze.sphinx.autointerface-1.0.0/.github/workflows/ci-tests.yml --- old/repoze.sphinx.autointerface-0.8/.github/workflows/ci-tests.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/repoze.sphinx.autointerface-1.0.0/.github/workflows/ci-tests.yml 2022-05-26 08:38:47.000000000 +0200 @@ -0,0 +1,70 @@ +name: Build and test + +on: + # Build on pushes to master + push: + branches: + - master + # Temporarily add for CI on stevepiercy's fork + - sphinx-40-compat + tags: + # Build pull requests + pull_request: + +jobs: + test: + strategy: + # We want to see all failures: + fail-fast: false + matrix: + py: + - "3.6" + - "3.7" + - "3.8" + - "3.9" + - "3.10" + - "pypy-3.7" + os: + - "ubuntu-latest" + - "windows-latest" + - "macos-latest" + architecture: + - x64 + - x86 + + exclude: + # Linux and macOS don't have x86 python + - os: "ubuntu-latest" + architecture: x86 + - os: "macos-latest" + architecture: x86 + # PyPy3 on Windows doesn't seem to work + - os: "windows-latest" + py: "pypy-3.7" + + name: "Python: ${{ matrix.py }}-${{ matrix.architecture }} on ${{ matrix.os }}" + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.py }} + architecture: ${{ matrix.architecture }} + - run: pip install tox + - name: Running tox + run: tox -e py -- ${{ matrix.pytest-args }} +# This block is temporarily commented out to speed up testing and until I add +# a lint tox env. +# lint: +# runs-on: ubuntu-latest +# name: Lint the package +# steps: +# - uses: actions/checkout@v2 +# - name: Setup python +# uses: actions/setup-python@v2 +# with: +# python-version: 3.10 +# architecture: x64 +# - run: pip install tox +# - run: tox -e lint diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/repoze.sphinx.autointerface-0.8/.gitignore new/repoze.sphinx.autointerface-1.0.0/.gitignore --- old/repoze.sphinx.autointerface-0.8/.gitignore 2013-01-10 16:10:48.000000000 +0100 +++ new/repoze.sphinx.autointerface-1.0.0/.gitignore 1970-01-01 01:00:00.000000000 +0100 @@ -1,8 +0,0 @@ -*.egg-info -*.pyc -*$py.class -.coverage -dist/ -*~ -.tox -env*/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/repoze.sphinx.autointerface-0.8/CHANGES.rst new/repoze.sphinx.autointerface-1.0.0/CHANGES.rst --- old/repoze.sphinx.autointerface-0.8/CHANGES.rst 2016-03-29 02:41:03.000000000 +0200 +++ new/repoze.sphinx.autointerface-1.0.0/CHANGES.rst 2022-05-26 08:48:19.000000000 +0200 @@ -1,6 +1,25 @@ repoze.sphinx.autointerface Changelog ===================================== +1.0.0 (2022-05-26) +------------------ + +- Remove sphinx.util.force_decode. Previously we hacked it in to support Python + 2 and Sphinx 3.x, but Sphinx 4.0 deprecated it and dropped Python 2 support. + +- Replace Travis-CI with GitHub Actions + +- Add support for Python 3.6, 3.7, 3.8, 3.9, 3.10, and PyPy3. + +- Drop support for Python 2.7, 3.3, 3.4, 3.5, and PyPy. + +- Update to work with newer Sphinx versions: + + * Sphinx.domains -> Sphinx.registry.domains + * Sphinx.override_domain(D) -> Sphinx.add_domain(D, override=True) + +- Drop support for Sphinx < 4.0. + 0.8 (2016-03-28) ---------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/repoze.sphinx.autointerface-0.8/CONTRIBUTORS.txt new/repoze.sphinx.autointerface-1.0.0/CONTRIBUTORS.txt --- old/repoze.sphinx.autointerface-0.8/CONTRIBUTORS.txt 2013-01-10 16:17:17.000000000 +0100 +++ new/repoze.sphinx.autointerface-1.0.0/CONTRIBUTORS.txt 2022-05-26 08:38:47.000000000 +0200 @@ -105,3 +105,5 @@ - Tres Seaver, 2011/03/22 - Jason Madden, 2013/01/10 +- Steve Piercy, 2021/05/11 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/repoze.sphinx.autointerface-0.8/MANIFEST.in new/repoze.sphinx.autointerface-1.0.0/MANIFEST.in --- old/repoze.sphinx.autointerface-0.8/MANIFEST.in 1970-01-01 01:00:00.000000000 +0100 +++ new/repoze.sphinx.autointerface-1.0.0/MANIFEST.in 2022-05-26 08:38:47.000000000 +0200 @@ -0,0 +1,12 @@ +graft repoze + +include README.rst +include CHANGES.rst +include CONTRIBUTORS.txt LICENSE.txt COPYRIGHT.txt + +include tox.ini .travis.yml +include TODO.txt +graft .github + +global-exclude __pycache__ *.py[cod] +global-exclude .DS_Store diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/repoze.sphinx.autointerface-0.8/PKG-INFO new/repoze.sphinx.autointerface-1.0.0/PKG-INFO --- old/repoze.sphinx.autointerface-0.8/PKG-INFO 2016-03-29 02:41:57.000000000 +0200 +++ new/repoze.sphinx.autointerface-1.0.0/PKG-INFO 2022-05-26 08:48:54.007418000 +0200 @@ -1,184 +1,225 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: repoze.sphinx.autointerface -Version: 0.8 +Version: 1.0.0 Summary: Sphinx extension: auto-generates API docs from Zope interfaces -Home-page: http://www.repoze.org +Home-page: https://github.com/repoze/repoze.sphinx.autointerface/ Author: Agendaless Consulting Author-email: repoze-...@lists.repoze.org -License: BSD-derived (http://www.repoze.org/LICENSE.txt) -Description: repoze.sphinx.autointerface README - ================================== - - Overview - -------- - - Thie package defines an extension for the - `Sphinx <http://sphinx.pocool.org>`_ documentation system. The extension - allows generation of API documentation by introspection of - `zope.interface <http://pypi.python.org/pypi/zope.interface>`_ instances in - code. - - - Installation - ------------ - - Install via `easy_install - <http://peak.telecommunity.com/DevCenter/EasyInstall>`_:: - - $ bin/easy_install repoze.sphinx.autointerface - - or any other means which gets the package on your ``PYTHONPATH``. - - - Registering the Extension - ------------------------- - - Add ``repoze.sphinx.autointerface`` to the ``extensions`` list in the - ``conf.py`` of the Sphinx documentation for your product. E.g.:: - - extensions = ['sphinx.ext.autodoc', - 'sphinx.ext.doctest', - 'repoze.sphinx.autointerface', - ] - - - Using the Extension - ------------------- - - At appropriate points in your document, call out the interface - autodocs via:: - - .. autointerface:: yourpackage.interfaces.IFoo - - Output from the directive includes - - - the fully-qualified interface name - - any base interfaces - - the doctstring from the interface, rendered as reSTX. - - the members of the interface (methods and attributes). - - * For each attribute, the output includes the attribute name - and its description. - * For each method, the output includes the method name, its signature, - and its docstring (also rendered as reSTX). - - - repoze.sphinx.autointerface Changelog - ===================================== - - 0.8 (2016-03-28) - ---------------- - - - Add support for Python 3.3, 3.4, and 3.5. - - - Drop support for Python 2.6 and 3.2. - - - Allow cross references using the ``:class:`` directive to use the - ``.`` for "fuzzy" searching. Thanks to Jason Madden for the patch. - - 0.7.1 (2012-09-15) - ------------------ - - - Remove ``setup.py`` dependency on ``ez_setup.py``. - - 0.7.0 (2012-06-20) - ------------------ - - - PyPy compatibility. - - - Python 3.2+ compatibility. Thanks to Arfrever for the patch. - - - Include interface docs under the ``automodule`` directive. Thanks to - Krys Lawrence for the patch. - - - 0.6.2 (2011-02-13) - ------------------ - - - Fix ``TypeError: 'NoneType' object is not iterable`` error when generating - a rendering of an interface under Python 2.7. - - - 0.6.1 (2011-01-28) - ------------------ - - - Fix ':member-order: bysource' handling. - - - 0.6 (2011-01-28) - ---------------- - - - Correctly handle ':members:' values explicitly set in the directive. - - - 0.5 (2011-01-18) - ---------------- - - - Added support for the ':member-order:' flag, which can take one of the - three stock values, "alphabetical", "groupwise", or "bysource". By - default, members are documented in "hash" order. - - - 0.4 (2010-07-26) - ---------------- - - - Fixed compatibility with Sphinx 1.0 - - - Un-break PyPI ReST/HTML-rendering again. - - - 0.3 (2009-10-25) - ---------------- - - - Refactor sphinx integration. There are now separate ``autointerface`` - and ``interface`` directives. - - - 0.2.1 (2009-08-20) - ------------------ - - - Fix add_directive arguments to work with Sphinx 0.6.1, now required. - - - 0.1.3 (2009-01-14) - ------------------ - - - Coerce unicode path elements to str in ``_resolve_dotted_name``. - Note that non-ASCII path elements won't work: this fix just deals - with the case where the path was of type unicode. - - - Fixed spelling of directive in README.txt. - - - Added dependency on ``zope.interface``. - - - 0.1.2 (2008-10-03) - ------------------ - - - Packaging change: improved description in README.txt. - - - 0.1.1 (2008-10-03) - ------------------ - - - Packaging bug: the ``long_description`` was not rendering properly to - HTML on PyPI. - - - 0.1 (2008-10-02) - ---------------- - - - Initial release. - -Keywords: web wsgi zope +License: BSD-derived (Repoze) +Project-URL: Documentation, https://github.com/repoze/repoze.sphinx.autointerface/ +Project-URL: Changelog, https://github.com/repoze/repoze.sphinx.autointerface/blob/master/CHANGES.rst +Project-URL: Issue Tracker, https://github.com/repoze/repoze.sphinx.autointerface/issues +Keywords: web wsgi zope Sphinx Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers -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 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy +Requires-Python: >=3.6 +Description-Content-Type: text/x-rst +Provides-Extra: test +License-File: LICENSE.txt + +repoze.sphinx.autointerface README +================================== + +.. image:: https://github.com/repoze/repoze.sphinx.autointerface/actions/workflows/ci-tests.yml/badge.svg + :target: https://github.com/repoze/repoze.sphinx.autointerface/actions/workflows/ci-tests.yml + +.. image:: https://img.shields.io/pypi/v/repoze.sphinx.autointerface.svg + :target: https://pypi.python.org/pypi/repoze.sphinx.autointerface + +.. image:: https://img.shields.io/pypi/pyversions/repoze.sphinx.autointerface.svg + :target: https://pypi.python.org/pypi/repoze.sphinx.autointerface + + +Overview +-------- + +Thie package defines an extension for the +`Sphinx <https://www.sphinx-doc.org/en/master/>`_ documentation system. +The extension allows generation of API documentation by introspection of +`zope.interface <https://pypi.org/project/zope.interface/>`_ instances in +code. + + +Installation +------------ + +Install via ``pip``: + +.. code-block:: bash + + pip install repoze.sphinx.autointerface + + +Registering the Extension +------------------------- + +Add ``repoze.sphinx.autointerface`` to the ``extensions`` list in the +``conf.py`` of the Sphinx documentation for your product. + +.. code-block:: python + + extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.doctest", + "repoze.sphinx.autointerface", + ] + + +Using the Extension +------------------- + +At appropriate points in your document, call out the autodoc interface. + +.. code-block:: rst + + .. autointerface:: yourpackage.interfaces.IFoo + +Output from the directive includes + +- the fully-qualified interface name +- any base interfaces +- the docstring from the interface, rendered as reStructuredText +- the members of the interface (methods and attributes) + + * For each attribute, the output includes the attribute name + and its description. + * For each method, the output includes the method name, its signature, + and its docstring (also rendered as reStructuredText). + + +repoze.sphinx.autointerface Changelog +===================================== + +1.0.0 (2022-05-26) +------------------ + +- Remove sphinx.util.force_decode. Previously we hacked it in to support Python + 2 and Sphinx 3.x, but Sphinx 4.0 deprecated it and dropped Python 2 support. + +- Replace Travis-CI with GitHub Actions + +- Add support for Python 3.6, 3.7, 3.8, 3.9, 3.10, and PyPy3. + +- Drop support for Python 2.7, 3.3, 3.4, 3.5, and PyPy. + +- Update to work with newer Sphinx versions: + + * Sphinx.domains -> Sphinx.registry.domains + * Sphinx.override_domain(D) -> Sphinx.add_domain(D, override=True) + +- Drop support for Sphinx < 4.0. + +0.8 (2016-03-28) +---------------- + +- Add support for Python 3.3, 3.4, and 3.5. + +- Drop support for Python 2.6 and 3.2. + +- Allow cross references using the ``:class:`` directive to use the + ``.`` for "fuzzy" searching. Thanks to Jason Madden for the patch. + +0.7.1 (2012-09-15) +------------------ + +- Remove ``setup.py`` dependency on ``ez_setup.py``. + +0.7.0 (2012-06-20) +------------------ + +- PyPy compatibility. + +- Python 3.2+ compatibility. Thanks to Arfrever for the patch. + +- Include interface docs under the ``automodule`` directive. Thanks to + Krys Lawrence for the patch. + + +0.6.2 (2011-02-13) +------------------ + +- Fix ``TypeError: 'NoneType' object is not iterable`` error when generating + a rendering of an interface under Python 2.7. + + +0.6.1 (2011-01-28) +------------------ + +- Fix ':member-order: bysource' handling. + + +0.6 (2011-01-28) +---------------- + +- Correctly handle ':members:' values explicitly set in the directive. + + +0.5 (2011-01-18) +---------------- + +- Added support for the ':member-order:' flag, which can take one of the + three stock values, "alphabetical", "groupwise", or "bysource". By + default, members are documented in "hash" order. + + +0.4 (2010-07-26) +---------------- + +- Fixed compatibility with Sphinx 1.0 + +- Un-break PyPI ReST/HTML-rendering again. + + +0.3 (2009-10-25) +---------------- + +- Refactor sphinx integration. There are now separate ``autointerface`` + and ``interface`` directives. + + +0.2.1 (2009-08-20) +------------------ + +- Fix add_directive arguments to work with Sphinx 0.6.1, now required. + + +0.1.3 (2009-01-14) +------------------ + +- Coerce unicode path elements to str in ``_resolve_dotted_name``. + Note that non-ASCII path elements won't work: this fix just deals + with the case where the path was of type unicode. + +- Fixed spelling of directive in README.txt. + +- Added dependency on ``zope.interface``. + + +0.1.2 (2008-10-03) +------------------ + +- Packaging change: improved description in README.txt. + + +0.1.1 (2008-10-03) +------------------ + +- Packaging bug: the ``long_description`` was not rendering properly to + HTML on PyPI. + + +0.1 (2008-10-02) +---------------- + +- Initial release. + + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/repoze.sphinx.autointerface-0.8/README.rst new/repoze.sphinx.autointerface-1.0.0/README.rst --- old/repoze.sphinx.autointerface-0.8/README.rst 2015-12-02 21:12:58.000000000 +0100 +++ new/repoze.sphinx.autointerface-1.0.0/README.rst 2022-05-26 08:38:47.000000000 +0200 @@ -1,55 +1,68 @@ repoze.sphinx.autointerface README ================================== +.. image:: https://github.com/repoze/repoze.sphinx.autointerface/actions/workflows/ci-tests.yml/badge.svg + :target: https://github.com/repoze/repoze.sphinx.autointerface/actions/workflows/ci-tests.yml + +.. image:: https://img.shields.io/pypi/v/repoze.sphinx.autointerface.svg + :target: https://pypi.python.org/pypi/repoze.sphinx.autointerface + +.. image:: https://img.shields.io/pypi/pyversions/repoze.sphinx.autointerface.svg + :target: https://pypi.python.org/pypi/repoze.sphinx.autointerface + + Overview -------- Thie package defines an extension for the -`Sphinx <http://sphinx.pocool.org>`_ documentation system. The extension -allows generation of API documentation by introspection of -`zope.interface <http://pypi.python.org/pypi/zope.interface>`_ instances in +`Sphinx <https://www.sphinx-doc.org/en/master/>`_ documentation system. +The extension allows generation of API documentation by introspection of +`zope.interface <https://pypi.org/project/zope.interface/>`_ instances in code. Installation ------------ -Install via `easy_install -<http://peak.telecommunity.com/DevCenter/EasyInstall>`_:: +Install via ``pip``: - $ bin/easy_install repoze.sphinx.autointerface +.. code-block:: bash -or any other means which gets the package on your ``PYTHONPATH``. + pip install repoze.sphinx.autointerface Registering the Extension ------------------------- Add ``repoze.sphinx.autointerface`` to the ``extensions`` list in the -``conf.py`` of the Sphinx documentation for your product. E.g.:: +``conf.py`` of the Sphinx documentation for your product. + +.. code-block:: python - extensions = ['sphinx.ext.autodoc', - 'sphinx.ext.doctest', - 'repoze.sphinx.autointerface', - ] + extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.doctest", + "repoze.sphinx.autointerface", + ] Using the Extension ------------------- -At appropriate points in your document, call out the interface -autodocs via:: +At appropriate points in your document, call out the autodoc interface. + +.. code-block:: rst - .. autointerface:: yourpackage.interfaces.IFoo + .. autointerface:: yourpackage.interfaces.IFoo Output from the directive includes - the fully-qualified interface name - any base interfaces -- the doctstring from the interface, rendered as reSTX. -- the members of the interface (methods and attributes). +- the docstring from the interface, rendered as reStructuredText +- the members of the interface (methods and attributes) * For each attribute, the output includes the attribute name and its description. * For each method, the output includes the method name, its signature, - and its docstring (also rendered as reSTX). + and its docstring (also rendered as reStructuredText). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/repoze.sphinx.autointerface-0.8/repoze/sphinx/autointerface.py new/repoze.sphinx.autointerface-1.0.0/repoze/sphinx/autointerface.py --- old/repoze.sphinx.autointerface-0.8/repoze/sphinx/autointerface.py 2015-12-02 21:11:56.000000000 +0100 +++ new/repoze.sphinx.autointerface-1.0.0/repoze/sphinx/autointerface.py 2022-05-26 08:38:47.000000000 +0200 @@ -1,21 +1,12 @@ + import sys + from sphinx.util.docstrings import prepare_docstring -from sphinx.util import force_decode -try: - # Sphinx < 1.0 - from sphinx.directives.desc import ClasslikeDesc as PyClasslike -except ImportError: - from sphinx.domains.python import PyClasslike +from sphinx.domains.python import PyClasslike from sphinx.ext import autodoc from zope.interface import Interface from zope.interface.interface import InterfaceClass -if sys.version_info[0] >= 3: - def u(s): - return s -else: - def u(s): - return unicode(s, "unicode_escape") class InterfaceDesc(PyClasslike): def get_index_text(self, modname, name_cls): @@ -47,10 +38,10 @@ bases = [base for base in self.object.__bases__ if base is not Interface] if not self.doc_as_attr and self.options.show_inheritance and bases: - self.add_line(u(''), '<autodoc>') - bases = [u(':class:`%s.%s`') % (b.__module__, b.getName()) + self.add_line(u'', '<autodoc>') + bases = [u':class:`%s.%s`' % (b.__module__, b.getName()) for b in bases] - self.add_line(u(' Extends: %s') % ', '.join(bases), + self.add_line(u' Extends: %s' % ', '.join(bases), '<autodoc>') def format_args(self): @@ -59,6 +50,7 @@ def document_members(self, all_members=True): oldindent = self.indent members = list(self.object.namesAndDescriptions()) + if self.options.members is not autodoc.ALL: specified = [] for line in (self.options.members or []): @@ -84,43 +76,49 @@ members.sort(key=keyfunc) for name, desc in members: - self.add_line(u(''), '<autointerface>') + self.add_line(u'', '<autointerface>') sig = getattr(desc, 'getSignatureString', None) if sig is None: - self.add_line(u('.. attribute:: %s') % name, '<autointerface>') + self.add_line(u'.. attribute:: %s' % name, '<autointerface>') else: - self.add_line(u('.. method:: %s%s') % (name, sig()), + self.add_line(u'.. method:: %s%s' % (name, sig()), '<autointerface>') doc = desc.getDoc() if doc: - self.add_line(u(''), '<autointerface>') + self.add_line(u'', '<autointerface>') self.indent += self.content_indent - sourcename = u('docstring of %s.%s') % (self.fullname, name) - docstrings = [prepare_docstring(force_decode(doc, None))] + sourcename = u'docstring of %s.%s' % (self.fullname, name) + docstrings = [prepare_docstring(doc)] for i, line in enumerate(self.process_doc(docstrings)): self.add_line(line, sourcename, i) - self.add_line(u(''), '<autointerface>') + self.add_line(u'', '<autointerface>') self.indent = oldindent def setup(app): + app.add_directive_to_domain('py', 'interface', InterfaceDesc) + + from sphinx.domains import ObjType + try: - app.add_directive_to_domain('py', 'interface', InterfaceDesc) + domains = app.domains + except AttributeError: + domains = app.registry.domains - from sphinx.domains import ObjType + # Allow the :class: directive to xref interface objects through the search + # mechanism, i.e., prefixed with a '.', like :class:`.ITheInterface` + # (without this, an exact match is required) + class InterfacePythonDomain(domains['py']): + pass + InterfacePythonDomain.object_types = domains['py'].object_types.copy() + InterfacePythonDomain.object_types['interface'] = ObjType( 'interface', 'interface', 'obj', 'class') + old_class = InterfacePythonDomain.object_types['class'] + new_class = ObjType( old_class.lname, *(old_class.roles + ('interface',)), **old_class.attrs ) + InterfacePythonDomain.object_types['class'] = new_class - # Allow the :class: directive to xref interface objects through the search - # mechanism, i.e., prefixed with a '.', like :class:`.ITheInterface` - # (without this, an exact match is required) - class InterfacePythonDomain(app.domains['py']): - pass - InterfacePythonDomain.object_types = app.domains['py'].object_types.copy() - InterfacePythonDomain.object_types['interface'] = ObjType( 'interface', 'interface', 'obj', 'class') - old_class = InterfacePythonDomain.object_types['class'] - new_class = ObjType( old_class.lname, *(old_class.roles + ('interface',)), **old_class.attrs ) - InterfacePythonDomain.object_types['class'] = new_class + if hasattr(app, 'override_domain'): app.override_domain( InterfacePythonDomain ) - except AttributeError: - # Sphinx < 1.0 - app.add_directive('interface', InterfaceDesc) + else: + app.add_domain( InterfacePythonDomain, override=True ) + app.add_autodocumenter(InterfaceDocumenter) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/repoze.sphinx.autointerface-0.8/repoze/sphinx/tests/root/conf.py new/repoze.sphinx.autointerface-1.0.0/repoze/sphinx/tests/root/conf.py --- old/repoze.sphinx.autointerface-0.8/repoze/sphinx/tests/root/conf.py 1970-01-01 01:00:00.000000000 +0100 +++ new/repoze.sphinx.autointerface-1.0.0/repoze/sphinx/tests/root/conf.py 2022-05-21 12:59:55.000000000 +0200 @@ -0,0 +1 @@ +extensions = ['sphinx.ext.autodoc'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/repoze.sphinx.autointerface-0.8/repoze/sphinx/tests/test_autointerface.py new/repoze.sphinx.autointerface-1.0.0/repoze/sphinx/tests/test_autointerface.py --- old/repoze.sphinx.autointerface-0.8/repoze/sphinx/tests/test_autointerface.py 1970-01-01 01:00:00.000000000 +0100 +++ new/repoze.sphinx.autointerface-1.0.0/repoze/sphinx/tests/test_autointerface.py 2022-05-26 08:38:47.000000000 +0200 @@ -0,0 +1,120 @@ +import unittest + +from .util import TestApp + +from .. import autointerface +from sphinx.ext.autodoc import ALL + +from docutils.statemachine import ViewList + +from zope import interface + +class IPlumbusMaker(interface.Interface): + + grumbo = interface.Attribute("The dinglebop is fed through here") + fleeb = interface.Attribute("The dinglebop is polished with this") + + def smoothTheDinglebop(schleem): + """ + Smooth it out. + + The schleem is then repurposed. + """ + +class Options(dict): + inherited_members = False + undoc_members = False + private_members = False + special_members = False + imported_members = False + show_inheritance = False + noindex = False + annotation = None + synopsis = '' + platform = '' + deprecated = False + members = () + member_order = 'alphabetic' + exclude_members = () + + def __init__(self): + super(Options, self).__init__() + self.exclude_members = set() + self.members = [] + self.__dict__ = self + +class Settings(object): + + tab_width = 4 + + +class Document(object): + + def __init__(self, settings): + self.settings = settings + + +class State(object): + + def __init__(self, document): + self.document = document + + +class Directive(object): + env = None + genopt = None + result = None + record_dependencies = None + + def __init__(self): + self._warnings = [] + self.filename_set = set() + self.result = ViewList() + self.record_dependencies = set() + self.state = State(Document(Settings())) + + def warn(self, msg): + self._warnings.append(msg) + +class TestAutoInterface(unittest.TestCase): + + def setUp(self): + app = self.app = TestApp() + app.builder.env.app = app + app.builder.env.temp_data['docname'] = 'dummy' + + autointerface.setup(app) + + opt = self.options = Options() + d = self.directive = Directive() + d.env = app.builder.env + d.genopt = opt + + + def tearDown(self): + self.app.cleanup() + self.app = None + + def assertResultContains(self, item, + objtype='interface', name='repoze.sphinx.tests.test_autointerface.IPlumbusMaker', + **kw): + directive = self.directive + inst = self.app.registry.documenters['interface'](directive, name) + inst.generate(**kw) + # print '\n'.join(directive.result) + self.assertEqual([], directive._warnings) + self.assertIn(item, directive.result) + results = directive.result[:] + del directive.result[:] + return '\n'.join(results) + + def test_restricted_members(self): + self.options.members = ['smoothTheDinglebop'] + all_results = self.assertResultContains(' .. method:: smoothTheDinglebop(schleem)') + self.assertNotIn('grumbo', all_results) + + def test_all_members(self): + self.options.members = ALL + all_results = self.assertResultContains(' .. method:: smoothTheDinglebop(schleem)') + self.assertIn('grumbo', all_results) + self.assertIn('fleeb', all_results) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/repoze.sphinx.autointerface-0.8/repoze/sphinx/tests/util.py new/repoze.sphinx.autointerface-1.0.0/repoze/sphinx/tests/util.py --- old/repoze.sphinx.autointerface-0.8/repoze/sphinx/tests/util.py 1970-01-01 01:00:00.000000000 +0100 +++ new/repoze.sphinx.autointerface-1.0.0/repoze/sphinx/tests/util.py 2022-05-26 08:38:47.000000000 +0200 @@ -0,0 +1,112 @@ +import sys +import os +import tempfile +import shutil + +from io import StringIO + +from sphinx import application +from sphinx.builders.latex import LaTeXBuilder +from sphinx.pycode import ModuleAnalyzer + +from docutils import nodes +from docutils.parsers.rst import directives, roles + +rootdir = os.path.abspath(os.path.dirname(__file__) or '.') + +class ListOutput(object): + """ + File-like object that collects written text in a list. + """ + def __init__(self, name): + self.name = name + self.content = [] + + def reset(self): + del self.content[:] + + def write(self, text): + self.content.append(text) + +class TestApp(application.Sphinx): + """ + A subclass of :class:`Sphinx` that runs on the test root, with some + better default values for the initialization parameters. + """ + + def __init__(self, buildername='html', testroot=None, srcdir=None, + freshenv=False, confoverrides=None, status=None, warning=None, + tags=None, docutilsconf=None): + if testroot is None: + defaultsrcdir = 'root' + testroot = os.path.join(rootdir, 'root') + else: + defaultsrcdir = 'test-' + testroot + testroot = os.path.join(rootdir, 'roots', ('test-' + testroot)) + + self.__tempdir = os.path.abspath(tempfile.mkdtemp()) + + + if srcdir is None: + srcdir = os.path.join(self.__tempdir, defaultsrcdir) + else: + srcdir = os.path.join(self.__tempdir, srcdir) + + if not os.path.exists(srcdir): + shutil.copytree(testroot, srcdir, symlinks=False) + + if docutilsconf is not None: + with open(os.path.join(srcdir, 'docutils.conf')) as f: + f.write(docutilsconf) + + builddir = os.path.join(srcdir, '_build') +# if confdir is None: + confdir = srcdir +# if outdir is None: + outdir = os.path.join(builddir, buildername) + if not os.path.exists(outdir): + os.makedirs(outdir) + + doctreedir = os.path.join(builddir, 'doctrees') + if not os.path.exists(doctreedir): + os.makedirs(doctreedir) + if confoverrides is None: + confoverrides = {} + if status is None: + status = StringIO() + if warning is None: + warning = ListOutput('stderr') +# if warningiserror is None: + warningiserror = False + + self._saved_path = sys.path[:] + self._saved_directives = directives._directives.copy() + self._saved_roles = roles._roles.copy() + + self._saved_nodeclasses = set(v for v in dir(nodes.GenericNodeVisitor) + if v.startswith('visit_')) + + try: + application.Sphinx.__init__(self, srcdir, confdir, outdir, doctreedir, + buildername, confoverrides, status, warning, + freshenv, warningiserror, tags) + except: + self.cleanup() + raise + + def cleanup(self, doctrees=False): + shutil.rmtree(self.__tempdir) + ModuleAnalyzer.cache.clear() + LaTeXBuilder.usepackages = [] + sys.path[:] = self._saved_path + sys.modules.pop('autodoc_fodder', None) + directives._directives = self._saved_directives + roles._roles = self._saved_roles + for method in dir(nodes.GenericNodeVisitor): + if method.startswith('visit_') and \ + method not in self._saved_nodeclasses: + delattr(nodes.GenericNodeVisitor, 'visit_' + method[6:]) + delattr(nodes.GenericNodeVisitor, 'depart_' + method[6:]) + + def __repr__(self): + return '<%s buildername=%r>' % (self.__class__.__name__, self.builder.name) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/repoze.sphinx.autointerface-0.8/repoze.sphinx.autointerface.egg-info/PKG-INFO new/repoze.sphinx.autointerface-1.0.0/repoze.sphinx.autointerface.egg-info/PKG-INFO --- old/repoze.sphinx.autointerface-0.8/repoze.sphinx.autointerface.egg-info/PKG-INFO 2016-03-29 02:41:57.000000000 +0200 +++ new/repoze.sphinx.autointerface-1.0.0/repoze.sphinx.autointerface.egg-info/PKG-INFO 2022-05-26 08:48:53.000000000 +0200 @@ -1,184 +1,225 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: repoze.sphinx.autointerface -Version: 0.8 +Version: 1.0.0 Summary: Sphinx extension: auto-generates API docs from Zope interfaces -Home-page: http://www.repoze.org +Home-page: https://github.com/repoze/repoze.sphinx.autointerface/ Author: Agendaless Consulting Author-email: repoze-...@lists.repoze.org -License: BSD-derived (http://www.repoze.org/LICENSE.txt) -Description: repoze.sphinx.autointerface README - ================================== - - Overview - -------- - - Thie package defines an extension for the - `Sphinx <http://sphinx.pocool.org>`_ documentation system. The extension - allows generation of API documentation by introspection of - `zope.interface <http://pypi.python.org/pypi/zope.interface>`_ instances in - code. - - - Installation - ------------ - - Install via `easy_install - <http://peak.telecommunity.com/DevCenter/EasyInstall>`_:: - - $ bin/easy_install repoze.sphinx.autointerface - - or any other means which gets the package on your ``PYTHONPATH``. - - - Registering the Extension - ------------------------- - - Add ``repoze.sphinx.autointerface`` to the ``extensions`` list in the - ``conf.py`` of the Sphinx documentation for your product. E.g.:: - - extensions = ['sphinx.ext.autodoc', - 'sphinx.ext.doctest', - 'repoze.sphinx.autointerface', - ] - - - Using the Extension - ------------------- - - At appropriate points in your document, call out the interface - autodocs via:: - - .. autointerface:: yourpackage.interfaces.IFoo - - Output from the directive includes - - - the fully-qualified interface name - - any base interfaces - - the doctstring from the interface, rendered as reSTX. - - the members of the interface (methods and attributes). - - * For each attribute, the output includes the attribute name - and its description. - * For each method, the output includes the method name, its signature, - and its docstring (also rendered as reSTX). - - - repoze.sphinx.autointerface Changelog - ===================================== - - 0.8 (2016-03-28) - ---------------- - - - Add support for Python 3.3, 3.4, and 3.5. - - - Drop support for Python 2.6 and 3.2. - - - Allow cross references using the ``:class:`` directive to use the - ``.`` for "fuzzy" searching. Thanks to Jason Madden for the patch. - - 0.7.1 (2012-09-15) - ------------------ - - - Remove ``setup.py`` dependency on ``ez_setup.py``. - - 0.7.0 (2012-06-20) - ------------------ - - - PyPy compatibility. - - - Python 3.2+ compatibility. Thanks to Arfrever for the patch. - - - Include interface docs under the ``automodule`` directive. Thanks to - Krys Lawrence for the patch. - - - 0.6.2 (2011-02-13) - ------------------ - - - Fix ``TypeError: 'NoneType' object is not iterable`` error when generating - a rendering of an interface under Python 2.7. - - - 0.6.1 (2011-01-28) - ------------------ - - - Fix ':member-order: bysource' handling. - - - 0.6 (2011-01-28) - ---------------- - - - Correctly handle ':members:' values explicitly set in the directive. - - - 0.5 (2011-01-18) - ---------------- - - - Added support for the ':member-order:' flag, which can take one of the - three stock values, "alphabetical", "groupwise", or "bysource". By - default, members are documented in "hash" order. - - - 0.4 (2010-07-26) - ---------------- - - - Fixed compatibility with Sphinx 1.0 - - - Un-break PyPI ReST/HTML-rendering again. - - - 0.3 (2009-10-25) - ---------------- - - - Refactor sphinx integration. There are now separate ``autointerface`` - and ``interface`` directives. - - - 0.2.1 (2009-08-20) - ------------------ - - - Fix add_directive arguments to work with Sphinx 0.6.1, now required. - - - 0.1.3 (2009-01-14) - ------------------ - - - Coerce unicode path elements to str in ``_resolve_dotted_name``. - Note that non-ASCII path elements won't work: this fix just deals - with the case where the path was of type unicode. - - - Fixed spelling of directive in README.txt. - - - Added dependency on ``zope.interface``. - - - 0.1.2 (2008-10-03) - ------------------ - - - Packaging change: improved description in README.txt. - - - 0.1.1 (2008-10-03) - ------------------ - - - Packaging bug: the ``long_description`` was not rendering properly to - HTML on PyPI. - - - 0.1 (2008-10-02) - ---------------- - - - Initial release. - -Keywords: web wsgi zope +License: BSD-derived (Repoze) +Project-URL: Documentation, https://github.com/repoze/repoze.sphinx.autointerface/ +Project-URL: Changelog, https://github.com/repoze/repoze.sphinx.autointerface/blob/master/CHANGES.rst +Project-URL: Issue Tracker, https://github.com/repoze/repoze.sphinx.autointerface/issues +Keywords: web wsgi zope Sphinx Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers -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 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy +Requires-Python: >=3.6 +Description-Content-Type: text/x-rst +Provides-Extra: test +License-File: LICENSE.txt + +repoze.sphinx.autointerface README +================================== + +.. image:: https://github.com/repoze/repoze.sphinx.autointerface/actions/workflows/ci-tests.yml/badge.svg + :target: https://github.com/repoze/repoze.sphinx.autointerface/actions/workflows/ci-tests.yml + +.. image:: https://img.shields.io/pypi/v/repoze.sphinx.autointerface.svg + :target: https://pypi.python.org/pypi/repoze.sphinx.autointerface + +.. image:: https://img.shields.io/pypi/pyversions/repoze.sphinx.autointerface.svg + :target: https://pypi.python.org/pypi/repoze.sphinx.autointerface + + +Overview +-------- + +Thie package defines an extension for the +`Sphinx <https://www.sphinx-doc.org/en/master/>`_ documentation system. +The extension allows generation of API documentation by introspection of +`zope.interface <https://pypi.org/project/zope.interface/>`_ instances in +code. + + +Installation +------------ + +Install via ``pip``: + +.. code-block:: bash + + pip install repoze.sphinx.autointerface + + +Registering the Extension +------------------------- + +Add ``repoze.sphinx.autointerface`` to the ``extensions`` list in the +``conf.py`` of the Sphinx documentation for your product. + +.. code-block:: python + + extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.doctest", + "repoze.sphinx.autointerface", + ] + + +Using the Extension +------------------- + +At appropriate points in your document, call out the autodoc interface. + +.. code-block:: rst + + .. autointerface:: yourpackage.interfaces.IFoo + +Output from the directive includes + +- the fully-qualified interface name +- any base interfaces +- the docstring from the interface, rendered as reStructuredText +- the members of the interface (methods and attributes) + + * For each attribute, the output includes the attribute name + and its description. + * For each method, the output includes the method name, its signature, + and its docstring (also rendered as reStructuredText). + + +repoze.sphinx.autointerface Changelog +===================================== + +1.0.0 (2022-05-26) +------------------ + +- Remove sphinx.util.force_decode. Previously we hacked it in to support Python + 2 and Sphinx 3.x, but Sphinx 4.0 deprecated it and dropped Python 2 support. + +- Replace Travis-CI with GitHub Actions + +- Add support for Python 3.6, 3.7, 3.8, 3.9, 3.10, and PyPy3. + +- Drop support for Python 2.7, 3.3, 3.4, 3.5, and PyPy. + +- Update to work with newer Sphinx versions: + + * Sphinx.domains -> Sphinx.registry.domains + * Sphinx.override_domain(D) -> Sphinx.add_domain(D, override=True) + +- Drop support for Sphinx < 4.0. + +0.8 (2016-03-28) +---------------- + +- Add support for Python 3.3, 3.4, and 3.5. + +- Drop support for Python 2.6 and 3.2. + +- Allow cross references using the ``:class:`` directive to use the + ``.`` for "fuzzy" searching. Thanks to Jason Madden for the patch. + +0.7.1 (2012-09-15) +------------------ + +- Remove ``setup.py`` dependency on ``ez_setup.py``. + +0.7.0 (2012-06-20) +------------------ + +- PyPy compatibility. + +- Python 3.2+ compatibility. Thanks to Arfrever for the patch. + +- Include interface docs under the ``automodule`` directive. Thanks to + Krys Lawrence for the patch. + + +0.6.2 (2011-02-13) +------------------ + +- Fix ``TypeError: 'NoneType' object is not iterable`` error when generating + a rendering of an interface under Python 2.7. + + +0.6.1 (2011-01-28) +------------------ + +- Fix ':member-order: bysource' handling. + + +0.6 (2011-01-28) +---------------- + +- Correctly handle ':members:' values explicitly set in the directive. + + +0.5 (2011-01-18) +---------------- + +- Added support for the ':member-order:' flag, which can take one of the + three stock values, "alphabetical", "groupwise", or "bysource". By + default, members are documented in "hash" order. + + +0.4 (2010-07-26) +---------------- + +- Fixed compatibility with Sphinx 1.0 + +- Un-break PyPI ReST/HTML-rendering again. + + +0.3 (2009-10-25) +---------------- + +- Refactor sphinx integration. There are now separate ``autointerface`` + and ``interface`` directives. + + +0.2.1 (2009-08-20) +------------------ + +- Fix add_directive arguments to work with Sphinx 0.6.1, now required. + + +0.1.3 (2009-01-14) +------------------ + +- Coerce unicode path elements to str in ``_resolve_dotted_name``. + Note that non-ASCII path elements won't work: this fix just deals + with the case where the path was of type unicode. + +- Fixed spelling of directive in README.txt. + +- Added dependency on ``zope.interface``. + + +0.1.2 (2008-10-03) +------------------ + +- Packaging change: improved description in README.txt. + + +0.1.1 (2008-10-03) +------------------ + +- Packaging bug: the ``long_description`` was not rendering properly to + HTML on PyPI. + + +0.1 (2008-10-02) +---------------- + +- Initial release. + + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/repoze.sphinx.autointerface-0.8/repoze.sphinx.autointerface.egg-info/SOURCES.txt new/repoze.sphinx.autointerface-1.0.0/repoze.sphinx.autointerface.egg-info/SOURCES.txt --- old/repoze.sphinx.autointerface-0.8/repoze.sphinx.autointerface.egg-info/SOURCES.txt 2016-03-29 02:41:57.000000000 +0200 +++ new/repoze.sphinx.autointerface-1.0.0/repoze.sphinx.autointerface.egg-info/SOURCES.txt 2022-05-26 08:48:53.000000000 +0200 @@ -1,11 +1,13 @@ -.gitignore CHANGES.rst CONTRIBUTORS.txt COPYRIGHT.txt LICENSE.txt +MANIFEST.in README.rst TODO.txt setup.py +tox.ini +.github/workflows/ci-tests.yml repoze/__init__.py repoze.sphinx.autointerface.egg-info/PKG-INFO repoze.sphinx.autointerface.egg-info/SOURCES.txt @@ -15,4 +17,8 @@ repoze.sphinx.autointerface.egg-info/requires.txt repoze.sphinx.autointerface.egg-info/top_level.txt repoze/sphinx/__init__.py -repoze/sphinx/autointerface.py \ No newline at end of file +repoze/sphinx/autointerface.py +repoze/sphinx/tests/__init__.py +repoze/sphinx/tests/test_autointerface.py +repoze/sphinx/tests/util.py +repoze/sphinx/tests/root/conf.py \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/repoze.sphinx.autointerface-0.8/repoze.sphinx.autointerface.egg-info/requires.txt new/repoze.sphinx.autointerface-1.0.0/repoze.sphinx.autointerface.egg-info/requires.txt --- old/repoze.sphinx.autointerface-0.8/repoze.sphinx.autointerface.egg-info/requires.txt 2016-03-29 02:41:57.000000000 +0200 +++ new/repoze.sphinx.autointerface-1.0.0/repoze.sphinx.autointerface.egg-info/requires.txt 2022-05-26 08:48:53.000000000 +0200 @@ -1,3 +1,6 @@ zope.interface -Sphinx>=0.6.1 +Sphinx>=4.0 setuptools + +[test] +zope.testrunner diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/repoze.sphinx.autointerface-0.8/setup.cfg new/repoze.sphinx.autointerface-1.0.0/setup.cfg --- old/repoze.sphinx.autointerface-0.8/setup.cfg 2016-03-29 02:41:57.000000000 +0200 +++ new/repoze.sphinx.autointerface-1.0.0/setup.cfg 2022-05-26 08:48:54.007562000 +0200 @@ -1,5 +1,4 @@ [egg_info] tag_build = tag_date = 0 -tag_svn_revision = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/repoze.sphinx.autointerface-0.8/setup.py new/repoze.sphinx.autointerface-1.0.0/setup.py --- old/repoze.sphinx.autointerface-0.8/setup.py 2016-03-29 02:41:11.000000000 +0200 +++ new/repoze.sphinx.autointerface-1.0.0/setup.py 2022-05-26 08:42:27.000000000 +0200 @@ -12,49 +12,61 @@ # ############################################################################## -import os - from setuptools import setup, find_packages -here = os.path.abspath(os.path.dirname(__file__)) - -with open(os.path.join(here, 'README.rst')) as f: - README = f.read() -with open(os.path.join(here, 'CHANGES.rst')) as f: - CHANGES = f.read() - -setup(name='repoze.sphinx.autointerface', - version='0.8', - description='Sphinx extension: auto-generates API docs ' - 'from Zope interfaces', - long_description=README + '\n\n' + CHANGES, - classifiers=[ +def readfile(name): + with open(name) as f: + return f.read() + + +README = readfile("README.rst") +CHANGES = readfile("CHANGES.rst") + +tests_require = [ + "zope.testrunner", +] + +setup( + name="repoze.sphinx.autointerface", + version="1.0.0", + description="Sphinx extension: auto-generates API docs from Zope interfaces", + long_description=README + "\n\n" + CHANGES, + long_description_content_type='text/x-rst', + classifiers=[ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", - "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", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", - ], - keywords='web wsgi zope', - author="Agendaless Consulting", - author_email="repoze-...@lists.repoze.org", - url="http://www.repoze.org", - license="BSD-derived (http://www.repoze.org/LICENSE.txt)", - packages=find_packages(), - include_package_data=True, - namespace_packages=['repoze', 'repoze.sphinx'], - zip_safe=False, - tests_require = [], - install_requires=['zope.interface', - 'Sphinx>=0.6.1', - 'setuptools', - ], - #test_suite="repoze.", - ) - + ], + keywords="web wsgi zope Sphinx", + author="Agendaless Consulting", + author_email="repoze-...@lists.repoze.org", + url="https://github.com/repoze/repoze.sphinx.autointerface/", + project_urls={ + "Documentation": "https://github.com/repoze/repoze.sphinx.autointerface/", + "Changelog": "https://github.com/repoze/repoze.sphinx.autointerface/blob/master/CHANGES.rst", + "Issue Tracker": "https://github.com/repoze/repoze.sphinx.autointerface/issues", + }, + license="BSD-derived (Repoze)", + packages=find_packages(), + include_package_data=True, + namespace_packages=["repoze", "repoze.sphinx"], + zip_safe=False, + python_requires=">=3.6", + tests_require=tests_require, + install_requires=[ + "zope.interface", + "Sphinx >= 4.0", + "setuptools", + ], + extras_require={ + "test": tests_require, + }, +) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/repoze.sphinx.autointerface-0.8/tox.ini new/repoze.sphinx.autointerface-1.0.0/tox.ini --- old/repoze.sphinx.autointerface-0.8/tox.ini 1970-01-01 01:00:00.000000000 +0100 +++ new/repoze.sphinx.autointerface-1.0.0/tox.ini 2022-05-26 08:38:47.000000000 +0200 @@ -0,0 +1,36 @@ +[tox] +envlist = + py36,py37,py38,py39,py310,pypy3 + +[testenv] +usedevelop = true +commands = + zope-testrunner --test-path={toxinidir} +deps = + zope.testrunner + +;[testenv:format] +;skip_install = true +;commands = +; flake8 repoze tests setup.py +; isort --check-only --df repoze tests setup.py +; black --check --diff repoze tests setup.py +;deps = +; flake8 +; black +; isort + +[testenv:build] +skip_install = true +commands = + # clean up build/ and dist/ folders + python -c 'import shutil; shutil.rmtree("dist", ignore_errors=True); shutil.rmtree("build", ignore_errors=True)' + # build sdist and wheel + python -m build --sdist --wheel --skip-dependencies --no-isolation {toxinidir} + # check long_description via CHANGES and README + twine check dist/* + check-manifest +deps = + build + check-manifest + twine