[build-system] requires = ["setuptools>=61"] build-backend = "setuptools.build_meta" [project] name = "kuzushiji-ocr" version = "0.1.0" description = "くずし字 OCR — Modal 上の VLM 推論と FastAPI Web UI" readme = "README.md" requires-python = ">=3.10" license = { text = "Apache-2.0" } dependencies = [ "google-genai>=1.0", "modal>=0.62", "fastapi>=0.115", "uvicorn>=0.34", "python-multipart>=0.0.20", "Pillow>=11.0", "jinja2>=3.1", ] [dependency-groups] dev = [ "pytest>=8.3.4", "pytest-asyncio>=1.0.0", "ruff>=0.14.10", ] [tool.setuptools.packages.find] where = ["src"] [tool.ruff] line-length = 160 indent-width = 4 target-version = "py310" extend-exclude = [".venv", "build", "dist", "archive"] src = ["src", "comparison"] [tool.ruff.lint] select = ["E", "F", "W", "B", "I"] extend-select = [ "C4", "SIM", "ERA", "UP", ] extend-ignore = ["SIM108"] [tool.ruff.format] quote-style = "double" indent-style = "space" preview = true line-ending = "auto" docstring-code-format = true [tool.ruff.lint.isort] known-first-party = ["kuzushiji_ocr"] section-order = ["future", "standard-library", "third-party", "first-party", "local-folder"]