|
a |
|
b/pyproject.toml |
|
|
1 |
# Ultralyticsv5 YOLO 🚀, AGPL-3.0 license |
|
|
2 |
|
|
|
3 |
# Overview: |
|
|
4 |
# This pyproject.toml file manages the build, packaging, and distribution of the Ultralytics library. |
|
|
5 |
# It defines essential project metadata, dependencies, and settings used to develop and deploy the library. |
|
|
6 |
|
|
|
7 |
# Key Sections: |
|
|
8 |
# - [build-system]: Specifies the build requirements and backend (e.g., setuptools, wheel). |
|
|
9 |
# - [project]: Includes details like name, version, description, authors, dependencies and more. |
|
|
10 |
# - [project.optional-dependencies]: Provides additional, optional packages for extended features. |
|
|
11 |
# - [tool.*]: Configures settings for various tools (pytest, yapf, etc.) used in the project. |
|
|
12 |
|
|
|
13 |
# Installation: |
|
|
14 |
# The Ultralytics library can be installed using the command: 'pip install ultralytics' |
|
|
15 |
# For development purposes, you can install the package in editable mode with: 'pip install -e .' |
|
|
16 |
# This approach allows for real-time code modifications without the need for re-installation. |
|
|
17 |
|
|
|
18 |
# Documentation: |
|
|
19 |
# For comprehensive documentation and usage instructions, visit: https://docs.ultralytics.com |
|
|
20 |
|
|
|
21 |
[build-system] |
|
|
22 |
requires = ["setuptools>=43.0.0", "wheel"] |
|
|
23 |
build-backend = "setuptools.build_meta" |
|
|
24 |
|
|
|
25 |
# Project settings ----------------------------------------------------------------------------------------------------- |
|
|
26 |
[project] |
|
|
27 |
name = "YOLOv5" |
|
|
28 |
description = "Ultralytics YOLOv5 for SOTA object detection, instance segmentation and image classification." |
|
|
29 |
readme = "README.md" |
|
|
30 |
requires-python = ">=3.8" |
|
|
31 |
license = { "text" = "AGPL-3.0" } |
|
|
32 |
keywords = ["machine-learning", "deep-learning", "computer-vision", "ML", "DL", "AI", "YOLO", "YOLOv3", "YOLOv5", "YOLOv8", "HUB", "Ultralytics"] |
|
|
33 |
authors = [ |
|
|
34 |
{ name = "Glenn Jocher" }, |
|
|
35 |
{ name = "Ayush Chaurasia" }, |
|
|
36 |
{ name = "Jing Qiu" } |
|
|
37 |
] |
|
|
38 |
maintainers = [ |
|
|
39 |
{ name = "Glenn Jocher" }, |
|
|
40 |
{ name = "Ayush Chaurasia" }, |
|
|
41 |
{ name = "Jing Qiu" } |
|
|
42 |
] |
|
|
43 |
classifiers = [ |
|
|
44 |
"Development Status :: 4 - Beta", |
|
|
45 |
"Intended Audience :: Developers", |
|
|
46 |
"Intended Audience :: Education", |
|
|
47 |
"Intended Audience :: Science/Research", |
|
|
48 |
"License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", |
|
|
49 |
"Programming Language :: Python :: 3", |
|
|
50 |
"Programming Language :: Python :: 3.8", |
|
|
51 |
"Programming Language :: Python :: 3.9", |
|
|
52 |
"Programming Language :: Python :: 3.10", |
|
|
53 |
"Programming Language :: Python :: 3.11", |
|
|
54 |
"Topic :: Software Development", |
|
|
55 |
"Topic :: Scientific/Engineering", |
|
|
56 |
"Topic :: Scientific/Engineering :: Artificial Intelligence", |
|
|
57 |
"Topic :: Scientific/Engineering :: Image Recognition", |
|
|
58 |
"Operating System :: POSIX :: Linux", |
|
|
59 |
"Operating System :: MacOS", |
|
|
60 |
"Operating System :: Microsoft :: Windows", |
|
|
61 |
] |
|
|
62 |
|
|
|
63 |
# Required dependencies ------------------------------------------------------------------------------------------------ |
|
|
64 |
dependencies = [ |
|
|
65 |
"matplotlib>=3.3.0", |
|
|
66 |
"numpy>=1.22.2", |
|
|
67 |
"opencv-python>=4.6.0", |
|
|
68 |
"pillow>=7.1.2", |
|
|
69 |
"pyyaml>=5.3.1", |
|
|
70 |
"requests>=2.23.0", |
|
|
71 |
"scipy>=1.4.1", |
|
|
72 |
"torch>=1.8.0", |
|
|
73 |
"torchvision>=0.9.0", |
|
|
74 |
"tqdm>=4.64.0", # progress bars |
|
|
75 |
"psutil", # system utilization |
|
|
76 |
"py-cpuinfo", # display CPU info |
|
|
77 |
"thop>=0.1.1", # FLOPs computation |
|
|
78 |
"pandas>=1.1.4", |
|
|
79 |
"seaborn>=0.11.0", # plotting |
|
|
80 |
"ultralytics>=8.0.232" |
|
|
81 |
] |
|
|
82 |
|
|
|
83 |
# Optional dependencies ------------------------------------------------------------------------------------------------ |
|
|
84 |
[project.optional-dependencies] |
|
|
85 |
dev = [ |
|
|
86 |
"ipython", |
|
|
87 |
"check-manifest", |
|
|
88 |
"pre-commit", |
|
|
89 |
"pytest", |
|
|
90 |
"pytest-cov", |
|
|
91 |
"coverage[toml]", |
|
|
92 |
"mkdocs-material", |
|
|
93 |
"mkdocstrings[python]", |
|
|
94 |
"mkdocs-redirects", # for 301 redirects |
|
|
95 |
"mkdocs-ultralytics-plugin>=0.0.34", # for meta descriptions and images, dates and authors |
|
|
96 |
] |
|
|
97 |
export = [ |
|
|
98 |
"onnx>=1.12.0", # ONNX export |
|
|
99 |
"coremltools>=7.0", # CoreML export |
|
|
100 |
"openvino-dev>=2023.0", # OpenVINO export |
|
|
101 |
"tensorflow<=2.13.1", # TF bug https://github.com/ultralytics/ultralytics/issues/5161 |
|
|
102 |
"jax<=0.4.21", # tensorflowjs bug https://github.com/google/jax/issues/18978 |
|
|
103 |
"jaxlib<=0.4.21", # tensorflowjs bug https://github.com/google/jax/issues/18978 |
|
|
104 |
"tensorflowjs>=3.9.0", # TF.js export, automatically installs tensorflow |
|
|
105 |
] |
|
|
106 |
# tensorflow>=2.4.1,<=2.13.1 # TF exports (-cpu, -aarch64, -macos) |
|
|
107 |
# tflite-support # for TFLite model metadata |
|
|
108 |
# scikit-learn==0.19.2 # CoreML quantization |
|
|
109 |
# nvidia-pyindex # TensorRT export |
|
|
110 |
# nvidia-tensorrt # TensorRT export |
|
|
111 |
logging = [ |
|
|
112 |
"comet", # https://docs.ultralytics.com/integrations/comet/ |
|
|
113 |
"tensorboard>=2.13.0", |
|
|
114 |
"dvclive>=2.12.0", |
|
|
115 |
] |
|
|
116 |
extra = [ |
|
|
117 |
"ipython", # interactive notebook |
|
|
118 |
"albumentations>=1.0.3", # training augmentations |
|
|
119 |
"pycocotools>=2.0.6", # COCO mAP |
|
|
120 |
] |
|
|
121 |
|
|
|
122 |
[project.urls] |
|
|
123 |
"Bug Reports" = "https://github.com/ultralytics/yolov5/issues" |
|
|
124 |
"Funding" = "https://ultralytics.com" |
|
|
125 |
"Source" = "https://github.com/ultralytics/yolov5/" |
|
|
126 |
|
|
|
127 |
# Tools settings ------------------------------------------------------------------------------------------------------- |
|
|
128 |
[tool.pytest] |
|
|
129 |
norecursedirs = [".git", "dist", "build"] |
|
|
130 |
addopts = "--doctest-modules --durations=30 --color=yes" |
|
|
131 |
|
|
|
132 |
[tool.isort] |
|
|
133 |
line_length = 120 |
|
|
134 |
multi_line_output = 0 |
|
|
135 |
|
|
|
136 |
[tool.ruff] |
|
|
137 |
line-length = 120 |
|
|
138 |
|
|
|
139 |
[tool.docformatter] |
|
|
140 |
wrap-summaries = 120 |
|
|
141 |
wrap-descriptions = 120 |
|
|
142 |
in-place = true |
|
|
143 |
pre-summary-newline = true |
|
|
144 |
close-quotes-on-newline = true |
|
|
145 |
|
|
|
146 |
[tool.codespell] |
|
|
147 |
ignore-words-list = "crate,nd,strack,dota,ane,segway,fo,gool,winn,commend" |
|
|
148 |
skip = '*.csv,*venv*,docs/??/,docs/mkdocs_??.yml' |