Skip to content

Decide what's for lunch and/or dinner. Programmatically. Probably.

License

Notifications You must be signed in to change notification settings

pythoninthegrass/lunch

This branch is 29 commits ahead of zookinheimer/Lunch:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3dd3a47 · Jan 23, 2025

History

82 Commits
Jan 23, 2025
Aug 18, 2023
Jan 23, 2025
Aug 18, 2023
Jan 23, 2025
Aug 14, 2023
Jan 23, 2025
Jan 23, 2025
Jan 23, 2025
Jan 23, 2025
Jan 23, 2025
Jan 23, 2025
Mar 13, 2023
Aug 14, 2023
Aug 14, 2023
Jan 23, 2025
Jan 23, 2025
Jan 23, 2025
Aug 14, 2023
Jan 23, 2025

Repository files navigation

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

About

Decide what's for lunch and/or dinner. Programmatically. Probably.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 62.2%
  • Just 17.6%
  • Makefile 8.8%
  • Dockerfile 7.5%
  • CSS 3.9%