Install and [git] and uv
Clone:
$ git clone https://github.com/git-pull/gp-libs.git$ cd gp-libsInstall packages:
$ uv sync --all-extras --devMakefile commands prefixed with watch_ will watch files and rerun.
uv run py.test
Helpers: make test
make start(via pytest-watcher)make watch_test(requires installing entr(1))
Default preview server: http://localhost:8034
sphinx-autobuild will automatically build the docs, watch for file changes and launch a server.
From home directory: make start_docs
From inside docs/: make start
cd docs/ and make html to build. make serve to start http server.
Helpers:
make build_docs, make serve_docs
Rebuild docs on file change: make watch_docs (requires entr(1))
Rebuild docs and run server via one terminal: make dev_docs (requires above, and a
make(1) with -J support, e.g. GNU Make)
The project uses ruff to handle formatting, sorting imports and linting.
uv:
```console
$ uv run ruff
```
If you setup manually:
```console
$ ruff check .
```
```console
$ make ruff
```
```console
$ make watch_ruff
```
requires [`entr(1)`].
uv:
```console
$ uv run ruff check . --fix
```
If you setup manually:
```console
$ ruff check . --fix
```
ruff format is used for formatting.
uv:
```console
$ uv run ruff format .
```
If you setup manually:
```console
$ ruff format .
```
```console
$ make ruff_format
```
mypy is used for static type checking.
uv:
```console
$ uv run mypy .
```
If you setup manually:
```console
$ mypy .
```
```console
$ make mypy
```
```console
$ make watch_mypy
```
requires [`entr(1)`].
uv handles virtualenv creation, package requirements, versioning, building, and publishing. Therefore there is no setup.py or requirements files.
Update __version__ in src/gp_libs.py and pyproject.toml::
git commit -m 'build(gp_libs): Tag v0.1.1'
git tag v0.1.1
git push
git push --tags