This template is a suggestion of good practice for a scientific python library that includes continuous integration and conntinuous development and continuous documentation.
The application is demonstrated though streamlist which is deployed with continuous deployment, and also made a available via pypi as a python library with pip install
The single github repo contains 2 seperate software artefacts, a python library that can be installed and used by others, and a streamlit web application that demonstreates the library and provides a simple usage. Additionally there is a docker file which allows the upload of a docker image to dockerhub for a middle use of locally hosted web application.
To use this library yourself, use the "Template" button as described below.
- in the yml files in pydoctor line 24
- docker yml line 26
- pypi yml line 43
See dev environments
https://pre-commit.com/
Run it to check
pre-commit run --all-files
ruff --target-version=py311 --line-length 88 . --fix
black ./ --check --line-length 88 --diff
pydoctor --make-html --html-output=./docs/api lib/src/app_lib_py --theme readthedocs
Tokens are needed from pypi and from github. Follow these instructions: pypi gha
To release to pypi you need to either:
- Create a release in github, the tag will be the version number of the library
- Or if it is only a minor incremebt, you can run the workflow in Actions Create a new patch release. This will increment the minor version and release.
Streamlit will be automatically deployed when the main branch is updated after the link with streamlit is made.
- Create an account with streamlit io
- Go to the deploy
- Choose your repo: RachelAlcraft/app-lib-py
- Choose Branch: Main
- Choose entry file: app/home.py
- Amend the domain to your liking app-lib-py
- Press deploy