@zookinheimer's masterpiece. Gonna fill in the blanks and/or add tooling.
- Install
# clone repo
git clone https://github.com/pythoninthegrass/lunch.git
# change directory
cd lunch/# sync dependencies from pyproject.toml and uv.lock
uv sync --all-extrasuv run app/main.pyUsing Task runner with predefined configurations:
# Desktop app (development mode)
task flet:run
# Web browser mode
task flet:web
# iOS simulator
task flet:iosctrl + cAdditional tooling includes but is not limited to:
-
Install mise
-
Usage
# install all dependencies in .tool-versions mise install # install specific deps mise use [email protected]
-
Install uv if not using
mise -
Usage
# sync dependencies (creates .venv automatically) uv sync # install with dev extras uv sync --all-extras # add new dependency uv add <package> # add optional dependency to dev group uv add --optional dev <package> # run program uv run app/main.py # export requirements.txt from pyproject.toml uv pip freeze > requirements.txt
- Install VSCode
- Setup VSCode settings
- Handles debug settings for generic python programs as well as others (e.g., django, flask, etc.)
- Dev Containers
- Command palette (⇧⌘P) > Dev Containers: Reopen in Container
- F5 for debug
- May need to select interpreter (e.g.,
/opt/venv/bin/python) first
- May need to select interpreter (e.g.,
- Installed via
uvorpip - Add VSCode plugin for ruff
- Optional: disable pylance in favor of ruff in repo settings
"python.analysis.ignore": [ "*" ],
- Optional: disable pylance in favor of ruff in repo settings
- Usage
# run linter ruff check <.|main.py> # `--fix` arg to use a one-liner # run linter and fix issues ruff fix . # run tests ruff # run tests with coverage ruff --coverage # run tests with coverage and open in browser ruff --coverage --open
# install pre-commit dev dependency
uv sync --all-extras
# install pre-commit hooks
pre-commit install
# update
pre-commit autoupdate
# skip hooks
git commit -m "docs: udpate readme" --no-verifyHandles formatting of files. Install the editorconfig plugin for your editor of choice.
- Renovate is a GitHub tool that automatically creates pull requests to keep dependencies up to date.
See TODO.md.