[build-system] requires = ["setuptools>=61.0", "wheel"] build-backend = "setuptools.build_meta" [project] name = "llava-implementation" version = "0.1.0" description = "A modern implementation of LLaVA with a beautiful web interface" readme = "README.md" requires-python = ">=3.8" license = {text = "MIT"} authors = [ {name = "Prashant Ambati", email = "your.email@example.com"} ] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Software Development :: Libraries :: Python Modules", ] dependencies = [ "torch>=2.0.0", "torchvision>=0.15.0", "transformers>=4.36.0", "accelerate>=0.25.0", "pillow>=10.0.0", "numpy>=1.24.0", "tqdm>=4.65.0", "matplotlib>=3.7.0", "opencv-python>=4.8.0", "einops>=0.7.0", "timm>=0.9.0", "sentencepiece>=0.1.99", "peft>=0.7.0", "bitsandbytes>=0.41.0", "safetensors>=0.4.0", "gradio==4.44.1", "fastapi>=0.109.0", "uvicorn>=0.27.0", "python-multipart>=0.0.6", "pydantic>=2.5.0", "python-jose>=3.3.0", "passlib>=1.7.4", "bcrypt>=4.0.1", "aiofiles>=23.2.0", "httpx>=0.26.0", ] [project.optional-dependencies] dev = [ "pytest>=8.0.0", "pytest-cov>=4.1.0", "pytest-mock>=3.12.0", "pytest-asyncio>=0.23.5", "pytest-xdist>=3.5.0", "black>=24.1.1", "isort>=5.13.2", "flake8>=7.0.0", "mypy>=1.8.0", "types-Pillow>=10.2.0.20240106", "types-requests>=2.31.0.20240125", "sphinx>=7.2.6", "sphinx-rtd-theme>=2.0.0", "sphinx-autodoc-typehints>=2.0.1", "sphinx-copybutton>=0.5.2", "sphinx-tabs>=3.4.4", "pre-commit>=3.6.0", "ipython>=8.21.0", "jupyter>=1.0.0", "notebook>=7.0.7", "ipykernel>=6.29.0", "build>=1.0.3", "twine>=4.0.2", "wheel>=0.42.0", "memory-profiler>=0.61.0", "line-profiler>=4.1.2", "debugpy>=1.8.0", ] [project.urls] Homepage = "https://github.com/Prashant-ambati/llava-implementation" Documentation = "https://github.com/Prashant-ambati/llava-implementation#readme" Repository = "https://github.com/Prashant-ambati/llava-implementation.git" Issues = "https://github.com/Prashant-ambati/llava-implementation/issues" "Bug Tracker" = "https://github.com/Prashant-ambati/llava-implementation/issues" [tool.setuptools] packages = ["src"] [tool.black] line-length = 88 target-version = ["py38"] include = '\.pyi?$' [tool.isort] profile = "black" multi_line_output = 3 include_trailing_comma = true force_grid_wrap = 0 use_parentheses = true ensure_newline_before_comments = true line_length = 88 [tool.mypy] python_version = "3.8" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true disallow_incomplete_defs = true check_untyped_defs = true disallow_untyped_decorators = true no_implicit_optional = true warn_redundant_casts = true warn_unused_ignores = true warn_no_return = true warn_unreachable = true strict_optional = true [tool.pytest.ini_options] minversion = "6.0" addopts = "-ra -q --cov=src" testpaths = [ "tests", ] python_files = ["test_*.py"] python_classes = ["Test*"] python_functions = ["test_*"] [tool.coverage.run] source = ["src"] branch = true [tool.coverage.report] exclude_lines = [ "pragma: no cover", "def __repr__", "if self.debug:", "raise NotImplementedError", "if __name__ == .__main__.:", "pass", "raise ImportError", ] show_missing = true fail_under = 80 [tool.bandit] exclude_dirs = ["tests", "docs"] skips = ["B101"] [tool.ruff] line-length = 88 target-version = "py38" select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes "I", # isort "B", # flake8-bugbear "C4", # flake8-comprehensions "UP", # pyupgrade "N", # pep8-naming "PL", # pylint "RUF", # ruff-specific rules ] ignore = [ "E501", # line length violations "B008", # do not perform function calls in argument defaults ] [tool.ruff.isort] known-first-party = ["src"] [tool.ruff.mccabe] max-complexity = 10