Skip to main content

Tests and Documentation Done by Example.

Project description

eXamples - Python Tests and Documentation Done by Example.


PyPI version Build Status codecov Join the chat at https://gitter.im/timothycrosley/examples License Downloads


Read Latest Documentation - Browse GitHub Code Repository


eXamples (AKA: xamples for SEO purposes) is a Python3 library enabling interactable, self-documentating, and self-verifying examples to be attached to Python functions using decorators.

Example Usage Gif

Key Features:

  • Simple and Obvious API: Simply add @examples.example(*args, **kwargs) decorators for each example you want to add to a function.
  • Statically Generated: portray websites are easy to host on GitHub pages and other similar services as they are outputted as standard static HTML websites.
  • Markdown Aware: portray will automatically include your projects .md files and render them into HTML. It will also find and render Markdown within __doc__ strings.
  • Fully Configurable: While portray doesn't have to be configured, you still can fully configure it within the standard pyproject.toml file.
  • Easily Programmable: portray exposes a clean and simple Python API.
  • Searchable: Out of the box portray makes all of your documentation, even autogenerated code references, free-text searchable.
  • Themeable: portray is compatible with all existing MkDocs Themes.

Under the hood, portray combines the Markdown documentation rendering capabilities provided by MkDocs with the automatic reference documentation generated by pdocs.

Quick Start

The following guides should get you up and running with a documentation website in no time.

  1. Installation - TL;DR: Run pip3 install portray within your projects virtual environment.
  2. Command Line Usage - TL;DR: Run portray in_browser to test and portray on_github_pages to deploy.
  3. API Usage - TL;DR: Everything available via the CLI is also easily available programmatically from within Python.
  4. Configuration - TL;DR: Put all configuration within a [tool.portray] section of your pyproject.toml file.

Why Create Examples?

I've always wanted a way to attach examples to functions in a way that would be re-useable for documentation, testing, and API proposes. Just like moving Python parameter types from comments into prorammatically specified and easily introspectable entities has made them more braodly useful, I hope examples can do the same for example parameters.

I hope you too find eXamples useful!

~Timothy Crosley

Project details


Download files

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

Source Distribution

examples-0.1.0.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

examples-0.1.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file examples-0.1.0.tar.gz.

File metadata

  • Download URL: examples-0.1.0.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.3 Linux/5.0.0-25-generic

File hashes

Hashes for examples-0.1.0.tar.gz
Algorithm Hash digest
SHA256 bba7ee36f9e798c89b32aecedc66dca012bd5fe04c6be8e4cb6570ed44c8f47e
MD5 e430043b9ac0b5f9169aff4f20662b9f
BLAKE2b-256 7f960fbf84c641fb30b90a2bd85f07b61bc44c842621140c8900c22cedd5e1d4

See more details on using hashes here.

File details

Details for the file examples-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: examples-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.3 Linux/5.0.0-25-generic

File hashes

Hashes for examples-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 17d69fe4f70af7ddcc18b47d97a0587339074b6cd565bb2f834e428c0262290e
MD5 82d69a7a13b88fd0655abd0443db5fbb
BLAKE2b-256 e237c36f7e528bb6609142256cbd297809984f3e90d20210469fa1c9f3150a86

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page