- Add search functionality. pdoc now has a search bar which allows users to quickly find relevant parts in the documentation. See https://pdoc.dev/docs/pdoc/search.html for details.
- Redesign module list (index.html.jinja2).
- Update Bootstrap to v5.0.0.
- Do not fail if
inspect.getdoc()
raises. - Fix compatibility with Jinja2 3.0.0.
- Jinja2 templates can now access system environment variables, for example to pass version information.
- Add support for
.. include::
directives to include external Markdown files. - Add word break points for long module and class names. (@jstriebel)
- Fix a crash when
inspect.signature
returns incomplete source code. - Fix a crash when inspecting unhashable functions.
- Fix a bug when dedenting multi-line decorators.
- Make it easier to change the logo on the module index page.
- Minor rendering improvements for enums and typing.NamedTuples.
- pdoc now emits a warning when directory names conflict with modules already loaded by pdoc.
- If a class is publicly reimported in the current module, pdoc now links to the reimported instance instead of the source location.
- Private function decorators (those starting with "_") are now hidden by default. (@zmoon)
- If pdoc is invoked with a name that is both an installed Python module and a local directory, notify the user that the installed module will be documented.
__doc__
is now not rendered as a variable, even if included in__all__
.- Submodules are now internally assigned a qualname, which fixes broken anchor links.
- Functions in the current scope can now be referenced without specifying
the full qualified name. For example, one can use
bar()
instead ofFoo.bar()
in the docstring ofFoo
. - Numpydoc: See Also sections are now parsed properly.
- reStructuredText: Add support for footnotes and fix minor bugs.
- Bugfix: Docstrings for data descriptors are now captured properly.
- Add an example for math formula rendering.
- Cosmetic improvements in default value rendering: object and function memory addresses are now stripped.
- Accessibility Improvements
- Respect
__all__
when collecting submodules. - Correct wrong links in module index (@fweisser)
- Emit more detailed error messages on import failure.
- Improvement: Add syntax highlighting in ">>>" code block examples.
- Bugfix: Module-level comments are not properly live-reloaded.
- Bugfix: Don't eat underscores in numpy/Google-style docstrings.
- Bugfix: Fix rendering of typing.NamedTuple.
- Add compatibility for Python 3.7
- Add dark mode theme (@Arkelis) pdoc's color scheme can now be customized with CSS variables. This may be a minor breaking change for users who have heavily customized their templates.
- Docs: Add an example how to integrate pdoc with mkdocs.
- Bugfix: pdoc now retains custom rendering configuration when it renders itself with live-reload.
- Make it easier to embed pdoc into other systems: See https://pdoc.dev/docs/pdoc.html#integrate-pdoc-into-other-systems for details. This change may be a minor breaking change for users using custom templates.
- Generic class bases are now displayed fully. This may be a minor breaking change for users who customized class base output.
- Add header anchors to documentation items.
- Define all Jinja2 macros as
{% defaultmacro %}
, which makes them easier to override. - Parsing is not more robust if source code is unavailable.
- Bugfix: Functions decorated with
@classmethod
now also inherit their docstring. - Bugfix: The "View Source" marker is now properly displayed in Firefox.
- Improve how inherited members are detected.
Doc.declared_at
is superseded byDoc.taken_from
, which is a relatively minor but breaking change in the Python API. - Bugfix: Don't link private members in the same module.
- Improve error message when module live-reload fails.
- Smaller favicon, improved CSS minification
- Improve error message if module is not found.
- Fix usage of
--docformat
.
- Add support for alternative docstring flavors.
Flavors can be enabled globally using
--docformat
or on a per-module basis using__docformat__ = "..."
. - Add support for Google docstrings.
- Add basic support for Numpydoc and reStructuredText docstrings. The most common rST elements are supported, but we do not intend to support the full complexity of the spec.
- Links within the current module now don't require the full qualified path.
- Live-reloading is now more robust.
- Improvements to the default theme.
- Make it possible to selectively include private or exclude public members in templates.
This comes with a breaking change:pdoc.doc.Namespace.members
now includes private members. - Enhancement: Keep page position when live-reloading.
- Enhancement: Don't show common server connection errors in the console.
- pdoc now respects
__all__
when listing submodules.
- Test CI processes by shipping a quick patch release.
- Bugfix: Don't crash on lambdas as class attributes.
- Bugfix: Don't crash on comments between decorators.
- Bugfix: Don't crash pdoc if a user's custom getattr implementation is crashing.
- Bugfix: use
inspect.unwrap
instead of unwrapping manually.
This release features a major rewrite of pdoc, dropping compatibility with Python 2 and focusing on modern Python 3 only.
- Added: First-class support for type annotations
- Added: Simpler directory structure
- Added: New responsive documentation theme
- Added: New website and documentation
- Added: 100% test coverage and CI
- Use Jinja2 instead of mako.
- Removed: Support for
__pdoc__
, which is rarely required when following modern Python standards. This feature may return depending on user feedback. - Removed: Markdown output. The project now focuses on HTML documentation. PRs to re-add markdown support will be gladly accepted.
pdoc is now maintained by @mhils and the rest of the mitmproxy team.
- Bugfix release.
- Source code is extracted from wrapped if it exists, and then falls back to inspect.getsourcelines. This reverses the behavior implemented in #6.
- Fix Python 2.6 compatibility by requiring Markdown < 2.5 (#19). Markdown 2.5 dropped support for Python 2.6.
- Get rid of tabs that sneaked in from #17.
- Fix pep8 violations.
- Major HTML face lift. Kudos to @knadh! (PR: mitmproxy#17)
- Fixed bug in HTTP server that was referencing a non-existent variable.
- Fixed #10 (the --template-dir flag now works).
- Fixes #7 by ignoring module loaders that lack a 'path' attribute.
- Fixes #5 by trying to find source for decorated functions. (@austin1howard)
- Fix issue #2 by making pdoc a package instead of a module. The templates are now included as package_data, which seems to be more portable (its final location is more predictable).
- pdoc now interprets
__pdoc__[key] = None
as an explicit way to hidekey
from the public interface of its module.
- Removed new from the public interface. I think init is sufficient.
- Fixed bug #1.
- Fixed a bug with an improper use of getattr.
- Made pdoc aware of slots. (Every identifier in slots is automatically interpreted as an instance variable.)
- Fixed bug where getargspec wasn't being used in Python 2.x.
- Avoid a FQDN lookup.
- A few doco touchups.
- Fixed a bug in Py3K. Use getfullargspec when available.
- Documentation touch ups.
- Removed unused command line flags.
First public release.