[build-system] requires = ["setuptools>=61.0", "wheel"] build-backend = "setuptools.build_meta" [project] name = "gspro-remote" version = "0.1.0" description = "Remote control application for GSPro golf simulator" readme = "README.md" requires-python = ">=3.11" license = {text = "MIT"} authors = [ {name = "GSPro Remote Team"}, ] dependencies = [ "fastapi>=0.104.0", "uvicorn[standard]>=0.24.0", "pydantic>=2.5.0", "pydantic-settings>=2.1.0", "pydirectinput>=1.0.4", "pywin32>=306", "mss>=9.0.1", "opencv-python>=4.8.0", "pillow>=10.1.0", "zeroconf>=0.120.0", "websockets>=12.0", "python-multipart>=0.0.6", "aiofiles>=23.2.1", ] [project.optional-dependencies] dev = [ "pytest>=7.4.0", "pytest-asyncio>=0.21.0", "pytest-cov>=4.1.0", "black>=23.11.0", "ruff>=0.1.0", "mypy>=1.7.0", "httpx>=0.25.0", ] vision = [ "easyocr>=1.7.0", "pytesseract>=0.3.10", "numpy>=1.24.0", ] build = [ "pyinstaller>=6.0.0", "nuitka>=1.8.0", ] [tool.setuptools.packages.find] where = ["."] include = ["app*"] exclude = ["tests*"] [tool.black] line-length = 120 target-version = ['py311'] [tool.ruff] line-length = 120 select = ["E", "F", "I", "N", "W"] ignore = ["E501"] target-version = "py311" [tool.mypy] python_version = "3.11" warn_return_any = true warn_unused_configs = true ignore_missing_imports = true [tool.pytest.ini_options] testpaths = ["tests"] python_files = ["test_*.py"] python_functions = ["test_*"] addopts = "-v --cov=app --cov-report=html --cov-report=term"