File size: 2,567 Bytes
9422383 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | [build-system]
requires = ["setuptools==80.9.0"]
build-backend = "setuptools.build_meta"
[project]
name = "arm-yolo26n"
dynamic = ["version"]
description = "YOLO26n inference for Raspberry Pi 5"
readme = "src/runtime/api/python/arm_yolo26n/README.md"
requires-python = ">=3.13,<3.14"
license = "Apache-2.0"
dependencies = [
"numpy==2.2.4",
"opencv-python-headless==5.0.0.93",
]
[tool.setuptools]
package-dir = {"" = "src/runtime/api/python"}
packages = ["arm_yolo26n"]
[tool.setuptools.dynamic]
version = {file = ["VERSION"]}
[tool.ruff]
target-version = "py313"
line-length = 100
src = [
"src/converter",
"src/runtime/api/python/arm_yolo26n",
"benchmarks/reporting",
]
[tool.ruff.lint]
select = [
"ANN", # Missing or imprecise annotations.
"ARG", # Unused arguments.
"B", # Likely bugs found by flake8-bugbear.
"C90", # McCabe complexity.
"E4", # Import errors.
"E7", # Statement errors.
"E9", # Runtime syntax errors.
"F", # Pyflakes correctness checks.
"I", # Import ordering.
"PLR0912", # Excessive branches.
"PLR0913", # Excessive arguments.
"PLR0915", # Excessive statements.
"UP", # Obsolete Python constructs.
]
[tool.ruff.lint.mccabe]
max-complexity = 10
[tool.ruff.lint.pylint]
max-args = 6
max-branches = 10
max-statements = 40
[tool.mypy]
python_version = "3.13"
files = [
"src/converter",
"src/runtime/api/python/arm_yolo26n",
"benchmarks/reporting",
"benchmarks/ultralytics/benchmark.py",
]
strict = true
disallow_any_explicit = true
warn_unreachable = true
show_error_codes = true
pretty = true
[tool.vulture]
paths = [
"src/converter",
"src/runtime/api/python/arm_yolo26n",
"benchmarks/reporting",
"benchmarks/ultralytics/benchmark.py",
]
min_confidence = 90
sort_by_size = true
[tool.coverage.run]
branch = true
data_file = "build/coverage/python/.coverage"
omit = ["examples/.venv/*", "examples/*/output/*"]
parallel = true
patch = ["subprocess"]
relative_files = true
source = [
"benchmarks/reporting",
"examples",
"src/converter",
"src/runtime/api/python/arm_yolo26n",
]
[tool.coverage.report]
precision = 1
show_missing = true
[tool.importlinter]
root_packages = ["converter"]
[[tool.importlinter.contracts]]
name = "Converter dependencies flow toward stable contracts"
type = "layers"
exhaustive = true
containers = ["converter"]
layers = [
"validate",
"export_yolo26n",
"checkpoint_intake : weight_lowering : model_format",
"model_validation",
"checkpoint_decoder : model_contract : weight_contract",
"converter_io",
]
|