Skip to content

Build Instructions

API by Adnen Kadri from the Noun Project

Note

In most cases you won't need to build this package locally.

Unless you're doing development work on the kglab library itself, simply install based on the instructions in "Getting Started".

Setup

To set up the build environment locally:

python3 -m pip install -U pip setuptools wheel
python3 -m pip install -r requirements-dev.txt

We use pre-commit hooks based on pre-commit and to configure that locally:

pre-commit install
git config --local core.hooksPath .git/hooks/

Type Checking

The pre-commit hooks use typing and mypy for type checking. To run these tests specifically:

mypy kglab/*.py

Code Checking

The pre-commit hooks use pylint for code checking. To run these tests specifically:

pylint kglab/*.py

Spelling Errors

The pre-commit hooks use codespell to check for spelling errors. To run these tests specifically:

codespell kglab/*.py *.md docs/*.md

Security Issues

The pre-commit hooks use bandit to check for security issues. To run these tests specifically:

bandit kglab/*.py

Test Coverage

This project uses unittest and coverage for unit test coverage. Source for unit tests is in the test.py module.

To run unit tests:

coverage run -m unittest discover

To generate a coverage report and (providing you have the access token) upload it to the codecov.io reporting site:

coverage report
bash <(curl -s https://codecov.io/bash) -t @.cc_token

Test coverage reports can be viewed at https://codecov.io/gh/DerwenAI/kglab

Online Documentation

To generate documentation pages, this project uses:

Source for the documentation is in the docs subdirectory.

To build the documentation:

./bin/nb_md.sh
./pkg_doc.py docs/ref.md
mkdocs build

To preview the generated microsite locally:

./bin/preview.py

Then browse to http://localhost:8000 to review the generated documentation.

To package the generated microsite for deployment on a Flask/WSGI server:

tar cvzf kgl.tgz site/

Package Release

First, verify that setup.py will run correctly for the package release process:

python3 -m pip install -e .
python3 ./test.py
python3 -m pip uninstall kglab

Then update the release on PyPi:

./bin/push_pypi.sh

You can use grayskull to generate a conda-forge recipe:

grayskull pypi kglab
mv kglab/meta.yaml ./

Last update: 2021-04-24