[project] name = "refiners" version = "0.2.0" description = "The simplest way to train and run adapters on top of foundational models" authors = [{ name = "The Finegrain Team", email = "bonjour@lagon.tech" }] license = "MIT" dependencies = [ "torch>=2.1.1", "safetensors>=0.4.0", "pillow>=10.1.0", "jaxtyping>=0.2.23", "packaging>=23.2", ] readme = "README.md" requires-python = ">= 3.10" [project.optional-dependencies] training = [ "bitsandbytes>=0.41.2.post2", "pydantic>=2.5.2", "prodigyopt>=1.0", "torchvision>=0.16.1", "loguru>=0.7.2", "wandb>=0.16.0", # Added scipy as a work around until this PR gets merged: # https://github.com/TimDettmers/bitsandbytes/pull/525 "scipy>=1.11.4", "datasets>=2.15.0", "tomli>=2.0.1", ] test = [ "diffusers>=0.24.0", "transformers>=4.35.2", "piq>=0.8.0", "invisible-watermark>=0.2.0", "torchvision>=0.16.1", # An unofficial Python package for Meta AI's Segment Anything Model: # https://github.com/opengeos/segment-anything "segment-anything-py>=1.0", ] conversion = [ "diffusers>=0.24.0", "transformers>=4.35.2", "segment-anything-py>=1.0", "requests>=2.26.0", "tqdm>=4.62.3", ] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.rye] managed = true dev-dependencies = [ "pyright == 1.1.342", "ruff>=0.0.292", "docformatter>=1.7.5", "pytest>=7.4.2", "mkdocs-material>=9.5.3", "coverage>=7.4.1", ] [tool.hatch.metadata] allow-direct-references = true [tool.rye.scripts] lint = { chain = ["ruff format .", "ruff --fix ."] } serve-docs = "mkdocs serve" [tool.black] line-length = 120 [tool.ruff] src = ["src"] # see https://docs.astral.sh/ruff/settings/#src select = [ "I", # isort ] ignore = [ "F722", # forward-annotation-syntax-error, because of Jaxtyping "E731", # do-not-assign-lambda ] line-length = 120 [tool.ruff.lint.isort] # Allow this kind of import on a single line: # # from torch import device as Device, dtype as DType # combine-as-imports = true [tool.docformatter] black = true [tool.pyright] include = ["src/refiners", "tests", "scripts"] strict = ["*"] exclude = ["**/__pycache__", "tests/weights"] reportMissingTypeStubs = "warning"