[build-system] requires = ["setuptools>=68.0"] build-backend = "setuptools.backends._legacy:_Backend" [project] name = "peft-finetune-platform" version = "0.1.0" description = "PEFT-based fine-tuning platform with frontend-backend separation" requires-python = ">=3.10" dependencies = [ "fastapi>=0.115.0", "uvicorn[standard]>=0.30.0", "pydantic>=2.0", "pydantic-settings>=2.0", "python-dotenv>=1.0", "sqlalchemy[asyncio]>=2.0", "aiosqlite>=0.20.0", "alembic>=1.13.0", "python-multipart>=0.0.9", "websockets>=12.0", # ML stack "torch>=2.4.0", "transformers>=4.45.0", "peft>=0.13.0", "trl>=0.12.0", "datasets>=3.0.0", "accelerate>=1.0.0", "bitsandbytes>=0.44.0", "scipy>=1.14.0", "scikit-learn>=1.5.0", "pillow>=10.4.0", ] [project.optional-dependencies] unsloth = ["unsloth"] openclip = ["open-clip-torch"] dev = [ "pytest>=8.0", "pytest-asyncio>=0.23", "httpx>=0.27", "ruff>=0.6.0", ] [tool.setuptools.packages.find] where = ["backend"] include = ["app*"] [tool.ruff] target-version = "py310" line-length = 120 [tool.ruff.lint] select = ["E", "F", "I", "N", "W"] ignore = ["E501"] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["backend/tests"]