93 lines
5.0 KiB
Plaintext
93 lines
5.0 KiB
Plaintext
# ── MARK LIV — Python dependencies ────────────────────────────────────────────
|
|
# pip skips any line whose sys_platform marker does not match your OS, so this
|
|
# one file serves Windows, macOS and Linux. `python setup.py` runs it for you.
|
|
|
|
# Version bounds: the lower bound is what the app is developed against, the
|
|
# upper bound stops the next MAJOR release of a dependency from breaking every
|
|
# fresh clone on the day it ships. Minor and patch updates flow in freely.
|
|
|
|
# ── Core: UI, audio, Gemini Live ──────────────────────────────────────────────
|
|
# PyQt6 and numpy also carry the holographic avatar: the head is rendered in
|
|
# software with QPainter and posed with numpy, so the face costs no extra
|
|
# package, no OpenGL and no GPU. Nothing below was added for it.
|
|
PyQt6>=6.6,<7
|
|
sounddevice>=0.4,<1
|
|
numpy>=1.24,<3
|
|
google-genai>=2.8.0,<3
|
|
|
|
# ── Web search & browser control ──────────────────────────────────────────────
|
|
requests>=2.31,<3
|
|
beautifulsoup4>=4.12,<5
|
|
playwright>=1.40,<2
|
|
|
|
# ── Automation / input control ────────────────────────────────────────────────
|
|
pyautogui
|
|
pyperclip
|
|
pygetwindow
|
|
|
|
# ── Vision & media ────────────────────────────────────────────────────────────
|
|
pillow>=10,<13
|
|
opencv-python>=4.8,<5
|
|
mss>=9,<11
|
|
|
|
# ── System, files & documents ─────────────────────────────────────────────────
|
|
psutil>=5.9,<8
|
|
send2trash
|
|
youtube-transcript-api
|
|
python-pptx
|
|
openpyxl
|
|
|
|
# ── Remote dashboard (control from your phone) ────────────────────────────────
|
|
fastapi>=0.110,<1
|
|
uvicorn[standard]>=0.27,<1
|
|
cryptography>=42,<50
|
|
python-multipart>=0.0.9,<1
|
|
qrcode[pil]>=7,<9
|
|
|
|
# ── Plugin extras: Gmail / Google Calendar (OAuth) ────────────────────────────
|
|
google-api-python-client
|
|
google-auth-oauthlib
|
|
|
|
# ── Plugin extras: Tuya / Smart Life smart light (home_assistant) ─────────────
|
|
tinytuya
|
|
|
|
# ── Windows-only (pip skips these automatically on macOS / Linux) ─────────────
|
|
comtypes; sys_platform == "win32"
|
|
pycaw; sys_platform == "win32"
|
|
win10toast; sys_platform == "win32"
|
|
pywinauto; sys_platform == "win32"
|
|
pywin32; sys_platform == "win32"
|
|
wmi; sys_platform == "win32"
|
|
|
|
# ── Documents, media & hardware readouts ──────────────────────────────────────
|
|
# Every one of these is imported inside a try/except at the point of use, so a
|
|
# missing package disables exactly one feature and never stops the app. They are
|
|
# declared because a feature that silently does nothing is worse than a slightly
|
|
# longer install.
|
|
ddgs>=9,<10 # web_search — the maintained successor to
|
|
# duckduckgo-search, which is tried first and
|
|
# falls back to the old name automatically
|
|
pdfplumber # file_processor — PDF text and tables
|
|
PyPDF2 # file_processor — PDF fallback reader
|
|
python-docx # file_processor — .docx reading
|
|
paho-mqtt # printer_control plugin — MQTT printers
|
|
pynvml # system_monitor + the HUD's GPU meter (NVIDIA)
|
|
|
|
# ── Optional: heavy extras, install only if you want the feature ──────────────
|
|
# Left out on purpose — together they are several hundred megabytes, which is a
|
|
# lot to download for a fresh clone that may never use them.
|
|
#
|
|
# pip install pandas # file_processor: spreadsheet/CSV analysis
|
|
# pip install pydub # file_processor: audio metadata and conversion
|
|
# # (also needs ffmpeg on PATH for most formats)
|
|
# pip install mediapipe # pushup_counter: elbow-angle rep detection
|
|
|
|
# ── Optional: local wake word ("Hey Jarvis") ──────────────────────────────────
|
|
# Deliberately NOT installed by default — it's opt-in. Enable it (and download
|
|
# the tiny model) with one click from ⚙ → WAKE WORD in the app, or install it
|
|
# yourself with: pip install openwakeword
|
|
#
|
|
# macOS / Linux OS actions (volume, brightness, reminders) shell out to native
|
|
# tools (pactl / brightnessctl / osascript / systemd), so no extra Python
|
|
# packages are needed there — nothing Windows-specific is ever pulled in.
|