Skip to main content

A helpful extension for nbdev geared towards better documentation

Project description

Verbose nbdev (nbverbose)

An add-on to nbdev that allows for explicit parameter documentation

Install

pip install nbverbose

How to use

This library acts as an in-place replacement for nbdev's show_doc functionality, and extends it to allow for documentation of the inputs. It is also built on top of the docments functionality inside of fastcore: docs

Everything else with nbdev runs fine, and you should use normal nbdev conventions, however instead of doing from nbdev.showdoc import *, you should do from nbverbose.showdoc import *.

An example of what will happen can be found below

First we import the library:

from nbverbose.showdoc import *
The history saving thread hit an unexpected error (DatabaseError('database disk image is malformed')).History will not be written to the database.

Next we'll write a very basic function, that has a new way to document the inputs.

Rather than needing to have a very long doc string, your code can follow this declaration format. Spacing etc is not needed, just each parameter must be on a new line:

def addition(
    a:int, # The first number to be added
    b:(int, float)=2, # The second number to be added
):
    "Adds two numbers together"
    return a+b

As you can see, the documentation format is name followed by the type (as normal), but in a single-line comment afterwards you put a quick affiliated documentation string for it.

When you call the show_doc or doc functions, wrapping around addition, it will look something like so:

addition[source]

addition(a:int, b:(<class 'int'>, <class 'float'>)=2)

Adds two numbers together

Parameters:

  • a : <class 'int'>

    The first number to be added

  • b : (<class 'int'>, <class 'float'>), optional

    The second number to be added

We can see that our types are properly formatted. This even works in cases such as Union or List:

from typing import Union

def addition(
    a:int, # The first number to be added
    b:Union[int, float]=2., # The second number to be added
):
    "Adds two numbers together"
    return a+b

addition[source]

addition(a:int, b:Union[int, float]=2.0)

Adds two numbers together

Parameters:

  • a : <class 'int'>

    The first number to be added

  • b : typing.Union[int, float], optional

    The second number to be added

Any functions that normally don't follow this format can still work as well:

def addition(
    a:int,
    b:Union[int, float],
):
    "Adds two numbers together"
    return a+b

addition[source]

addition(a:int, b:Union[int, float])

Adds two numbers together

Parameters:

  • a : <class 'int'>

  • b : typing.Union[int, float]

def addition(a:int,b:Union[int, float]):
    "Adds two numbers together"
    return a+b

addition[source]

addition(a:int, b:Union[int, float])

Adds two numbers together

Parameters:

  • a : <class 'int'>

  • b : typing.Union[int, float]

{% include note.html content='The [source] button on these examples will not point to something existing. This is due to the fact that addition is not part of our library. This will work fine for anything done with your nbdev-built library.' %}

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

nbverbose-0.0.8a0.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

nbverbose-0.0.8a0-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file nbverbose-0.0.8a0.tar.gz.

File metadata

  • Download URL: nbverbose-0.0.8a0.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.4.2 requests/2.25.1 setuptools/57.0.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.0

File hashes

Hashes for nbverbose-0.0.8a0.tar.gz
Algorithm Hash digest
SHA256 f7f040393d5551dcb1cb82e76c7514c613e4f597b4cf90638403b5e971be4d55
MD5 115b650c33a843d81fad96cb10c9f84d
BLAKE2b-256 0c586304b49e12d829778ba452cdaf447d3e1edbcfd921b350d78796d188f17f

See more details on using hashes here.

File details

Details for the file nbverbose-0.0.8a0-py3-none-any.whl.

File metadata

  • Download URL: nbverbose-0.0.8a0-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.4.2 requests/2.25.1 setuptools/57.0.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.0

File hashes

Hashes for nbverbose-0.0.8a0-py3-none-any.whl
Algorithm Hash digest
SHA256 7b7d9814e8d09a2af54f75f58d410f4998f4fcb142649baaab7c94b87ccfcd74
MD5 162c6c9e3e03b5fa5a3439bc817eb606
BLAKE2b-256 42501dac444ac9fe09940b92a5eed066b7ed921fcc302927b91aaeace7dd6d76

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