Skip to main content

Automate quality-check of Python package with bundled utils

Project description

audit python3.8 pypi mit black

The pyaud framework is designed for writing modular audits for Python packages

Audits can be run to fail, such as when using CI, or include a fix
Fixes can be written for whole directories or individual files
Plugins can be written for manipulating files
Supports single script plugins



python3.8 (see pyenv)


pip install pyaud

Local clone

pip install .


pip install pipenv && pipenv install --dev


usage: pyaud [-h] [-c] [-d] [-f] [-s] [-v] [--rcfile RCFILE] MODULE

positional arguments:
  MODULE           choice of module: [modules] to list all

optional arguments:
  -h, --help       show this help message and exit
  -c, --clean      clean unversioned files prior to any process
  -d, --deploy     include test and docs deployment after audit
  -s, --suppress   continue without stopping for errors
  -v, --verbose    incrementally increase logging verbosity
  --rcfile RCFILE  select file to override config hierarchy


pyaud will search for a plugins package in the project root

This package can contain any number of Python modules
For writing plugins see docs

The following plugins are usable out of the box:

audit           -- Read from [audit] key in config
clean           -- Remove all unversioned package files recursively
coverage        -- Run package unit-tests with `pytest` and `coverage`
deploy          -- Deploy package documentation and test coverage
deploy-cov      -- Upload coverage data to `Codecov`
deploy-docs     -- Deploy package documentation to `gh-pages`
docs            -- Compile package documentation with `Sphinx`
files           -- Audit project data files
format          -- Audit code against `Black`
format-docs     -- Format docstrings with `docformatter`
format-str      -- Format f-strings with `flynt`
generate-rcfile -- Print rcfile to stdout
imports         -- Audit imports with `isort`
lint            -- Lint code with `pylint`
readme          -- Parse, test, and assert RST code-blocks
requirements    -- Audit requirements.txt with Pipfile.lock
tests           -- Run the package unit-tests with `pytest`
toc             -- Audit docs/<NAME>.rst toc-file
typecheck       -- Typecheck code with `mypy`
unused          -- Audit unused code with `vulture`
whitelist       -- Check file with `vulture`


Default environment variables:

PYAUD_COVERAGE_XML  = "coverage.xml"
PYAUD_REQUIREMENTS  = "requirements.txt"
PYAUD_GH_NAME       = ""
PYAUD_GH_EMAIL      = ""
PYAUD_GH_TOKEN      = ""

Environment variables should be placed in an .env file in the project root and override all config files


Configuration of settings can be made with the following toml syntax files (overriding in this order):


Example config:

exclude = ["*.egg*", ".mypy_cache", ".env", "instance"]

version = 1
disable_existing_loggers = true

exclude = ["", "", ""]

modules = [

level = "INFO"
handlers = ["default"]
propagate = false

format = "%(asctime)s %(levelname)s %(name)s %(message)s"

class = "logging.handlers.TimedRotatingFileHandler"
formatter = "standard"
when = "d"
backupCount = 60
filename = "~/.cache/pyaud/log/pyaud.log"

Prefix each key with tool.pyaud when using pyproject.toml

exclude = ["*.egg*", ".mypy_cache", ".env", "instance"]

Project details

Release history Release notifications | RSS feed

Download files

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

Source Distribution

pyaud-3.0.2.tar.gz (25.0 kB view hashes)

Uploaded Source

Built Distribution

pyaud-3.0.2-py3-none-any.whl (26.4 kB view hashes)

Uploaded Python 3

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