https://github.com/mrseanryan/cornsnake
Common Python utilities for working with files, git, ZIP, lists, processes, dates and times
https://github.com/mrseanryan/cornsnake
python python-library python-utilities
Last synced: 18 days ago
JSON representation
Common Python utilities for working with files, git, ZIP, lists, processes, dates and times
- Host: GitHub
- URL: https://github.com/mrseanryan/cornsnake
- Owner: mrseanryan
- License: mit
- Created: 2023-12-05T13:54:47.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2026-02-14T21:50:56.000Z (about 1 month ago)
- Last Synced: 2026-02-15T05:25:00.910Z (about 1 month ago)
- Topics: python, python-library, python-utilities
- Language: Python
- Homepage: http://docs.mrseanryan.cornsnake.s3-website-eu-west-1.amazonaws.com/
- Size: 261 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.contributing.md
- License: LICENSE
Awesome Lists containing this project
README
# cornsnake - contributing
## Dev dependencies
- pyenv - if on Windows use [pyenv-win](https://github.com/pyenv-win/pyenv-win) [needs an Adminstrator Powershell terminal]
## Install
First install [uv](https://github.com/astral-sh/uv).
Switch to Python 3.11.6:
```
uv python install 3.11.6
uv venv --python 3.11.6
uv sync --all-extras
```
If you are contributing to this project, then you need to install these extra dev dependencies (`uv sync --all-extras`):
```
python -m pip install build~=1.0.3 bumpver~=2023.1129 parameterized~=0.9.0 pdoc~=14.4.0 pip-tools~=7.3.0 twine~=5.0.0 ruff~=0.3.4 mypy~=1.14.0 pkginfo~=1.12.1.2
```
note: the '~=' means 'pick most recent compatible version'.
- bumpver for release versioning
- parameterized for unit tests
- build and twine are for publishing to pypi
- pip-tools is for compiling requirements.txt
- ruff is for linting and formatting
## Linting
```
./lint.sh
```
## Unit Tests
```
./test.sh
```
OR:
```
./test.unit.one.sh
```
example:
```
./test.unit.one.sh tests.unit.test_util_list
```
## Format
```
./format.sh
```
## Publishing
0. Set a pypi token on your machine.
- see https://pypi.org/manage/account/token/
1. [OPTIONAL][if dependencies have changed] update dependencies (requirements.txt)
```
pip-compile pyproject.toml --strip-extras
```
2. deploy
```
./build-and-deploy.sh
```
## e2e Tests (after publishing)
./test.e2e.sh
## Documentation
Generate docs:
```
./doc.sh
```
Currently docs are stored on S3 as a bucket exposed as static website.
To deploy docs, you need to upload the new files to S3.
Bucket: docs.mrseanryan.cornsnake [eu-west-1]
Docs website: http://docs.mrseanryan.cornsnake.s3-website-eu-west-1.amazonaws.com/
## References
- https://realpython.com/pypi-publish-python-package/