Skip to main content

doc-zero

Doc-zero streamlines the process of writing documentation for your project. It is an opinionated and explicitly non-configurable tool that extracts information from your Python codebase and generates nice documentation with minimal effort.

The main influence is the elm language tooling: no config, nice defaults and it creates a very decent documentation out of the box. Rust has a similar experience with RustDoc. In comparison, both Sphinx and MkDocs are very powerful but somewhat clunky to use and configure.

How does it work?

doc-zero introspect your codebase and creates a Sphinx project under the hood. In practice, if you have a relatively modern Python project (i.e., it assumes the existence of pyproject.toml) just type

$ doc-zero build # or the doc0 alias

in the project root and it will create and build the documentation under <project-root>/docs. In doc-zero, all your documentation resides either in the README.md file in your repository or inside the source code.

You can also type

$ doc-zero serve

and

doc-zero test

to run either the live server or to test the doctests inside the documentation.

Adding the documentation to your project

Doc-zero assumes your project is already documented using docstrings and that you have a README.md file in the project root. It will use those assets to generate the documentation and the necessary configurations to make it buildable with Sphinx and ready to be hosted to readthedocs.io.

The first step is to install doc-zero as a development dependency in your project. You can do this by running

$ pip install doc-zero

or the equivalent command for the package manager of choice.

Then, the following command generates the documentation:

$ doc-zero build

doc-zero always creates a module documentation for your toplevel module. It will also scan all sub-modules and generate a documentation page if they satisfy the following conditions:

  • The module is not private (i.e., it does not start with an underscore).
  • The module has a docstring.
  • The module defines a __all__ variable that lists its public API.

doc-zero only includes the public API in the generated documentation.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

doc_zero-0.1.2.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

doc_zero-0.1.2-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file doc_zero-0.1.2.tar.gz.

File metadata

  • Download URL: doc_zero-0.1.2.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for doc_zero-0.1.2.tar.gz
Algorithm Hash digest
SHA256 15a8f62f1e8419c131aa56e6f31d853552ca71b62ad683674b32d993940e830c
MD5 25ec2d22eb988a56b65eaf245372107b
BLAKE2b-256 0ab4b9cc4286a5bd34c8a8df2d7d23266fa70d62e8a691ee3ce6c764f373dec8

See more details on using hashes here.

File details

Details for the file doc_zero-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: doc_zero-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for doc_zero-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 72c05be9f0cc09650ce5b2423e7033c3e98f2d0cbec33aab11c8f12ad98ed953
MD5 4856996f0f296cba7e7a6c1579578232
BLAKE2b-256 943a343029fd52775fa8aeb5796e79995dd54a39aca396ccbb915d48b82d64ee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page