[build-system] requires = ["setuptools>=42", "wheel"] build-backend = "setuptools.build_meta" [project] name = "rfdetr" version = "1.4.2" description = "RF-DETR" readme = "README.md" authors = [ {name = "Roboflow, Inc", email = "develop@roboflow.com"} ] license = {text = "Apache License 2.0"} requires-python = ">=3.10" classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Typing :: Typed", "Operating System :: POSIX", "Operating System :: Unix", "Operating System :: MacOS" ] keywords = ["machine-learning", "deep-learning", "vision", "ML", "DL", "AI", "DETR", "RF-DETR", "Roboflow"] dependencies = [ "requests", "pycocotools", "torch>=1.13.0,<=2.8.0", # TODO: Torch >=2.9.0 is excluded due to known issues. PRs that help lift this restriction are welcome. "torchvision>=0.14.0", "scipy", "tqdm", "transformers>4.0.0, <5.0.0", "peft", "rf100vl", "pydantic", "supervision", "matplotlib", "roboflow", ] [project.optional-dependencies] onnxexport = [ "onnx>=1.16.0,<1.20", "onnxsim", "onnx_graphsurgeon", "onnxruntime", "polygraphy" ] metrics = [ "tensorboard>=2.13.0", "wandb" ] plus = ["rfdetr_plus>=1.0.0"] [dependency-groups] build = [ "twine>=5.1.1", "wheel>=0.40", "build>=0.10" ] tests = [ "pytest>=7.2.2,<9", "pytest-cov>=4,<8", "pytest-xdist>=3.6.1,<4", ] docs = [ "mkdocs-material[imaging]>=9.7", "mkdocstrings>=0.25.2,<0.30.0", "mkdocstrings-python>=1.10.9", "mike>=2.0.0", "mkdocs-jupyter>=0.24.3", "mkdocs-git-committers-plugin-2>=2.4.1", "mkdocs-git-revision-date-localized-plugin>=1.2.4" ] [project.urls] Homepage = "https://github.com/roboflow/rf-detr" [project.scripts] rfdetr = "rfdetr.cli.main:trainer" [tool.setuptools.packages.find] where = ["src"] include = ["rfdetr*"] [tool.setuptools] include-package-data = false [tool.setuptools.package-data] rfdetr = ["py.typed", "models/backbone/dinov2_configs/*.json"] [tool.ruff] line-length = 120 target-version = "py310" [tool.ruff.lint] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes ] extend-select = [ "I", # isort ] ignore = [ "E501", # todo: will be fixed with enabling ruff-format "E722", # todo: Do not use bare `except` "E741", # todo: Ambiguous variable name: `...` "F401", # todo: `...` imported but unused; consider removing, adding to `__all__`, or using a redundant alias "F403", # todo: `from ... import *` used; unable to detect undefined names "F405", # todo: `...` may be undefined, or defined from star imports "E721", # todo: Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance checks "F821", # todo: Undefined name `...` ] [tool.pytest.ini_options] addopts = [ "-v", # verbose output "--color=yes", # colored output # "--doctest-modules", # TODO: run doctests from all modules ] markers = [ "gpu: tests that require GPU or are slow on CPU", ] [tool.codespell] skip = "*.pth"