[build-system] requires = ["setuptools>=80", "wheel"] build-backend = "setuptools.build_meta" [project] name = "ely-eye" version = "0.1.0" description = "Local multimodal context operating system for Qwen3.5-9B." readme = "README.md" requires-python = ">=3.12" dependencies = [ "accelerate>=1.12.0", "bitsandbytes>=0.49.2", "datasets>=4.8.5", "fastapi>=0.124.0", "huggingface-hub>=1.2.0", "httpx>=0.28.0", "networkx>=3.6.0", "ninja>=1.13.0", "numpy>=2.3.0", "opencv-python-headless>=4.12.0.0", "orjson>=3.11.0", "peft>=0.19.0", "pillow>=12.0.0", "platformdirs>=4.5.0", "pyarrow>=22.0.0", "pydantic>=2.12.0", "pydantic-settings>=2.12.0", "pymupdf>=1.26.0", "python-multipart>=0.0.20", "qwen-vl-utils>=0.0.14", "rank-bm25>=0.2.2", "rapidocr-onnxruntime>=1.2.3,<2", "safetensors>=0.7.0", "sentence-transformers>=5.2.0", "torch>=2.12.0", "torchvision>=0.27.0", "transformers>=4.57.0", "typer>=0.20.0", "uvicorn[standard]>=0.38.0", "zstandard>=0.25.0" ] [project.scripts] ely-eye = "ely_eye.cli:app" [tool.setuptools.packages.find] where = ["src"] [tool.ruff] line-length = 100 target-version = "py312" [tool.ruff.lint] # Typer requires an option default to be a typer.Option call, which is what B008 forbids. ignore = ["B008"]