%global _empty_manifest_terminate_build 0
Name: python-pydoctor
Version: 23.4.0
Release: 1
Summary: API doc generator.
License: MIT/X11
URL: https://github.com/twisted/pydoctor
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/79/96/c736f98e048b01f4719e54ff634f0741b66e1a172627aff2fe72ccf0b19b/pydoctor-23.4.0.tar.gz
BuildArch: noarch
Requires: python3-appdirs
Requires: python3-CacheControl[filecache]
Requires: python3-Twisted
Requires: python3-requests
Requires: python3-astor
Requires: python3-attrs
Requires: python3-docutils
Requires: python3-lunr
Requires: python3-configargparse
Requires: python3-toml
Requires: python3-importlib-metadata
Requires: python3-importlib-resources
Requires: python3-Sphinx
Requires: python3-sphinx-rtd-theme
Requires: python3-sphinxcontrib-spelling
Requires: python3-sphinx-argparse
Requires: python3-docutils
Requires: python3-docutils
Requires: python3-coverage
Requires: python3-pytest
Requires: python3-hypothesis
Requires: python3-cython-test-exception-raiser
Requires: python3-bs4
Requires: python3-Sphinx
%description
This is *pydoctor*, an API documentation generator that works by
static analysis.
It was written primarily to replace ``epydoc`` for the purposes of the
Twisted project as ``epydoc`` has difficulties with ``zope.interface``.
If you are looking for a successor to ``epydoc`` after moving to Python 3,
``pydoctor`` might be the right tool for your project as well.
``pydoctor`` puts a fair bit of effort into resolving imports and
computing inheritance hierarchies and, as it aims at documenting
Twisted, knows about ``zope.interface``'s declaration API and can present
information about which classes implement which interface, and vice
versa.
Simple Usage
~~~~~~~~~~~~
You can run pydoctor on your project like this::
$ pydoctor --make-html --html-output=docs/api src/mylib
For more info, `Read The Docs `_.
Markup
~~~~~~
pydoctor currently supports the following markup languages in docstrings:
`epytext`__ (default)
The markup language of epydoc.
Simple and compact.
`restructuredtext`__
The markup language used by Sphinx.
More expressive than epytext, but also slightly more complex and verbose.
`google`__
Docstrings formatted as specified by the Google Python Style Guide.
(compatible with reStructuredText markup)
`numpy`__
Docstrings formatted as specified by the Numpy Docstring Standard.
(compatible with reStructuredText markup)
``plaintext``
Text without any markup.
__ http://epydoc.sourceforge.net/manual-epytext.html
__ https://docutils.sourceforge.io/rst.html
__ https://google.github.io/styleguide/pyguide.html#s3.8-comments-and-docstrings
__ https://numpydoc.readthedocs.io/en/latest/format.html#docstring-standard
You can select a different format using the ``--docformat`` option or the ``__docformat__`` module variable.
What's New?
~~~~~~~~~~~
pydoctor 23.4.0
^^^^^^^^^^^^^^^
* Add support for Python 3.11
* Add support for the ``@overload`` decorator.
* Show type annotations in function's signatures.
* If none of a function's parameters have documentation, do not render the parameter table.
* Themes have been adjusted to render annotations more concisely.
* Fix a rare crash in the type inference.
Invalid python code like a set of lists would raise a uncaught TypeError in the evaluation.
* Support when source path lies outside base directory (``--project-base-dir``).
Since pydoctor support generating docs for multiple packages,
it is not certain that all of the source is even viewable below a single URL.
We now allow to add arbitrary paths to the system,
but only the objects inside a module wich path is relative to
the base directory can have a source control link generated.
* Cache the default docutils settings on docutils>=0.19 to improve performance.
* Improve the search bar user experience by automatically appending wildcard to each query terms
when no terms already contain a wildcard.
* Link recognized constructors in class page.
* An invalid epytext docstring will be rederered as plaintext, just like invalid restructuredtext docstrings (finally).
pydoctor 22.9.1
^^^^^^^^^^^^^^^
* ``pydoctor --help`` works again.
pydoctor 22.9.0
^^^^^^^^^^^^^^^
* Add a special kind for exceptions (before, they were treated just like any other class).
* The ZopeInterface features now renders again. A regression was introduced in pydoctor 22.7.0.
* Python syntax errors are now logged as violations.
* Fixed rare crash in the rendering of parsed elements (i.e. docstrings and ASTs).
This is because XHTML entities like non-breaking spaces are not supported by Twisted's ``XMLString`` at the moment.
* Show the value of type aliases and type variables.
* The ``--prepend-package`` now work as documented.
A regression was introduced in pydoctor 22.7.0 and it was not nesting new packages under the "fake" package.
* `self` parameter is now removed only when the target is a method. In the previous version, it was always removed in any context.
* `cls` parameter is now removed only when the target is a class method. In the previous version, it was always removed in any context.
* Add anchors aside attributes and functions to ease
the process of sharing links to these API docs.
* Fix a bug in the return clause of google-style docstrings
where the return type would be treated as the description
when there is no explicit description.
* Trigger warnings for unknown config options.
* Fix minor UX issues in the search bar.
* Fix deprecation in Docutils 0.19 frontend
pydoctor 22.7.0
^^^^^^^^^^^^^^^
* Add support for generics in class hierarchies.
* Fix long standing bugs in ``Class`` method resolution order.
* Improve the extensibility of pydoctor (`more infos on extensions `_)
* Fix line numbers in reStructuredText xref warnings.
* Add support for `twisted.python.deprecated` (this was originally part of Twisted's customizations).
* Add support for re-exporting it names imported from a wildcard import.
pydoctor 22.5.1
^^^^^^^^^^^^^^^
* ``docutils>=0.17`` is now the minimum supported version. This was done to fix crashing with ``AttributeError`` when processing type fields.
pydoctor 22.5.0
^^^^^^^^^^^^^^^
* Add Read The Docs theme, enable it with option ``--theme=readthedocs``.
* Add a sidebar. Configure it with options ``--sidebar-expand-depth`` and ``--sidebar-toc-depth``. Disable with ``--no-sidebar``.
* Highlight the active function or attribute.
* Packages and modules are now listed together.
* Docstring summaries are now generated from docutils nodes:
- fixes a bug in restructuredtext references in summary.
- still display summary when the first paragraph is long instead of "No summary".
* The module index now uses a more compact presentation for modules with more than 50 submodules and no subsubmodules.
* Fix source links for code hosted on Bitbucket or SourceForge.
* The ``--html-viewsource-template`` option was added to allow for custom URL scheme when linking to the source code pages and lines.
pydoctor 22.4.0
^^^^^^^^^^^^^^^
* Add option ``--privacy`` to set the privacy of specific objects when default rules doesn't fit the use case.
* Option ``--docformat=plaintext`` overrides any assignments to ``__docformat__``
module variable in order to focus on potential python code parsing errors.
* Switch to ``configargparse`` to handle argument and configuration file parsing (`more infos `_).
* Improved performances with caching of docstring summaries.
pydoctor 22.3.0
^^^^^^^^^^^^^^^
* Add client side search system based on lunr.js.
* Fix broken links in docstring summaries.
* Add cache for the xref linker, reduces the number of identical warnings.
* Fix crash when reparenting objects with duplicate names.
pydoctor 22.2.2
^^^^^^^^^^^^^^^
* Fix resolving names re-exported in ``__all__`` variable.
pydoctor 22.2.1
^^^^^^^^^^^^^^^
* Fix crash of pydoctor when processing a reparented module.
pydoctor 22.2.0
^^^^^^^^^^^^^^^
* Improve the name resolving algo such that it checks in super classes for inherited attributes.
* C-modules wins over regular modules when there is a name clash.
* Packages wins over modules when there is a name clash.
* Fixed that modules were processed in a random order leading to several hard to reproduce bugs.
* Intersphinx links have now dedicated markup.
With the default theme,
this allows to have the external intershinx links blue while the internal links are red.
* Smarter line wrapping in summary and parameters tables.
* Any code inside of ``if __name__ == '__main__'`` is now excluded from the documentation.
* Fix variables named like the current module not being documented.
* The Module Index now only shows module names instead of their full name. You can hover over a module link to see the full name.
* If there is only a single root module, `index.html` now documents that module (previously it only linked the module page).
* Fix introspection of functions comming from C-extensions.
* Fix that the colorizer might make Twisted's flatten function crash with surrogates unicode strings.
pydoctor 21.12.1
^^^^^^^^^^^^^^^^
* Include module ``sre_parse36.py`` within ``pydoctor.epydoc`` to avoid an extra PyPi dependency.
pydoctor 21.12.0
^^^^^^^^^^^^^^^^
* Add support for reStructuredText directives ``.. deprecated::``, ``.. versionchanged::`` and ``.. versionadded::``.
* Add syntax highlight for constant values, decorators and parameter defaults.
* Embedded documentation links inside the value of constants, decorators and parameter defaults.
* Provide option ``--pyval-repr-maxlines`` and ``--pyval-repr-linelen`` to control the size of a constant value representation.
* Provide option ``--process-types`` to automatically link types in docstring fields (`more info `_).
* Forked Napoleon Sphinx extension to provide google-style and numpy-style docstring parsing.
* Introduced fields ``warns``, ``yields`` and ``yieldtype``.
* Following google style guide, ``*args`` and ``**kwargs`` are now rendered with asterisks in the parameters table.
* Mark variables as constants when their names is all caps or if using `Final` annotation.
pydoctor 21.9.2
^^^^^^^^^^^^^^^
* Fix ``AttributeError`` raised when parsing reStructuredText consolidated fields, caused by a change in ``docutils`` 0.18.
* Fix ``DeprecationWarning``, use newer APIs of ``importlib_resources`` module.
pydoctor 21.9.1
^^^^^^^^^^^^^^^
* Fix deprecation warning and officially support Python 3.10.
* Fix the literals style (use same style as before).
pydoctor 21.9.0
^^^^^^^^^^^^^^^
* Add support for multiple themes, selectable with ``--theme`` option.
* Support selecting a different docstring format for a module using the ``__docformat__`` variable.
* HTML templates are now customizable with ``--template-dir`` option.
* Change the fields layout to display the arguments type right after their name. Same goes for variables.
pydoctor 21.2.2
^^^^^^^^^^^^^^^
* Fix positioning of anchors, such that following a link to a member of a module or class will scroll its documentation to a visible spot at the top of the page.
pydoctor 21.2.1
^^^^^^^^^^^^^^^
* Fix presentation of the project name and URL in the navigation bars, such that it works as expected on all generated HTML pages.
pydoctor 21.2.0
^^^^^^^^^^^^^^^
* Removed the ``--html-write-function-pages`` option. As a replacement, you can use the generated Intersphinx inventory (``objects.inv``) for deep-linking your documentation.
* Fixed project version in the generated Intersphinx inventory. This used to be hardcoded to 2.0 (we mistook it for a format version), now it is unversioned by default and a version can be specified using the new ``--project-version`` option.
* Fixed multiple bugs in Python name resolution, which could lead to for example missing "implemented by" links.
* Fixed bug where class docstring fields such as ``cvar`` and ``ivar`` are ignored when they override inherited attribute docstrings.
* Property decorators containing one or more dots (such as ``@abc.abstractproperty``) are now recognized by the custom properties support.
* Improvements to `attrs`__ support:
- Attributes are now marked as instance variables.
- Type comments are given precedence over types inferred from ``attr.ib``.
- Support positional arguments in ``attr.ib`` definitions. Please use keyword arguments instead though, both for clarity and to be compatible with future ``attrs`` releases.
* Improvements in the treatment of the ``__all__`` module variable:
- Assigning an empty sequence is interpreted as exporting nothing instead of being ignored.
- Better error reporting when the value assigned is either invalid or pydoctor cannot make sense of it.
* Added ``except`` field as a synonym of ``raises``, to be compatible with epydoc and to fix handling of the ``:Exceptions:`` consolidated field in reStructuredText.
* Exception types and external base classes are hyperlinked to their class documentation.
* Formatting of ``def func():`` and ``class Class:`` lines was made consistent with code blocks.
* Changes to the "Show/hide Private API" button:
- The button was moved to the right hand side of the navigation bar, to avoid overlapping the content on narrow displays.
- The show/hide state is now synced with a query argument in the location bar. This way, if you bookmark the page or send a link to someone else, the show/hide state will be preserved.
- A deep link to a private API item will now automatically enable "show private API" mode.
* Improvements to the ``build_apidocs`` Sphinx extension:
- API docs are now built before Sphinx docs, such that the rest of the documentation can link to it via Intersphinx.
- New configuration variable ``pydoctor_url_path`` that will automatically update the ``intersphinx_mapping`` variable so that it uses the latest API inventory.
- The extension can be configured to build API docs for more than one package.
* ``pydoctor.__version__`` is now a plain ``str`` instead of an ``incremental.Version`` object.
__ https://www.attrs.org/
pydoctor 20.12.1
^^^^^^^^^^^^^^^^
* Reject source directories outside the project base directory (if given), instead of crashing.
* Fixed bug where source directories containing symbolic links could appear to be outside of the project base directory, leading to a crash.
* Bring back source link on package pages.
pydoctor 20.12.0
^^^^^^^^^^^^^^^^
* Python 3.6 or higher is required.
* There is now a user manual that can be built with Sphinx or read online on `Read the Docs`__. This is a work in progress and the online version will be updated between releases.
* Added support for Python language features:
- Type annotations of function parameters and return value are used when the docstring does not document a type.
- Functions decorated with ``@property`` or any other decorator with a name ending in "property" are now formatted similar to variables.
- Coroutine functions (``async def``) are included in the output.
- Keyword-only and position-only parameters are included in the output.
* Output improvements:
- Type names in annotations are hyperlinked to the corresponding documentation.
- Styling changes to make the generated documentation easier to read and navigate.
- Private API is now hidden by default on the Module Index, Class Hierarchy and Index of Names pages.
- The pydoctor version is included in the "generated by" line in the footer.
* All parents of the HTML output directory are now created by pydoctor; previously it would create only the deepest directory.
* The ``--add-package`` and ``--add-module`` options have been deprecated; pass the source paths as positional arguments instead.
* New option ``-W``/``--warnings-as-errors`` to fail your build on documentation errors.
* Linking to the standard library documentation is more accurate now, but does require the use of an Intersphinx inventory (``--intersphinx=https://docs.python.org/3/objects.inv``).
* Caching of Intersphinx inventories is now enabled by default.
* Added a `Sphinx extension`__ for embedding pydoctor's output in a project's Sphinx documentation.
* Added an extra named ``rst`` for the dependencies needed to process reStructuredText (``pip install -U pydoctor[rst]``).
* Improved error reporting:
- More accurate source locations (file + line number) in error messages.
- Warnings were added for common mistakes when documenting parameters.
- Clearer error message when a link target is not found.
* Increased reliability:
- Fixed crash when analyzing ``from package import *``.
- Fixed crash when the line number for a docstring error is unknown.
- Better unit test coverage, more system tests, started adding type annotations to the code.
- Unit tests are also run on Windows.
__ https://pydoctor.readthedocs.io/
__ https://pydoctor.readthedocs.io/en/latest/usage.html#building-pydoctor-together-with-sphinx-html-build
pydoctor 20.7.2
^^^^^^^^^^^^^^^
* Fix handling of external links in reStructuredText under Python 3.
* Fix reporting of errors in reStructuredText under Python 3.
* Restore syntax highlighting of Python code blocks.
pydoctor 20.7.1
^^^^^^^^^^^^^^^
* Fix cross-reference links to builtin types in standard library.
* Fix and improve error message printed for unknown fields.
pydoctor 20.7.0
^^^^^^^^^^^^^^^
* Python 3 support.
* Type annotations on attributes are supported when running on Python 3.
* Type comments on attributes are supported when running on Python 3.8+.
* Type annotations on function definitions are not supported yet.
* Undocumented attributes are now included in the output.
* Attribute docstrings: a module, class or instance variable can be documented by a following it up with a docstring.
* Improved error reporting: more errors are reported, error messages include file name and line number.
* Dropped support for implicit relative imports.
* Explicit relative imports (using ``from``) no longer cause warnings.
* Dropped support for index terms in epytext (``X{}``). This was never supported in any meaningful capacity, but now the tag is gone.
This was the last major release to support Python 2.7 and 3.5.
%package -n python3-pydoctor
Summary: API doc generator.
Provides: python-pydoctor
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-pydoctor
This is *pydoctor*, an API documentation generator that works by
static analysis.
It was written primarily to replace ``epydoc`` for the purposes of the
Twisted project as ``epydoc`` has difficulties with ``zope.interface``.
If you are looking for a successor to ``epydoc`` after moving to Python 3,
``pydoctor`` might be the right tool for your project as well.
``pydoctor`` puts a fair bit of effort into resolving imports and
computing inheritance hierarchies and, as it aims at documenting
Twisted, knows about ``zope.interface``'s declaration API and can present
information about which classes implement which interface, and vice
versa.
Simple Usage
~~~~~~~~~~~~
You can run pydoctor on your project like this::
$ pydoctor --make-html --html-output=docs/api src/mylib
For more info, `Read The Docs `_.
Markup
~~~~~~
pydoctor currently supports the following markup languages in docstrings:
`epytext`__ (default)
The markup language of epydoc.
Simple and compact.
`restructuredtext`__
The markup language used by Sphinx.
More expressive than epytext, but also slightly more complex and verbose.
`google`__
Docstrings formatted as specified by the Google Python Style Guide.
(compatible with reStructuredText markup)
`numpy`__
Docstrings formatted as specified by the Numpy Docstring Standard.
(compatible with reStructuredText markup)
``plaintext``
Text without any markup.
__ http://epydoc.sourceforge.net/manual-epytext.html
__ https://docutils.sourceforge.io/rst.html
__ https://google.github.io/styleguide/pyguide.html#s3.8-comments-and-docstrings
__ https://numpydoc.readthedocs.io/en/latest/format.html#docstring-standard
You can select a different format using the ``--docformat`` option or the ``__docformat__`` module variable.
What's New?
~~~~~~~~~~~
pydoctor 23.4.0
^^^^^^^^^^^^^^^
* Add support for Python 3.11
* Add support for the ``@overload`` decorator.
* Show type annotations in function's signatures.
* If none of a function's parameters have documentation, do not render the parameter table.
* Themes have been adjusted to render annotations more concisely.
* Fix a rare crash in the type inference.
Invalid python code like a set of lists would raise a uncaught TypeError in the evaluation.
* Support when source path lies outside base directory (``--project-base-dir``).
Since pydoctor support generating docs for multiple packages,
it is not certain that all of the source is even viewable below a single URL.
We now allow to add arbitrary paths to the system,
but only the objects inside a module wich path is relative to
the base directory can have a source control link generated.
* Cache the default docutils settings on docutils>=0.19 to improve performance.
* Improve the search bar user experience by automatically appending wildcard to each query terms
when no terms already contain a wildcard.
* Link recognized constructors in class page.
* An invalid epytext docstring will be rederered as plaintext, just like invalid restructuredtext docstrings (finally).
pydoctor 22.9.1
^^^^^^^^^^^^^^^
* ``pydoctor --help`` works again.
pydoctor 22.9.0
^^^^^^^^^^^^^^^
* Add a special kind for exceptions (before, they were treated just like any other class).
* The ZopeInterface features now renders again. A regression was introduced in pydoctor 22.7.0.
* Python syntax errors are now logged as violations.
* Fixed rare crash in the rendering of parsed elements (i.e. docstrings and ASTs).
This is because XHTML entities like non-breaking spaces are not supported by Twisted's ``XMLString`` at the moment.
* Show the value of type aliases and type variables.
* The ``--prepend-package`` now work as documented.
A regression was introduced in pydoctor 22.7.0 and it was not nesting new packages under the "fake" package.
* `self` parameter is now removed only when the target is a method. In the previous version, it was always removed in any context.
* `cls` parameter is now removed only when the target is a class method. In the previous version, it was always removed in any context.
* Add anchors aside attributes and functions to ease
the process of sharing links to these API docs.
* Fix a bug in the return clause of google-style docstrings
where the return type would be treated as the description
when there is no explicit description.
* Trigger warnings for unknown config options.
* Fix minor UX issues in the search bar.
* Fix deprecation in Docutils 0.19 frontend
pydoctor 22.7.0
^^^^^^^^^^^^^^^
* Add support for generics in class hierarchies.
* Fix long standing bugs in ``Class`` method resolution order.
* Improve the extensibility of pydoctor (`more infos on extensions `_)
* Fix line numbers in reStructuredText xref warnings.
* Add support for `twisted.python.deprecated` (this was originally part of Twisted's customizations).
* Add support for re-exporting it names imported from a wildcard import.
pydoctor 22.5.1
^^^^^^^^^^^^^^^
* ``docutils>=0.17`` is now the minimum supported version. This was done to fix crashing with ``AttributeError`` when processing type fields.
pydoctor 22.5.0
^^^^^^^^^^^^^^^
* Add Read The Docs theme, enable it with option ``--theme=readthedocs``.
* Add a sidebar. Configure it with options ``--sidebar-expand-depth`` and ``--sidebar-toc-depth``. Disable with ``--no-sidebar``.
* Highlight the active function or attribute.
* Packages and modules are now listed together.
* Docstring summaries are now generated from docutils nodes:
- fixes a bug in restructuredtext references in summary.
- still display summary when the first paragraph is long instead of "No summary".
* The module index now uses a more compact presentation for modules with more than 50 submodules and no subsubmodules.
* Fix source links for code hosted on Bitbucket or SourceForge.
* The ``--html-viewsource-template`` option was added to allow for custom URL scheme when linking to the source code pages and lines.
pydoctor 22.4.0
^^^^^^^^^^^^^^^
* Add option ``--privacy`` to set the privacy of specific objects when default rules doesn't fit the use case.
* Option ``--docformat=plaintext`` overrides any assignments to ``__docformat__``
module variable in order to focus on potential python code parsing errors.
* Switch to ``configargparse`` to handle argument and configuration file parsing (`more infos `_).
* Improved performances with caching of docstring summaries.
pydoctor 22.3.0
^^^^^^^^^^^^^^^
* Add client side search system based on lunr.js.
* Fix broken links in docstring summaries.
* Add cache for the xref linker, reduces the number of identical warnings.
* Fix crash when reparenting objects with duplicate names.
pydoctor 22.2.2
^^^^^^^^^^^^^^^
* Fix resolving names re-exported in ``__all__`` variable.
pydoctor 22.2.1
^^^^^^^^^^^^^^^
* Fix crash of pydoctor when processing a reparented module.
pydoctor 22.2.0
^^^^^^^^^^^^^^^
* Improve the name resolving algo such that it checks in super classes for inherited attributes.
* C-modules wins over regular modules when there is a name clash.
* Packages wins over modules when there is a name clash.
* Fixed that modules were processed in a random order leading to several hard to reproduce bugs.
* Intersphinx links have now dedicated markup.
With the default theme,
this allows to have the external intershinx links blue while the internal links are red.
* Smarter line wrapping in summary and parameters tables.
* Any code inside of ``if __name__ == '__main__'`` is now excluded from the documentation.
* Fix variables named like the current module not being documented.
* The Module Index now only shows module names instead of their full name. You can hover over a module link to see the full name.
* If there is only a single root module, `index.html` now documents that module (previously it only linked the module page).
* Fix introspection of functions comming from C-extensions.
* Fix that the colorizer might make Twisted's flatten function crash with surrogates unicode strings.
pydoctor 21.12.1
^^^^^^^^^^^^^^^^
* Include module ``sre_parse36.py`` within ``pydoctor.epydoc`` to avoid an extra PyPi dependency.
pydoctor 21.12.0
^^^^^^^^^^^^^^^^
* Add support for reStructuredText directives ``.. deprecated::``, ``.. versionchanged::`` and ``.. versionadded::``.
* Add syntax highlight for constant values, decorators and parameter defaults.
* Embedded documentation links inside the value of constants, decorators and parameter defaults.
* Provide option ``--pyval-repr-maxlines`` and ``--pyval-repr-linelen`` to control the size of a constant value representation.
* Provide option ``--process-types`` to automatically link types in docstring fields (`more info `_).
* Forked Napoleon Sphinx extension to provide google-style and numpy-style docstring parsing.
* Introduced fields ``warns``, ``yields`` and ``yieldtype``.
* Following google style guide, ``*args`` and ``**kwargs`` are now rendered with asterisks in the parameters table.
* Mark variables as constants when their names is all caps or if using `Final` annotation.
pydoctor 21.9.2
^^^^^^^^^^^^^^^
* Fix ``AttributeError`` raised when parsing reStructuredText consolidated fields, caused by a change in ``docutils`` 0.18.
* Fix ``DeprecationWarning``, use newer APIs of ``importlib_resources`` module.
pydoctor 21.9.1
^^^^^^^^^^^^^^^
* Fix deprecation warning and officially support Python 3.10.
* Fix the literals style (use same style as before).
pydoctor 21.9.0
^^^^^^^^^^^^^^^
* Add support for multiple themes, selectable with ``--theme`` option.
* Support selecting a different docstring format for a module using the ``__docformat__`` variable.
* HTML templates are now customizable with ``--template-dir`` option.
* Change the fields layout to display the arguments type right after their name. Same goes for variables.
pydoctor 21.2.2
^^^^^^^^^^^^^^^
* Fix positioning of anchors, such that following a link to a member of a module or class will scroll its documentation to a visible spot at the top of the page.
pydoctor 21.2.1
^^^^^^^^^^^^^^^
* Fix presentation of the project name and URL in the navigation bars, such that it works as expected on all generated HTML pages.
pydoctor 21.2.0
^^^^^^^^^^^^^^^
* Removed the ``--html-write-function-pages`` option. As a replacement, you can use the generated Intersphinx inventory (``objects.inv``) for deep-linking your documentation.
* Fixed project version in the generated Intersphinx inventory. This used to be hardcoded to 2.0 (we mistook it for a format version), now it is unversioned by default and a version can be specified using the new ``--project-version`` option.
* Fixed multiple bugs in Python name resolution, which could lead to for example missing "implemented by" links.
* Fixed bug where class docstring fields such as ``cvar`` and ``ivar`` are ignored when they override inherited attribute docstrings.
* Property decorators containing one or more dots (such as ``@abc.abstractproperty``) are now recognized by the custom properties support.
* Improvements to `attrs`__ support:
- Attributes are now marked as instance variables.
- Type comments are given precedence over types inferred from ``attr.ib``.
- Support positional arguments in ``attr.ib`` definitions. Please use keyword arguments instead though, both for clarity and to be compatible with future ``attrs`` releases.
* Improvements in the treatment of the ``__all__`` module variable:
- Assigning an empty sequence is interpreted as exporting nothing instead of being ignored.
- Better error reporting when the value assigned is either invalid or pydoctor cannot make sense of it.
* Added ``except`` field as a synonym of ``raises``, to be compatible with epydoc and to fix handling of the ``:Exceptions:`` consolidated field in reStructuredText.
* Exception types and external base classes are hyperlinked to their class documentation.
* Formatting of ``def func():`` and ``class Class:`` lines was made consistent with code blocks.
* Changes to the "Show/hide Private API" button:
- The button was moved to the right hand side of the navigation bar, to avoid overlapping the content on narrow displays.
- The show/hide state is now synced with a query argument in the location bar. This way, if you bookmark the page or send a link to someone else, the show/hide state will be preserved.
- A deep link to a private API item will now automatically enable "show private API" mode.
* Improvements to the ``build_apidocs`` Sphinx extension:
- API docs are now built before Sphinx docs, such that the rest of the documentation can link to it via Intersphinx.
- New configuration variable ``pydoctor_url_path`` that will automatically update the ``intersphinx_mapping`` variable so that it uses the latest API inventory.
- The extension can be configured to build API docs for more than one package.
* ``pydoctor.__version__`` is now a plain ``str`` instead of an ``incremental.Version`` object.
__ https://www.attrs.org/
pydoctor 20.12.1
^^^^^^^^^^^^^^^^
* Reject source directories outside the project base directory (if given), instead of crashing.
* Fixed bug where source directories containing symbolic links could appear to be outside of the project base directory, leading to a crash.
* Bring back source link on package pages.
pydoctor 20.12.0
^^^^^^^^^^^^^^^^
* Python 3.6 or higher is required.
* There is now a user manual that can be built with Sphinx or read online on `Read the Docs`__. This is a work in progress and the online version will be updated between releases.
* Added support for Python language features:
- Type annotations of function parameters and return value are used when the docstring does not document a type.
- Functions decorated with ``@property`` or any other decorator with a name ending in "property" are now formatted similar to variables.
- Coroutine functions (``async def``) are included in the output.
- Keyword-only and position-only parameters are included in the output.
* Output improvements:
- Type names in annotations are hyperlinked to the corresponding documentation.
- Styling changes to make the generated documentation easier to read and navigate.
- Private API is now hidden by default on the Module Index, Class Hierarchy and Index of Names pages.
- The pydoctor version is included in the "generated by" line in the footer.
* All parents of the HTML output directory are now created by pydoctor; previously it would create only the deepest directory.
* The ``--add-package`` and ``--add-module`` options have been deprecated; pass the source paths as positional arguments instead.
* New option ``-W``/``--warnings-as-errors`` to fail your build on documentation errors.
* Linking to the standard library documentation is more accurate now, but does require the use of an Intersphinx inventory (``--intersphinx=https://docs.python.org/3/objects.inv``).
* Caching of Intersphinx inventories is now enabled by default.
* Added a `Sphinx extension`__ for embedding pydoctor's output in a project's Sphinx documentation.
* Added an extra named ``rst`` for the dependencies needed to process reStructuredText (``pip install -U pydoctor[rst]``).
* Improved error reporting:
- More accurate source locations (file + line number) in error messages.
- Warnings were added for common mistakes when documenting parameters.
- Clearer error message when a link target is not found.
* Increased reliability:
- Fixed crash when analyzing ``from package import *``.
- Fixed crash when the line number for a docstring error is unknown.
- Better unit test coverage, more system tests, started adding type annotations to the code.
- Unit tests are also run on Windows.
__ https://pydoctor.readthedocs.io/
__ https://pydoctor.readthedocs.io/en/latest/usage.html#building-pydoctor-together-with-sphinx-html-build
pydoctor 20.7.2
^^^^^^^^^^^^^^^
* Fix handling of external links in reStructuredText under Python 3.
* Fix reporting of errors in reStructuredText under Python 3.
* Restore syntax highlighting of Python code blocks.
pydoctor 20.7.1
^^^^^^^^^^^^^^^
* Fix cross-reference links to builtin types in standard library.
* Fix and improve error message printed for unknown fields.
pydoctor 20.7.0
^^^^^^^^^^^^^^^
* Python 3 support.
* Type annotations on attributes are supported when running on Python 3.
* Type comments on attributes are supported when running on Python 3.8+.
* Type annotations on function definitions are not supported yet.
* Undocumented attributes are now included in the output.
* Attribute docstrings: a module, class or instance variable can be documented by a following it up with a docstring.
* Improved error reporting: more errors are reported, error messages include file name and line number.
* Dropped support for implicit relative imports.
* Explicit relative imports (using ``from``) no longer cause warnings.
* Dropped support for index terms in epytext (``X{}``). This was never supported in any meaningful capacity, but now the tag is gone.
This was the last major release to support Python 2.7 and 3.5.
%package help
Summary: Development documents and examples for pydoctor
Provides: python3-pydoctor-doc
%description help
This is *pydoctor*, an API documentation generator that works by
static analysis.
It was written primarily to replace ``epydoc`` for the purposes of the
Twisted project as ``epydoc`` has difficulties with ``zope.interface``.
If you are looking for a successor to ``epydoc`` after moving to Python 3,
``pydoctor`` might be the right tool for your project as well.
``pydoctor`` puts a fair bit of effort into resolving imports and
computing inheritance hierarchies and, as it aims at documenting
Twisted, knows about ``zope.interface``'s declaration API and can present
information about which classes implement which interface, and vice
versa.
Simple Usage
~~~~~~~~~~~~
You can run pydoctor on your project like this::
$ pydoctor --make-html --html-output=docs/api src/mylib
For more info, `Read The Docs `_.
Markup
~~~~~~
pydoctor currently supports the following markup languages in docstrings:
`epytext`__ (default)
The markup language of epydoc.
Simple and compact.
`restructuredtext`__
The markup language used by Sphinx.
More expressive than epytext, but also slightly more complex and verbose.
`google`__
Docstrings formatted as specified by the Google Python Style Guide.
(compatible with reStructuredText markup)
`numpy`__
Docstrings formatted as specified by the Numpy Docstring Standard.
(compatible with reStructuredText markup)
``plaintext``
Text without any markup.
__ http://epydoc.sourceforge.net/manual-epytext.html
__ https://docutils.sourceforge.io/rst.html
__ https://google.github.io/styleguide/pyguide.html#s3.8-comments-and-docstrings
__ https://numpydoc.readthedocs.io/en/latest/format.html#docstring-standard
You can select a different format using the ``--docformat`` option or the ``__docformat__`` module variable.
What's New?
~~~~~~~~~~~
pydoctor 23.4.0
^^^^^^^^^^^^^^^
* Add support for Python 3.11
* Add support for the ``@overload`` decorator.
* Show type annotations in function's signatures.
* If none of a function's parameters have documentation, do not render the parameter table.
* Themes have been adjusted to render annotations more concisely.
* Fix a rare crash in the type inference.
Invalid python code like a set of lists would raise a uncaught TypeError in the evaluation.
* Support when source path lies outside base directory (``--project-base-dir``).
Since pydoctor support generating docs for multiple packages,
it is not certain that all of the source is even viewable below a single URL.
We now allow to add arbitrary paths to the system,
but only the objects inside a module wich path is relative to
the base directory can have a source control link generated.
* Cache the default docutils settings on docutils>=0.19 to improve performance.
* Improve the search bar user experience by automatically appending wildcard to each query terms
when no terms already contain a wildcard.
* Link recognized constructors in class page.
* An invalid epytext docstring will be rederered as plaintext, just like invalid restructuredtext docstrings (finally).
pydoctor 22.9.1
^^^^^^^^^^^^^^^
* ``pydoctor --help`` works again.
pydoctor 22.9.0
^^^^^^^^^^^^^^^
* Add a special kind for exceptions (before, they were treated just like any other class).
* The ZopeInterface features now renders again. A regression was introduced in pydoctor 22.7.0.
* Python syntax errors are now logged as violations.
* Fixed rare crash in the rendering of parsed elements (i.e. docstrings and ASTs).
This is because XHTML entities like non-breaking spaces are not supported by Twisted's ``XMLString`` at the moment.
* Show the value of type aliases and type variables.
* The ``--prepend-package`` now work as documented.
A regression was introduced in pydoctor 22.7.0 and it was not nesting new packages under the "fake" package.
* `self` parameter is now removed only when the target is a method. In the previous version, it was always removed in any context.
* `cls` parameter is now removed only when the target is a class method. In the previous version, it was always removed in any context.
* Add anchors aside attributes and functions to ease
the process of sharing links to these API docs.
* Fix a bug in the return clause of google-style docstrings
where the return type would be treated as the description
when there is no explicit description.
* Trigger warnings for unknown config options.
* Fix minor UX issues in the search bar.
* Fix deprecation in Docutils 0.19 frontend
pydoctor 22.7.0
^^^^^^^^^^^^^^^
* Add support for generics in class hierarchies.
* Fix long standing bugs in ``Class`` method resolution order.
* Improve the extensibility of pydoctor (`more infos on extensions `_)
* Fix line numbers in reStructuredText xref warnings.
* Add support for `twisted.python.deprecated` (this was originally part of Twisted's customizations).
* Add support for re-exporting it names imported from a wildcard import.
pydoctor 22.5.1
^^^^^^^^^^^^^^^
* ``docutils>=0.17`` is now the minimum supported version. This was done to fix crashing with ``AttributeError`` when processing type fields.
pydoctor 22.5.0
^^^^^^^^^^^^^^^
* Add Read The Docs theme, enable it with option ``--theme=readthedocs``.
* Add a sidebar. Configure it with options ``--sidebar-expand-depth`` and ``--sidebar-toc-depth``. Disable with ``--no-sidebar``.
* Highlight the active function or attribute.
* Packages and modules are now listed together.
* Docstring summaries are now generated from docutils nodes:
- fixes a bug in restructuredtext references in summary.
- still display summary when the first paragraph is long instead of "No summary".
* The module index now uses a more compact presentation for modules with more than 50 submodules and no subsubmodules.
* Fix source links for code hosted on Bitbucket or SourceForge.
* The ``--html-viewsource-template`` option was added to allow for custom URL scheme when linking to the source code pages and lines.
pydoctor 22.4.0
^^^^^^^^^^^^^^^
* Add option ``--privacy`` to set the privacy of specific objects when default rules doesn't fit the use case.
* Option ``--docformat=plaintext`` overrides any assignments to ``__docformat__``
module variable in order to focus on potential python code parsing errors.
* Switch to ``configargparse`` to handle argument and configuration file parsing (`more infos `_).
* Improved performances with caching of docstring summaries.
pydoctor 22.3.0
^^^^^^^^^^^^^^^
* Add client side search system based on lunr.js.
* Fix broken links in docstring summaries.
* Add cache for the xref linker, reduces the number of identical warnings.
* Fix crash when reparenting objects with duplicate names.
pydoctor 22.2.2
^^^^^^^^^^^^^^^
* Fix resolving names re-exported in ``__all__`` variable.
pydoctor 22.2.1
^^^^^^^^^^^^^^^
* Fix crash of pydoctor when processing a reparented module.
pydoctor 22.2.0
^^^^^^^^^^^^^^^
* Improve the name resolving algo such that it checks in super classes for inherited attributes.
* C-modules wins over regular modules when there is a name clash.
* Packages wins over modules when there is a name clash.
* Fixed that modules were processed in a random order leading to several hard to reproduce bugs.
* Intersphinx links have now dedicated markup.
With the default theme,
this allows to have the external intershinx links blue while the internal links are red.
* Smarter line wrapping in summary and parameters tables.
* Any code inside of ``if __name__ == '__main__'`` is now excluded from the documentation.
* Fix variables named like the current module not being documented.
* The Module Index now only shows module names instead of their full name. You can hover over a module link to see the full name.
* If there is only a single root module, `index.html` now documents that module (previously it only linked the module page).
* Fix introspection of functions comming from C-extensions.
* Fix that the colorizer might make Twisted's flatten function crash with surrogates unicode strings.
pydoctor 21.12.1
^^^^^^^^^^^^^^^^
* Include module ``sre_parse36.py`` within ``pydoctor.epydoc`` to avoid an extra PyPi dependency.
pydoctor 21.12.0
^^^^^^^^^^^^^^^^
* Add support for reStructuredText directives ``.. deprecated::``, ``.. versionchanged::`` and ``.. versionadded::``.
* Add syntax highlight for constant values, decorators and parameter defaults.
* Embedded documentation links inside the value of constants, decorators and parameter defaults.
* Provide option ``--pyval-repr-maxlines`` and ``--pyval-repr-linelen`` to control the size of a constant value representation.
* Provide option ``--process-types`` to automatically link types in docstring fields (`more info `_).
* Forked Napoleon Sphinx extension to provide google-style and numpy-style docstring parsing.
* Introduced fields ``warns``, ``yields`` and ``yieldtype``.
* Following google style guide, ``*args`` and ``**kwargs`` are now rendered with asterisks in the parameters table.
* Mark variables as constants when their names is all caps or if using `Final` annotation.
pydoctor 21.9.2
^^^^^^^^^^^^^^^
* Fix ``AttributeError`` raised when parsing reStructuredText consolidated fields, caused by a change in ``docutils`` 0.18.
* Fix ``DeprecationWarning``, use newer APIs of ``importlib_resources`` module.
pydoctor 21.9.1
^^^^^^^^^^^^^^^
* Fix deprecation warning and officially support Python 3.10.
* Fix the literals style (use same style as before).
pydoctor 21.9.0
^^^^^^^^^^^^^^^
* Add support for multiple themes, selectable with ``--theme`` option.
* Support selecting a different docstring format for a module using the ``__docformat__`` variable.
* HTML templates are now customizable with ``--template-dir`` option.
* Change the fields layout to display the arguments type right after their name. Same goes for variables.
pydoctor 21.2.2
^^^^^^^^^^^^^^^
* Fix positioning of anchors, such that following a link to a member of a module or class will scroll its documentation to a visible spot at the top of the page.
pydoctor 21.2.1
^^^^^^^^^^^^^^^
* Fix presentation of the project name and URL in the navigation bars, such that it works as expected on all generated HTML pages.
pydoctor 21.2.0
^^^^^^^^^^^^^^^
* Removed the ``--html-write-function-pages`` option. As a replacement, you can use the generated Intersphinx inventory (``objects.inv``) for deep-linking your documentation.
* Fixed project version in the generated Intersphinx inventory. This used to be hardcoded to 2.0 (we mistook it for a format version), now it is unversioned by default and a version can be specified using the new ``--project-version`` option.
* Fixed multiple bugs in Python name resolution, which could lead to for example missing "implemented by" links.
* Fixed bug where class docstring fields such as ``cvar`` and ``ivar`` are ignored when they override inherited attribute docstrings.
* Property decorators containing one or more dots (such as ``@abc.abstractproperty``) are now recognized by the custom properties support.
* Improvements to `attrs`__ support:
- Attributes are now marked as instance variables.
- Type comments are given precedence over types inferred from ``attr.ib``.
- Support positional arguments in ``attr.ib`` definitions. Please use keyword arguments instead though, both for clarity and to be compatible with future ``attrs`` releases.
* Improvements in the treatment of the ``__all__`` module variable:
- Assigning an empty sequence is interpreted as exporting nothing instead of being ignored.
- Better error reporting when the value assigned is either invalid or pydoctor cannot make sense of it.
* Added ``except`` field as a synonym of ``raises``, to be compatible with epydoc and to fix handling of the ``:Exceptions:`` consolidated field in reStructuredText.
* Exception types and external base classes are hyperlinked to their class documentation.
* Formatting of ``def func():`` and ``class Class:`` lines was made consistent with code blocks.
* Changes to the "Show/hide Private API" button:
- The button was moved to the right hand side of the navigation bar, to avoid overlapping the content on narrow displays.
- The show/hide state is now synced with a query argument in the location bar. This way, if you bookmark the page or send a link to someone else, the show/hide state will be preserved.
- A deep link to a private API item will now automatically enable "show private API" mode.
* Improvements to the ``build_apidocs`` Sphinx extension:
- API docs are now built before Sphinx docs, such that the rest of the documentation can link to it via Intersphinx.
- New configuration variable ``pydoctor_url_path`` that will automatically update the ``intersphinx_mapping`` variable so that it uses the latest API inventory.
- The extension can be configured to build API docs for more than one package.
* ``pydoctor.__version__`` is now a plain ``str`` instead of an ``incremental.Version`` object.
__ https://www.attrs.org/
pydoctor 20.12.1
^^^^^^^^^^^^^^^^
* Reject source directories outside the project base directory (if given), instead of crashing.
* Fixed bug where source directories containing symbolic links could appear to be outside of the project base directory, leading to a crash.
* Bring back source link on package pages.
pydoctor 20.12.0
^^^^^^^^^^^^^^^^
* Python 3.6 or higher is required.
* There is now a user manual that can be built with Sphinx or read online on `Read the Docs`__. This is a work in progress and the online version will be updated between releases.
* Added support for Python language features:
- Type annotations of function parameters and return value are used when the docstring does not document a type.
- Functions decorated with ``@property`` or any other decorator with a name ending in "property" are now formatted similar to variables.
- Coroutine functions (``async def``) are included in the output.
- Keyword-only and position-only parameters are included in the output.
* Output improvements:
- Type names in annotations are hyperlinked to the corresponding documentation.
- Styling changes to make the generated documentation easier to read and navigate.
- Private API is now hidden by default on the Module Index, Class Hierarchy and Index of Names pages.
- The pydoctor version is included in the "generated by" line in the footer.
* All parents of the HTML output directory are now created by pydoctor; previously it would create only the deepest directory.
* The ``--add-package`` and ``--add-module`` options have been deprecated; pass the source paths as positional arguments instead.
* New option ``-W``/``--warnings-as-errors`` to fail your build on documentation errors.
* Linking to the standard library documentation is more accurate now, but does require the use of an Intersphinx inventory (``--intersphinx=https://docs.python.org/3/objects.inv``).
* Caching of Intersphinx inventories is now enabled by default.
* Added a `Sphinx extension`__ for embedding pydoctor's output in a project's Sphinx documentation.
* Added an extra named ``rst`` for the dependencies needed to process reStructuredText (``pip install -U pydoctor[rst]``).
* Improved error reporting:
- More accurate source locations (file + line number) in error messages.
- Warnings were added for common mistakes when documenting parameters.
- Clearer error message when a link target is not found.
* Increased reliability:
- Fixed crash when analyzing ``from package import *``.
- Fixed crash when the line number for a docstring error is unknown.
- Better unit test coverage, more system tests, started adding type annotations to the code.
- Unit tests are also run on Windows.
__ https://pydoctor.readthedocs.io/
__ https://pydoctor.readthedocs.io/en/latest/usage.html#building-pydoctor-together-with-sphinx-html-build
pydoctor 20.7.2
^^^^^^^^^^^^^^^
* Fix handling of external links in reStructuredText under Python 3.
* Fix reporting of errors in reStructuredText under Python 3.
* Restore syntax highlighting of Python code blocks.
pydoctor 20.7.1
^^^^^^^^^^^^^^^
* Fix cross-reference links to builtin types in standard library.
* Fix and improve error message printed for unknown fields.
pydoctor 20.7.0
^^^^^^^^^^^^^^^
* Python 3 support.
* Type annotations on attributes are supported when running on Python 3.
* Type comments on attributes are supported when running on Python 3.8+.
* Type annotations on function definitions are not supported yet.
* Undocumented attributes are now included in the output.
* Attribute docstrings: a module, class or instance variable can be documented by a following it up with a docstring.
* Improved error reporting: more errors are reported, error messages include file name and line number.
* Dropped support for implicit relative imports.
* Explicit relative imports (using ``from``) no longer cause warnings.
* Dropped support for index terms in epytext (``X{}``). This was never supported in any meaningful capacity, but now the tag is gone.
This was the last major release to support Python 2.7 and 3.5.
%prep
%autosetup -n pydoctor-23.4.0
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-pydoctor -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Fri May 05 2023 Python_Bot - 23.4.0-1
- Package Spec generated