Metadata-Version: 2.1
Name: repoze.sphinx.autointerface
Version: 1.0.0
Summary: Sphinx extension: auto-generates API docs from Zope interfaces
Home-page: https://github.com/repoze/repoze.sphinx.autointerface/
Author: Agendaless Consulting
Author-email: repoze-dev@lists.repoze.org
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 :: 3
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.


