Example library for scientific software.
Project description
app-lib-py
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.
1. Create a template for yourself
2. Change the name (search on app-lib-py or app_lib_py)
- in the yml files in pydoctor line 24
- docker yml line 26
- pypi yml line 43
2. Setup development environments
See dev environments
3. Setup precommit hooks
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
4. Change the tokens, get all workflows in github actions working
pydoctor --make-html --html-output=./docs/api lib/src/app_lib_py --theme readthedocs
5. Test driven development, design the functionality
6. Implement
7. Distribute and deploy
7a. Pypi
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.
7b. Streamlit
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
7c. Docker
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
Built Distribution
File details
Details for the file app_lib_py-0.0.14.tar.gz
.
File metadata
- Download URL: app_lib_py-0.0.14.tar.gz
- Upload date:
- Size: 33.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4062176ccadf960d99f418ac30ae4f66b5dbfd2d9d6450a801bb8f93fd807f1 |
|
MD5 | 28f86c586311bfe900e4e14e5a0f5349 |
|
BLAKE2b-256 | 0c7e2a3052c8da6b9badfcd700d0e6739a392fe37d07e7be300581241ed5ce49 |
File details
Details for the file app_lib_py-0.0.14-py3-none-any.whl
.
File metadata
- Download URL: app_lib_py-0.0.14-py3-none-any.whl
- Upload date:
- Size: 15.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a44a13b0a4f0dbb7c26a1214958a41514be38df0f1b7140c43e670ac66abc16b |
|
MD5 | cdeaea5a981fedcd555e241eb27f6a46 |
|
BLAKE2b-256 | b2025c5e06428425282ae77aa93f51ab273d466bea5fc3ea3536149a53bb5bc0 |