From cf115bb48a9ba625b9e93998ddf65c5cc18e25a8 Mon Sep 17 00:00:00 2001 From: Yanxin Lu Date: Fri, 27 Feb 2026 07:34:07 -0800 Subject: [PATCH] switched to uv --- scripts/email_processor/.gitignore | 2 +- scripts/email_processor/README.md | 11 ++++------- scripts/email_processor/email-processor.sh | 9 ++------- scripts/email_processor/pyproject.toml | 5 +++++ scripts/email_processor/venv/bin/python | 1 - scripts/email_processor/venv/bin/python3 | 1 - scripts/email_processor/venv/pyvenv.cfg | 5 ----- 7 files changed, 12 insertions(+), 22 deletions(-) create mode 100644 scripts/email_processor/pyproject.toml delete mode 120000 scripts/email_processor/venv/bin/python delete mode 120000 scripts/email_processor/venv/bin/python3 delete mode 100644 scripts/email_processor/venv/pyvenv.cfg diff --git a/scripts/email_processor/.gitignore b/scripts/email_processor/.gitignore index 2706474..00f2d38 100644 --- a/scripts/email_processor/.gitignore +++ b/scripts/email_processor/.gitignore @@ -1,3 +1,3 @@ __pycache__/ *.pyc -venv +.venv/ diff --git a/scripts/email_processor/README.md b/scripts/email_processor/README.md index 6c03937..2d80a23 100644 --- a/scripts/email_processor/README.md +++ b/scripts/email_processor/README.md @@ -4,11 +4,14 @@ Learning-based mailbox cleanup using Himalaya (IMAP) + Ollama (local LLM). Class ## Prerequisites +- **uv** — Python package manager, handles venv and dependencies automatically. - **Himalaya** — CLI email client, handles IMAP connection and auth. - **Ollama** — local LLM server. -- **Python 3.8+** ```bash +# Install uv (macOS) +brew install uv + # Install himalaya (macOS) brew install himalaya @@ -18,12 +21,6 @@ himalaya account list # should show your account after setup # Install and start Ollama, pull the model brew install ollama ollama pull kamekichi128/qwen3-4b-instruct-2507:latest - -# Set up Python venv and install dependencies -cd scripts/email_processor -python3 -m venv venv -source venv/bin/activate -pip install ollama ``` ## How It Works diff --git a/scripts/email_processor/email-processor.sh b/scripts/email_processor/email-processor.sh index 1b97ae5..af162d9 100755 --- a/scripts/email_processor/email-processor.sh +++ b/scripts/email_processor/email-processor.sh @@ -12,15 +12,10 @@ # ./email-processor.sh review accept # accept all suggestions # ./email-processor.sh stats # show history stats # -# Requires: Python 3.8+, himalaya, Ollama running with model. +# Requires: uv, himalaya, Ollama running with model. set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" -# Activate the virtualenv if it exists -if [ -d "$SCRIPT_DIR/venv" ]; then - source "$SCRIPT_DIR/venv/bin/activate" -fi - -exec python3 "$SCRIPT_DIR/main.py" "$@" +exec uv run --project "$SCRIPT_DIR" python "$SCRIPT_DIR/main.py" "$@" diff --git a/scripts/email_processor/pyproject.toml b/scripts/email_processor/pyproject.toml new file mode 100644 index 0000000..bebf7e3 --- /dev/null +++ b/scripts/email_processor/pyproject.toml @@ -0,0 +1,5 @@ +[project] +name = "email-processor" +version = "0.1.0" +requires-python = ">=3.10" +dependencies = ["ollama"] diff --git a/scripts/email_processor/venv/bin/python b/scripts/email_processor/venv/bin/python deleted file mode 120000 index b4d7bb3..0000000 --- a/scripts/email_processor/venv/bin/python +++ /dev/null @@ -1 +0,0 @@ -python3.13 \ No newline at end of file diff --git a/scripts/email_processor/venv/bin/python3 b/scripts/email_processor/venv/bin/python3 deleted file mode 120000 index b4d7bb3..0000000 --- a/scripts/email_processor/venv/bin/python3 +++ /dev/null @@ -1 +0,0 @@ -python3.13 \ No newline at end of file diff --git a/scripts/email_processor/venv/pyvenv.cfg b/scripts/email_processor/venv/pyvenv.cfg deleted file mode 100644 index edc7cdd..0000000 --- a/scripts/email_processor/venv/pyvenv.cfg +++ /dev/null @@ -1,5 +0,0 @@ -home = /opt/homebrew/opt/python@3.13/bin -include-system-site-packages = false -version = 3.13.0 -executable = /opt/homebrew/Cellar/python@3.13/3.13.0_1/Frameworks/Python.framework/Versions/3.13/bin/python3.13 -command = /opt/homebrew/opt/python@3.13/bin/python3.13 -m venv /Users/ylu/Documents/me/youlu-openclaw-workspace/scripts/email_processor/venv