2026-01-13 18:48:06 +01:00
|
|
|
[build-system]
|
|
|
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
|
requires = [ "setuptools>=61" ]
|
|
|
|
|
|
2025-01-06 05:15:21 +03:00
|
|
|
[project]
|
2023-07-05 00:04:04 +03:00
|
|
|
name = "supervision"
|
2026-01-19 12:10:26 +01:00
|
|
|
version = "0.28.0rc0"
|
2026-01-13 18:48:06 +01:00
|
|
|
description = "A set of easy-to-use utils that will come in handy in any Computer Vision project"
|
2025-01-06 05:15:21 +03:00
|
|
|
readme = "README.md"
|
2026-01-13 18:48:06 +01:00
|
|
|
keywords = [
|
|
|
|
|
"AI",
|
|
|
|
|
"deep-learning",
|
|
|
|
|
"DL",
|
|
|
|
|
"machine-learning",
|
|
|
|
|
"ML",
|
|
|
|
|
"Roboflow",
|
|
|
|
|
"vision",
|
2025-01-06 05:15:21 +03:00
|
|
|
]
|
2026-02-03 01:13:31 +09:00
|
|
|
license = "MIT"
|
2024-09-26 13:18:10 +03:00
|
|
|
maintainers = [
|
2026-01-13 18:48:06 +01:00
|
|
|
{ name = "Piotr Skalski", email = "piotr@roboflow.com" },
|
2024-09-26 13:18:10 +03:00
|
|
|
]
|
2026-01-13 18:48:06 +01:00
|
|
|
authors = [
|
|
|
|
|
{ name = "Roboflow et al.", email = "develop@roboflow.com" },
|
2024-07-10 01:22:23 +09:00
|
|
|
]
|
2026-01-13 18:48:06 +01:00
|
|
|
requires-python = ">=3.9"
|
2024-07-10 01:22:23 +09:00
|
|
|
classifiers = [
|
2026-01-13 18:48:06 +01:00
|
|
|
"Development Status :: 5 - Production/Stable",
|
|
|
|
|
"Intended Audience :: Developers",
|
|
|
|
|
"Intended Audience :: Education",
|
|
|
|
|
"Intended Audience :: Science/Research",
|
|
|
|
|
"Operating System :: MacOS",
|
|
|
|
|
"Operating System :: Microsoft :: Windows",
|
|
|
|
|
"Operating System :: POSIX :: Linux",
|
|
|
|
|
"Programming Language :: Python :: 3 :: Only",
|
|
|
|
|
"Programming Language :: Python :: 3.9",
|
|
|
|
|
"Programming Language :: Python :: 3.10",
|
|
|
|
|
"Programming Language :: Python :: 3.11",
|
|
|
|
|
"Programming Language :: Python :: 3.12",
|
|
|
|
|
"Programming Language :: Python :: 3.13",
|
2026-01-27 07:01:02 +01:00
|
|
|
"Programming Language :: Python :: 3.14",
|
2026-01-13 18:48:06 +01:00
|
|
|
"Topic :: Multimedia :: Graphics",
|
|
|
|
|
"Topic :: Multimedia :: Video",
|
|
|
|
|
"Topic :: Scientific/Engineering",
|
|
|
|
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
|
|
|
"Topic :: Scientific/Engineering :: Image Recognition",
|
|
|
|
|
"Topic :: Software Development",
|
|
|
|
|
"Typing :: Typed",
|
2023-07-05 00:04:04 +03:00
|
|
|
]
|
2025-01-06 16:58:56 +03:00
|
|
|
dependencies = [
|
2026-01-13 18:48:06 +01:00
|
|
|
"defusedxml>=0.7.1",
|
|
|
|
|
"matplotlib>=3.6",
|
|
|
|
|
"numpy>=1.21.2",
|
|
|
|
|
"opencv-python>=4.5.5.64",
|
|
|
|
|
"pillow>=9.4",
|
|
|
|
|
"pyyaml>=5.3",
|
|
|
|
|
"requests>=2.26",
|
|
|
|
|
"scipy>=1.10",
|
|
|
|
|
"tqdm>=4.62.3",
|
2024-07-18 09:54:58 +03:00
|
|
|
]
|
2026-01-13 18:48:06 +01:00
|
|
|
optional-dependencies.metrics = [
|
|
|
|
|
"pandas>=2",
|
2024-01-18 22:56:59 +03:00
|
|
|
]
|
2026-01-13 18:48:06 +01:00
|
|
|
urls.Documentation = "https://supervision.roboflow.com/latest/"
|
|
|
|
|
urls.Homepage = "https://github.com/roboflow/supervision"
|
|
|
|
|
urls.Repository = "https://github.com/roboflow/supervision"
|
2025-07-11 17:13:11 +03:00
|
|
|
|
|
|
|
|
[dependency-groups]
|
2025-01-08 23:09:25 +03:00
|
|
|
dev = [
|
2026-01-13 18:48:06 +01:00
|
|
|
"docutils!=0.21",
|
|
|
|
|
"ipywidgets>=8.1.1",
|
|
|
|
|
"jupytext>=1.16.1",
|
|
|
|
|
"nbconvert>=7.14.2",
|
|
|
|
|
"notebook>=6.5.3,<8",
|
|
|
|
|
"pre-commit>=3.8",
|
|
|
|
|
"pytest>=7.2.2,<9",
|
|
|
|
|
"pytest-cov>=4,<8",
|
|
|
|
|
"tox>=4.11.4",
|
2025-01-08 23:09:25 +03:00
|
|
|
]
|
|
|
|
|
docs = [
|
2026-01-13 18:48:06 +01:00
|
|
|
"mike>=2",
|
|
|
|
|
"mkdocs-git-committers-plugin-2>=2.4.1; python_version>='3.9' and python_version<'4'",
|
|
|
|
|
"mkdocs-git-revision-date-localized-plugin>=1.2.4",
|
|
|
|
|
"mkdocs-jupyter>=0.24.3",
|
|
|
|
|
"mkdocs-material[imaging]>=9.7",
|
|
|
|
|
"mkdocstrings>=0.25.2,<0.31",
|
|
|
|
|
"mkdocstrings-python>=1.10.9,<2", # todo: breaking changes in 2.x
|
2025-01-08 23:09:25 +03:00
|
|
|
]
|
|
|
|
|
build = [
|
2026-01-13 18:48:06 +01:00
|
|
|
"build>=0.10,<1.5",
|
|
|
|
|
"twine>=5.1.1,<7",
|
2026-01-26 14:16:31 +01:00
|
|
|
"wheel>=0.40,<0.47",
|
2024-01-18 22:56:59 +03:00
|
|
|
]
|
2023-07-25 13:02:26 +03:00
|
|
|
|
2026-01-13 18:48:06 +01:00
|
|
|
[tool.setuptools]
|
|
|
|
|
include-package-data = false
|
2026-02-10 21:24:35 +09:00
|
|
|
package-data.supervision = [ "py.typed" ]
|
|
|
|
|
packages.find.where = [ "src" ]
|
|
|
|
|
packages.find.include = [ "supervision*" ]
|
2026-01-13 18:48:06 +01:00
|
|
|
|
2026-02-10 21:24:35 +09:00
|
|
|
# exclude = [ "docs*", "tests*", "examples*" ]
|
2023-07-25 13:02:26 +03:00
|
|
|
[tool.ruff]
|
2025-07-14 20:12:11 +03:00
|
|
|
target-version = "py39"
|
2026-01-13 18:48:06 +01:00
|
|
|
line-length = 88
|
|
|
|
|
indent-width = 4
|
2023-07-25 13:02:26 +03:00
|
|
|
# Exclude a variety of commonly ignored directories.
|
|
|
|
|
exclude = [
|
2026-01-13 18:48:06 +01:00
|
|
|
".bzr",
|
|
|
|
|
".direnv",
|
|
|
|
|
".eggs",
|
|
|
|
|
".git",
|
|
|
|
|
".git-rewrite",
|
|
|
|
|
".hg",
|
|
|
|
|
".mypy_cache",
|
|
|
|
|
".nox",
|
|
|
|
|
".pants.d",
|
|
|
|
|
".pytype",
|
|
|
|
|
".ruff_cache",
|
|
|
|
|
".svn",
|
|
|
|
|
".tox",
|
|
|
|
|
".venv",
|
|
|
|
|
"__pypackages__",
|
|
|
|
|
"_build",
|
|
|
|
|
"buck-out",
|
|
|
|
|
"build",
|
|
|
|
|
"dist",
|
|
|
|
|
"docs",
|
|
|
|
|
"node_modules",
|
|
|
|
|
"venv",
|
|
|
|
|
"yarn-error.log",
|
|
|
|
|
"yarn.lock",
|
2023-07-25 13:02:26 +03:00
|
|
|
]
|
2026-01-13 18:48:06 +01:00
|
|
|
# Like Black, indent with spaces, rather than tabs.
|
|
|
|
|
format.indent-style = "space"
|
|
|
|
|
# Like Black, use double quotes for strings.
|
|
|
|
|
format.quote-style = "double"
|
|
|
|
|
# Like Black, automatically detect the appropriate line ending.
|
|
|
|
|
format.line-ending = "auto"
|
|
|
|
|
# Like Black, respect magic trailing commas.
|
|
|
|
|
format.skip-magic-trailing-comma = false
|
2026-01-12 08:23:49 +01:00
|
|
|
# Enable linting rules for code style, imports, and best practices.
|
2026-01-13 18:48:06 +01:00
|
|
|
lint.select = [
|
|
|
|
|
"A", # flake8-builtins - https://docs.astral.sh/ruff/rules/#flake8-builtins-a
|
|
|
|
|
"E", # pycodestyle errors - https://docs.astral.sh/ruff/rules/#error-e
|
|
|
|
|
"F", # Pyflakes - https://docs.astral.sh/ruff/rules/#pyflakes-f
|
|
|
|
|
"I", # isort - https://docs.astral.sh/ruff/rules/#isort-i
|
2026-01-13 19:34:22 +01:00
|
|
|
"PT", # pytest - https://docs.astral.sh/ruff/rules/#flake8-pytest-style-pt
|
2026-01-13 18:48:06 +01:00
|
|
|
"Q", # flake8-quotes - https://docs.astral.sh/ruff/rules/#flake8-quotes-q
|
|
|
|
|
"RUF", # Ruff-specific rules - https://docs.astral.sh/ruff/rules/#ruff-specific-rules-ruf
|
|
|
|
|
"S", # bandit - https://docs.astral.sh/ruff/rules/#flake8-bandit-s
|
|
|
|
|
"UP", # pyupgrade - https://docs.astral.sh/ruff/rules/#pyupgrade-up
|
|
|
|
|
"W", # pycodestyle warnings - https://docs.astral.sh/ruff/rules/#pycodestyle-w
|
2024-07-10 01:22:23 +09:00
|
|
|
]
|
2026-02-10 21:24:35 +09:00
|
|
|
lint.ignore = []
|
2026-01-13 18:48:06 +01:00
|
|
|
lint.per-file-ignores."__init__.py" = [ "E402", "F401" ]
|
2026-02-03 23:24:47 +09:00
|
|
|
lint.per-file-ignores."src/**" = [
|
2026-01-13 18:48:06 +01:00
|
|
|
"S101", # TODO: Replace asserts with proper error handling
|
2026-01-12 08:08:19 +01:00
|
|
|
]
|
2026-02-03 23:24:47 +09:00
|
|
|
lint.per-file-ignores."tests/**" = [
|
2026-02-10 21:22:55 +09:00
|
|
|
"S101", # Use of `assert` detected
|
2026-01-12 08:08:19 +01:00
|
|
|
]
|
2026-02-10 21:24:35 +09:00
|
|
|
lint.unfixable = []
|
2026-01-13 18:48:06 +01:00
|
|
|
# Allow unused variables when underscore-prefixed.
|
|
|
|
|
lint.dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
|
|
|
|
lint.flake8-quotes.docstring-quotes = "double"
|
|
|
|
|
lint.flake8-quotes.inline-quotes = "double"
|
|
|
|
|
lint.flake8-quotes.multiline-quotes = "double"
|
|
|
|
|
lint.isort.no-sections = false
|
|
|
|
|
lint.isort.order-by-type = true
|
2023-12-13 13:01:29 +03:00
|
|
|
# Flag errors (`C901`) whenever the complexity level exceeds 5.
|
2026-01-13 18:48:06 +01:00
|
|
|
lint.mccabe.max-complexity = 20
|
|
|
|
|
lint.pydocstyle.convention = "google"
|
|
|
|
|
lint.pylint.max-args = 20
|
2023-07-25 13:02:26 +03:00
|
|
|
|
2024-09-27 14:17:34 +03:00
|
|
|
[tool.codespell]
|
2025-01-08 23:09:25 +03:00
|
|
|
skip = "*.ipynb"
|
2024-09-27 14:17:34 +03:00
|
|
|
count = true
|
|
|
|
|
quiet-level = 3
|
|
|
|
|
ignore-words-list = "STrack,sTrack,strack"
|
|
|
|
|
|
2026-01-27 12:55:24 +09:00
|
|
|
[tool.mypy]
|
|
|
|
|
python_version = "3.9"
|
|
|
|
|
ignore_missing_imports = false
|
|
|
|
|
explicit_package_bases = true
|
|
|
|
|
strict = true
|
2026-02-03 23:24:47 +09:00
|
|
|
mypy_path = "src"
|
2026-03-13 14:36:59 +05:30
|
|
|
overrides = [
|
|
|
|
|
# exclude = [
|
|
|
|
|
# "docs",
|
|
|
|
|
# "test",
|
|
|
|
|
# "examples",
|
|
|
|
|
# "setup.py",
|
|
|
|
|
# ]
|
|
|
|
|
{ module = [
|
|
|
|
|
"tests.*",
|
|
|
|
|
"examples.*",
|
|
|
|
|
], ignore_errors = true },
|
2026-01-27 12:55:24 +09:00
|
|
|
]
|
|
|
|
|
|
2026-03-24 21:07:32 +01:00
|
|
|
[tool.pytest]
|
|
|
|
|
ini_options.addopts = [
|
|
|
|
|
"--doctest-modules",
|
|
|
|
|
"--color=yes",
|
|
|
|
|
]
|
|
|
|
|
ini_options.doctest_optionflags = "ELLIPSIS NORMALIZE_WHITESPACE"
|
|
|
|
|
|
2026-01-13 18:48:06 +01:00
|
|
|
[tool.autoflake]
|
|
|
|
|
check = true
|
|
|
|
|
imports = [ "cv2", "supervision" ]
|