[project] name = "meetus" version = "0.1.0" description = "Local, offline toolkit: meetus (meeting recordings → enhanced transcripts) + doocus (documents → textified content + metadata)." requires-python = ">=3.10" # Base install pulls nothing — pick the feature groups you need (see below). dependencies = [] # Feature groups (PEP 735), installed with uv. Examples: # uv sync --group meetus meeting pipeline # uv sync --group doocus document extraction # uv sync --group doocus --group ocr + OCR for images/scanned pdfs # uv run process_doc.py file.pdf run inside the synced venv [dependency-groups] # meetus: frame extraction from recordings. whisper/whisperx are installed # separately (heavy; see `transcribe` group / README) and called as CLIs. meetus = [ "opencv-python>=4.8.0", "ffmpeg-python>=0.2.0", ] # doocus: local, offline document extraction (office/pdf/web/text/image). doocus = [ "Pillow>=10.0.0", "PyYAML>=6.0", "python-docx>=1.1.0", "python-pptx>=0.6.23", "openpyxl>=3.1.0", "pypdf>=4.0.0", "beautifulsoup4>=4.12.0", "lxml>=5.0.0", ] # OCR for doocus images / scanned pdfs (--ocr). Needs system `tesseract`. ocr = ["pytesseract>=0.3.10"] # doocus pdf page-image thumbnails (--render). Needs system `poppler`. pdf-render = ["pdf2image>=1.17.0"] # NB: whisper / whisperx are NOT here. meetus invokes them as external CLIs # (via subprocess), like ffmpeg — install them your own way (e.g. a separate # GPU env). They're heavy and don't belong in the managed deps. # Old OCR/vision path in meetus/deprecated/ — unwired, reference only. Kept out # of every default install; this is the ONLY place `ollama` is used. deprecated = ["ollama>=0.1.0", "pytesseract>=0.3.10"] [tool.uv] # This repo is a collection of scripts (process_meeting.py, process_doc.py) plus # the meetus/ and doocus/ packages, not a distributable — don't build it. package = false