Tests and Documentation Done by Example.
Project description
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.
Key Features:
- Simple and Obvious API: Simply add
@examples.example(*args, **kwargs)
decorators for each example you want to add to a function. - Auto Documenting: Examples, by default, get added to your functions docstring viewable both in interactive interpreters and when using examples or pdocs.
- Signature Validating: All examples can easily be checked to ensure they match the function signature (and type annotations!) with a single call (
examples.verify_all_signatures()
). - Act as Tests: Examples act as additional test cases, that can easily be verified using a single test case in your favorite test runner: (
examples.test_all_examples()
).
What's Missing:
- Class Support: Currently examples can only be attached to individual functions. Class and method support is planned for a future release.
Quick Start
The following guides should get you up and running with a documentation website in no time.
-
Install:
pip3 install examples
-
Add Examples:
from examples import example @example(1, 1, _example_returns=2) def add(number_1: int, number_2: int) -> int: return number_1 + number_2
-
Verify and test examples
import examples examples.verify_and_test_all_examples()
-
Introspect examples
import examples examples.get(add)[0].use() == 2
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
Built Distribution
File details
Details for the file examples-0.1.1.tar.gz
.
File metadata
- Download URL: examples-0.1.1.tar.gz
- Upload date:
- Size: 7.0 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 333cb91d3d0af8bc739cff88e112f92a59b8517d237ea35db4eaf2228ad24368 |
|
MD5 | bee9bfac62891cf33bc1b1c505ad7435 |
|
BLAKE2b-256 | 73723dd15e9b6b9ebc1dbbd42dde758c0e3b2765b82ccbf412cb15f073c6bcde |
File details
Details for the file examples-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: examples-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.5 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29c91644475d19befb5eedcc0d8ca2dbb98955e6beace8f0613fa5e8d6ae42fd |
|
MD5 | 9852cb77ad4974abd44796afaf627aa5 |
|
BLAKE2b-256 | 2a04ecfa50c18023fe64063135fd0a628ca385ad712c7af9f6f92dd2c0bdaf25 |