290 lines
6.7 KiB
TOML
290 lines
6.7 KiB
TOML
[tool.poetry]
|
||
name = "supervision"
|
||
version = "0.26.0rc1"
|
||
description = "A set of easy-to-use utils that will come in handy in any Computer Vision project"
|
||
authors = ["Piotr Skalski <piotr.skalski92@gmail.com>"]
|
||
maintainers = [
|
||
"Piotr Skalski <piotr.skalski92@gmail.com>",
|
||
"Linas Kondrackis <linas@roboflow.com>",
|
||
]
|
||
readme = "README.md"
|
||
license = "MIT"
|
||
packages = [{ include = "supervision" }, { include = "supervision/py.typed" }]
|
||
homepage = "https://github.com/roboflow/supervision"
|
||
repository = "https://github.com/roboflow/supervision"
|
||
documentation = "https://supervision.roboflow.com/latest/"
|
||
keywords = [
|
||
"machine-learning",
|
||
"deep-learning",
|
||
"vision",
|
||
"ML",
|
||
"DL",
|
||
"AI",
|
||
"Roboflow",
|
||
]
|
||
|
||
classifiers = [
|
||
'Development Status :: 4 - Beta',
|
||
'Intended Audience :: Developers',
|
||
'Intended Audience :: Education',
|
||
'Intended Audience :: Science/Research',
|
||
'License :: OSI Approved :: MIT License',
|
||
'Programming Language :: Python :: 3',
|
||
'Programming Language :: Python :: 3 :: Only',
|
||
'Topic :: Software Development',
|
||
'Topic :: Scientific/Engineering',
|
||
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
||
"Topic :: Scientific/Engineering :: Image Recognition",
|
||
'Typing :: Typed',
|
||
'Operating System :: Microsoft :: Windows',
|
||
'Operating System :: POSIX :: Linux',
|
||
'Operating System :: MacOS',
|
||
]
|
||
|
||
[tool.poetry.dependencies]
|
||
python = "^3.8"
|
||
|
||
# For Python versions 3.13 and above, use numpy versions 2.1.0,
|
||
# required for poetry to not fail.
|
||
numpy = [
|
||
{ version = ">=1.21.2", python = "<3.13" },
|
||
{ version = ">=2.1.0", python = ">=3.13" },
|
||
]
|
||
|
||
scipy = [
|
||
{ version = "1.10.0", python = "<3.9" },
|
||
{ version = "^1.10.0", python = ">=3.9" },
|
||
{ version = ">=1.14.1", python = ">=3.13" },
|
||
|
||
]
|
||
|
||
# Matplotlib sub-dependency
|
||
# The 'contourpy' package is required by Matplotlib for contour plotting.
|
||
# We need to ensure compatibility with both Python 3.8 and Python 3.13.
|
||
#
|
||
# For Python 3.8 and above, we use version 1.0.7 or higher, as it is the lowest major version that supports Python 3.8.
|
||
# For Python 3.13 and above, we use version 1.3.0 or higher, as it is the first version that explicitly supports Python 3.13.
|
||
contourpy = [
|
||
{ version = ">=1.0.7", python = ">=3.8,<3.13" },
|
||
{ version = ">=1.3.0", python = ">=3.13" },
|
||
]
|
||
|
||
matplotlib = [
|
||
{ version = ">=3.6.0,<3.8.0", python = "3.8" },
|
||
{ version = ">=3.6.0", python = ">=3.9" },
|
||
{ version = ">=3.7.3", python = ">=3.12" },
|
||
{ version = ">=3.9.2", python = ">=3.13" },
|
||
]
|
||
|
||
|
||
pyyaml = ">=5.3"
|
||
defusedxml = "^0.7.1"
|
||
pillow = ">=9.4"
|
||
requests = ">=2.26.0"
|
||
tqdm = ">=4.62.3"
|
||
# pandas: picked lowest major version that supports Python 3.8
|
||
# pandas 2.2.3 has been released with support for Python 3.13
|
||
pandas = [
|
||
{ version = ">=2.0.0", python = "<3.13", optional = true },
|
||
{ version = ">=2.2.3", python = ">=3.13", optional = true },
|
||
]
|
||
|
||
opencv-python = ">=4.5.5.64"
|
||
|
||
[tool.poetry.extras]
|
||
metrics = ["pandas"]
|
||
|
||
[tool.poetry.group.test.dependencies]
|
||
pytest = ">=7.2.2,<9.0.0"
|
||
pytest-md = "^0.2.0"
|
||
pytest-emoji = "^0.2.0"
|
||
|
||
[tool.poetry.group.dev.dependencies]
|
||
twine = ">=5.1.1,<7.0.0"
|
||
pytest = ">=7.2.2,<9.0.0"
|
||
wheel = ">=0.40,<0.46"
|
||
build = ">=0.10,<1.3"
|
||
ruff = ">=0.1.0"
|
||
mypy = "^1.4.1"
|
||
pre-commit = "^3.3.3"
|
||
tox = "^4.11.4"
|
||
notebook = ">=6.5.3,<8.0.0"
|
||
ipywidgets = "^8.1.1"
|
||
jupytext = "^1.16.1"
|
||
nbconvert = "^7.14.2"
|
||
docutils = [
|
||
{ version = "^0.20.1", python = "<3.9" },
|
||
{ version = "^0.21.1", python = ">=3.9" },
|
||
]
|
||
|
||
[tool.poetry.group.docs.dependencies]
|
||
mkdocs-material = { extras = ["imaging"], version = "^9.5.5" }
|
||
mkdocstrings = ">=0.25.2,<0.27.0"
|
||
mkdocstrings-python = "^1.10.9"
|
||
mike = "^2.0.0"
|
||
# For Documentation Development use Python 3.10 or above
|
||
# Use Latest mkdocs-jupyter min 0.24.6 for Jupyter Notebook Theme support
|
||
mkdocs-jupyter = "^0.24.3"
|
||
mkdocs-git-committers-plugin-2 = "^2.4.1"
|
||
mkdocs-git-revision-date-localized-plugin = "^1.2.4"
|
||
|
||
[tool.poetry.group.typecheck]
|
||
optional = true
|
||
|
||
[tool.poetry.group.typecheck.dependencies]
|
||
types-pyyaml = "^6.0.12.20240808"
|
||
types-cffi = "^1.16.0.20240331"
|
||
types-requests = "^2.32.0.20240712"
|
||
types-tqdm = "^4.66.0.20240417"
|
||
pandas-stubs = ">=2.0.0.230412"
|
||
|
||
[tool.poetry.group.build.dependencies]
|
||
twine = ">=5.1.1,<7.0.0"
|
||
|
||
[tool.bandit]
|
||
target = ["test", "supervision"]
|
||
tests = ["B201", "B301", "B318", "B314", "B303", "B413", "B412", "B410"]
|
||
|
||
[tool.autoflake]
|
||
check = true
|
||
imports = ["cv2", "supervision"]
|
||
|
||
|
||
[tool.ruff]
|
||
target-version = "py38"
|
||
|
||
# Exclude a variety of commonly ignored directories.
|
||
exclude = [
|
||
".bzr",
|
||
".direnv",
|
||
".eggs",
|
||
".git",
|
||
".git-rewrite",
|
||
".hg",
|
||
".mypy_cache",
|
||
".nox",
|
||
".pants.d",
|
||
".pytype",
|
||
".ruff_cache",
|
||
".svn",
|
||
".tox",
|
||
".venv",
|
||
"__pypackages__",
|
||
"_build",
|
||
"buck-out",
|
||
"build",
|
||
"dist",
|
||
"node_modules",
|
||
"venv",
|
||
"yarn-error.log",
|
||
"yarn.lock",
|
||
"docs",
|
||
]
|
||
|
||
line-length = 88
|
||
indent-width = 4
|
||
|
||
[tool.ruff.lint]
|
||
# Enable pycodestyle (`E`) and Pyflakes (`F`) codes by default.
|
||
select = ["E", "F", "I", "A", "Q", "W", "RUF"]
|
||
ignore = []
|
||
# Allow autofix for all enabled rules (when `--fix`) is provided.
|
||
fixable = [
|
||
"A",
|
||
"B",
|
||
"C",
|
||
"D",
|
||
"E",
|
||
"F",
|
||
"G",
|
||
"I",
|
||
"N",
|
||
"Q",
|
||
"S",
|
||
"T",
|
||
"W",
|
||
"ANN",
|
||
"ARG",
|
||
"BLE",
|
||
"COM",
|
||
"DJ",
|
||
"DTZ",
|
||
"EM",
|
||
"ERA",
|
||
"EXE",
|
||
"FBT",
|
||
"ICN",
|
||
"INP",
|
||
"ISC",
|
||
"NPY",
|
||
"PD",
|
||
"PGH",
|
||
"PIE",
|
||
"PL",
|
||
"PT",
|
||
"PTH",
|
||
"PYI",
|
||
"RET",
|
||
"RSE",
|
||
"RUF",
|
||
"SIM",
|
||
"SLF",
|
||
"TCH",
|
||
"TID",
|
||
"TRY",
|
||
"UP",
|
||
"YTT",
|
||
]
|
||
unfixable = []
|
||
# Allow unused variables when underscore-prefixed.
|
||
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
||
pylint.max-args = 20
|
||
|
||
[tool.ruff.lint.flake8-quotes]
|
||
inline-quotes = "double"
|
||
multiline-quotes = "double"
|
||
docstring-quotes = "double"
|
||
|
||
[tool.ruff.lint.pydocstyle]
|
||
convention = "google"
|
||
|
||
[tool.ruff.lint.per-file-ignores]
|
||
"__init__.py" = ["E402", "F401"]
|
||
|
||
[tool.ruff.lint.mccabe]
|
||
# Flag errors (`C901`) whenever the complexity level exceeds 5.
|
||
max-complexity = 20
|
||
|
||
[tool.ruff.lint.isort]
|
||
order-by-type = true
|
||
no-sections = false
|
||
|
||
[tool.ruff.format]
|
||
# Like Black, use double quotes for strings.
|
||
quote-style = "double"
|
||
|
||
# Like Black, indent with spaces, rather than tabs.
|
||
indent-style = "space"
|
||
|
||
# Like Black, respect magic trailing commas.
|
||
skip-magic-trailing-comma = false
|
||
|
||
# Like Black, automatically detect the appropriate line ending.
|
||
line-ending = "auto"
|
||
|
||
[tool.codespell]
|
||
skip = "*.ipynb,poetry.lock"
|
||
count = true
|
||
quiet-level = 3
|
||
ignore-words-list = "STrack,sTrack,strack"
|
||
|
||
[tool.setuptools]
|
||
include-package-data = false
|
||
|
||
[tool.setuptools.packages.find]
|
||
exclude = ["docs*", "test*", "examples*"]
|
||
|
||
[build-system]
|
||
requires = ["poetry-core"]
|
||
build-backend = "poetry.core.masonry.api"
|