[tool.poetry] name = "supervision" version = "0.22.0" description = "A set of easy-to-use utils that will come in handy in any Computer Vision project" authors = ["Piotr Skalski "] maintainers = ["Piotr Skalski "] readme = "README.md" license = "MIT" packages = [{ include = "supervision" }] homepage = "https://github.com/roboflow/supervision" repository = "https://github.com/roboflow/supervision" documentation = "https://github.com/roboflow/supervision/blob/main/README.md" 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" numpy = [ { version = ">=1.21.2,<1.23.3", python = "<=3.10" }, { version = ">=1.23.3", python = ">3.10" }, ] scipy = [ { version = "1.10.0", python = "<3.9" }, { version = "^1.10.0", python = ">=3.9" }, ] matplotlib = ">=3.6.0" pyyaml = ">=5.3" defusedxml = "^0.7.1" opencv-python = { version = ">=4.5.5.64", optional = true } opencv-python-headless = ">=4.5.5.64" requests = { version = ">=2.26.0,<=2.32.3", optional = true } tqdm = { version = ">=4.62.3,<=4.66.5", optional = true } pillow = ">=9.4" [tool.poetry.extras] desktop = ["opencv-python"] assets = ["requests", "tqdm"] [tool.poetry.group.dev.dependencies] twine = "^5.1.1" pytest = ">=7.2.2,<9.0.0" wheel = ">=0.40,<0.45" 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 = { extras = ["python"], version = ">=0.20,<0.26" } 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.2.3" mkdocs-git-revision-date-localized-plugin = "^1.2.4" [tool.isort] line_length = 88 profile = "black" [tool.bandit] target = ["test", "supervision"] tests = ["B201", "B301", "B318", "B314", "B303", "B413", "B412", "B410"] [tool.autoflake] check = true imports = ["cv2", "supervision"] [tool.black] target-version = ["py38"] line-length = 88 include = '\.pyi?$' exclude = ''' /( \.git | \.hg | \.mypy_cache | \.tox | \.venv | _build | buck-out | build | dist | docs )/ ''' [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"] 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.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.setuptools] include-package-data = false [tool.setuptools.packages.find] exclude = ["docs*", "test*", "examples*"] [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api"