[tool.poetry] name = "supervision" version = "0.17.0rc2" 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", "YOLOv5", "YOLOv8", "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.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', '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,<3.12.0" numpy = "^1.20.0" matplotlib = "^3.7.1" pyyaml = "^6.0" pillow = ">=9.4,<11.0" opencv-python = { version = "^4.8.0.74", optional = true } opencv-python-headless = "^4.8.0.74" scipy = "^1.9.0" requests = { version = "^2.31.0", optional = true } tqdm = { version = "^4.66.1", optional = true } [tool.poetry.extras] desktop = ["opencv-python"] assets = ["requests","tqdm"] [tool.poetry.group.dev.dependencies] twine = "^4.0.2" pytest = "^7.2.2" wheel = ">=0.40,<0.42" notebook = ">=6.5.3,<8.0.0" build = ">=0.10,<1.1" ruff = ">=0.0.280,<0.1.6" isort = "^5.12.0" black = "^23.7.0" mypy = "^1.4.1" pre-commit = "^3.3.3" flake8 = { version = "*", python = ">=3.8.1,<3.12.0" } [tool.poetry.group.docs.dependencies] mkdocs-material = "^9.1.4" mkdocstrings = {extras = ["python"], version = ">=0.20,<0.24"} [tool.flake8] exclude = ".venv" max-complexity = 10 max-line-length = 88 extend-ignore = """ W503, E203, E701, C901, """ per-file-ignores = """ __init__.py: F401 supervision/assets/list.py: E501 test/utils/test_file.py: W291 """ [tool.isort] line_length = 88 profile = "black" [tool.bandit] target = ["test", "supervision"] tests = ["B201", "B301"] [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" # 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 = [] # 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", "supervision/assets/list.py" ] # Same as Black. line-length = 88 # Allow unused variables when underscore-prefixed. dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" [tool.ruff.flake8-quotes] inline-quotes = "double" multiline-quotes = "double" docstring-quotes = "double" [tool.ruff.pydocstyle] convention = "google" [tool.ruff.per-file-ignores] "__init__.py" = ["E402","F401"] "supervision/assets/list.py" = ["E501"] "test/utils/test_file.py" = ["W291"] [tool.ruff.pylint] max-args = 20 [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"