Skip to main content

Vélin

French for Vellum

Vellum is prepared animal skin or "membrane", typically used as a material for writing on. Parchment is another term for this material, and if vellum is distinguished from this, it is by vellum being made from calfskin, as opposed to that from other animals,[1] or otherwise being of higher quality

install

You may need to get a modified version of numpydoc depending on the stage of development.

$ git clone https://github.com/Carreau/velin
$ cd velin
$ pip install flit
$ flit install --symlink

Autoreformat docstrings

This assume your docstrings are in RST/Numpydoc format, and will try to fix common formatting mistakes and typo.

velin [--write] <path-to-file.py> or <path-to-dir>

Without --write vélin will print the suggested diff, with --write it will attempt to update the files.

options

(likely not up to date, make sure to run velin --help to check for new,changed or removed options)

$ velin --help
usage: velin [-h] [--context context] [--unsafe] [--check] [--no-diff] [--black] [--with-placeholder] [--no-color] [--compact] [--no-fail]
             [--space-in-see-also-title] [--space-in-notes-title] [--no-fixers] [--write]
             path [path ...]

reformat the docstrigns of some file

positional arguments:
  path                  Files or folder to reformat

optional arguments:
  -h, --help            show this help message and exit
  --context context     Number of context lines in the diff
  --unsafe              Lift some safety feature (don't fail if updating the docstring is not indempotent
  --check               Print the list of files/lines number and exit with a non-0 exit status, Use it for CI.
  --no-diff             Do not print the diff
  --black               Do not run black on examples
  --with-placeholder    insert missing sections/parameters placehoders
  --no-color
  --compact             Please ignore
  --no-fail
  --space-in-see-also-title
  --space-in-notes-title
  --no-fixers           try to only reformat and does not run fixers heuristics
  --write               Try to write the updated docstring to the files

--no-fixers

Beyond reformatting, vélin will by default try to run a number of heuristics to update your docstrings:

  • Remove non existing but documented parameters,
  • Rename parameter with typos,
  • insert space before colon when necessary.

Unfortunately sometime those heuristics can remove actual content, for example in the malformed DocString below, the Return section would be removed

def sum(a, b):
    """
    Parameters
    ----------
    a : int
        a number
    b : int
        another number
    Returns
    -------
    s :
        sum of a and b

    See Also
    --------
    substract
    """
    return a + b

As there is a missing blank line before return Numpydoc will parse this a 5 parameters, a, b, Returns, ------- and s. As only a and b are in the signature, it will remove the other.

While in this case it will try not to do that because we detect that ------ is likely an underline, there are other case where it's unclear what to do.

You can thus disable those fixers by passing the option --no-fixers

setup.cfg

Ignore files with ignore_patterns, filename or filename:qualified_name. You can (try to), put patterns in there, but it's not guarantied to work yet.

[velin]
ignore_patterns =
   path/to/a.py:Class.func
   path/to/b.py:Class.func

kind of things it fixes

  • Spacing around colon,
  • If one parameter has typo wrt function signature: fix it.
  • Insert all missing parameters with placeholders.

Release files for velin 0.0.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for velin 0.0.11
File Size Uploaded
velin-0.0.11.tar.gz 18.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for velin 0.0.11
File Interpreter ABI Platform
velin-0.0.11-py3-none-any.whl Python 3 none any Details

Total release size: 36.6 kB

Release files / velin-0.0.11.tar.gz

Download URL velin-0.0.11.tar.gz
Size 18.0 kB
Tags Source
SHA-256 checksum
How to use checksums
b0482ba04b9b660e70aa1813c4147319641d663c49749109a74b3e100c64bc8e
BLAKE2b-256 checksum
How to use checksums
4b4d2932fa9f33801ae5b28c48c7788572b26076f9913450bf4b293e4519f139
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.24.0

Release files / velin-0.0.11-py3-none-any.whl

Download URL velin-0.0.11-py3-none-any.whl
Size 18.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d48f1915e31ee18f63c3f053460157e8420ed2f45ff40234a3f36770caf577c6
BLAKE2b-256 checksum
How to use checksums
0ab9559ac2ca3849c4df251053b1e621a8c6c6fb5c786d5b208e81d86ad6f8ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.24.0

Release history Release notifications | RSS feed

This release

0.0.11 This release

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page