Skip to content

Latest commit

 

History

History
208 lines (157 loc) · 4.82 KB

README.md

File metadata and controls

208 lines (157 loc) · 4.82 KB

Lunch

@zookinheimer's masterpiece. Gonna fill in the blanks and/or add tooling.

@pythoninthegrass

Setup

Quickstart

# clone repo
git clone https://github.com/pythoninthegrass/lunch.git

# change directory
cd lunch/

# install dependencies
python -m pip install -r requirements.txt

# run program
python main.py

# quit program
ctrl + c

Development

Python virtual environment

# create virtual environment
python -m venv .venv

# activate virtual environment
source .venv/bin/activate

# install dependencies
python -m pip install -r requirements.txt 

Additional tooling

Additional tooling includes but is not limited to:

asdf

  • Install asdf
  • Usage
    # add python plugin
    asdf plugin-add python
    
    # install stable python
    asdf install python <latest|3.11.11>
    
    # set stable to system python
    asdf global python latest
    
    # add poetry asdf plugin
    asdf plugin-add poetry https://github.com/asdf-community/asdf-poetry.git
    
    # install latest version via asdf
    asdf install poetry <latest|2.0.1>
    
    # set latest version as default
    asdf global poetry latest

poetry

  • Install poetry if not using asdf
  • Usage
    # use venv in repo
    poetry config virtualenvs.in-project true
    
    # install dependencies
    poetry install
    
    # add new dependency
    poetry add <package>
    
    # remove dependency
    poetry remove <package>
    
    # activate virtual environment
    poetry shell
    
    # run program
    python main.py
    
    # exit virtual environment
    exit

vscode

  • 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

ruff

  • Installed via poetry or pip
  • Add VSCode plugin for ruff
    • Optional: disable pylance in favor of ruff in repo settings
      "python.analysis.ignore": [
        "*"
      ],
  • 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

pre-commit

# install pre-commit dev dependency
poetry install

# install pre-commit hooks
pre-commit install

# update
pre-commit autoupdate

editorconfig

Handles formatting of files. Install the editorconfig plugin for your editor of choice.

dependabot

  • Dependabot is a GitHub tool that automatically creates pull requests to keep dependencies up to date.

TODO

  • Build
    • justfile -> taskfile
  • UI/UX
    • Fix padding between buttons
    • Move "logo" to top left of container
  • Package
    • Web
      • Fly.io
      • Self-host
    • Desktop Tauri
      • macOS
      • Linux
      • Windows
    • Mobile (TBD)
      • iOS
      • Android
  • Test
    • Unit tests
    • Integration tests
    • E2E tests
  • CI/CD
    • Docker
    • GitHub Actions
    • ArgoCD / Flux
  • Extend
    • sqlite -> postgres Litestream / Turso
    • Fancy category
    • Images
    • Menus
    • API calls to Yelp, Google, etc.
    • Tinder swipe right/left mechanic hehehe
  • Document

Further Reading