5cbd3f29e3
Fuzz / Run fuzz harnesses (${{ github.event_name == 'schedule' && 'nightly' || 'smoke' }}) (push) Has been cancelled
Create Releases / call-mac (push) Has been cancelled
Create Releases / call-linux (push) Has been cancelled
Create Releases / call-sdist (push) Has been cancelled
Create Releases / call-win (push) Has been cancelled
Create Releases / call-pyodide (push) Has been cancelled
Windows_No_Exception_CI / build (x64, 3.10) (push) Has been cancelled
Check URLs / build (push) Has been cancelled
Create Releases / Attest CI build artifacts (push) Has been cancelled
Create Releases / Check for Publish release build to pypi (push) Has been cancelled
Create Releases / Check for Publish preview build to test.pypi-weekly (push) Has been cancelled
Create Releases / Publish preview build to test.pypi-weekly (push) Has been cancelled
Create Releases / Check for Publish release build to test.pypi (rc-candidates) (push) Has been cancelled
Create Releases / Publish release build to test.pypi (push) Has been cancelled
Create Releases / Check for Publish preview build to pypi-weekly (push) Has been cancelled
Create Releases / Publish preview build to pypi-weekly (push) Has been cancelled
Create Releases / Publish release build to pypi (push) Has been cancelled
Create Releases / test source distribution (push) Has been cancelled
clang-tidy / clang-tidy (push) Has been cancelled
Lint / Validate SBOM (push) Has been cancelled
Lint / Enforce style (push) Has been cancelled
CI / Test windows-2022, 3.14, External, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test windows-latest, 3.10, Internal, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test windows-latest, 3.14, Internal, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test windows-latest, 3.14t, Internal, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test ubuntu-24.04, 3.14, Internal, debug=1, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test ubuntu-24.04, 3.14, External, debug=0, unity_build=1, onnx_ml=1, autogen=1 (push) Has been cancelled
CI / Test ubuntu-24.04, 3.14, External, debug=0, unity_build=0, onnx_ml=0, autogen=0 (push) Has been cancelled
CI / Test macos-latest, 3.10, Internal, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test macos-latest, 3.14, Internal, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test macos-latest, 3.14t, Internal, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test ubuntu-24.04, 3.14, External, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test ubuntu-24.04, 3.10, Internal, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test ubuntu-24.04, 3.14, Internal, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
CI / Test ubuntu-24.04, 3.14t, Internal, debug=0, unity_build=0, onnx_ml=1, autogen=0 (push) Has been cancelled
Pixi CI / Install and lint (ubuntu-24.04-arm) (push) Has been cancelled
Pixi CI / Install and lint (windows-2022) (push) Has been cancelled
Pixi CI / Xcode generator build (push) Has been cancelled
Pixi CI / Install and test (macos-latest, default) (push) Has been cancelled
Pixi CI / Install and test (ubuntu-24.04-arm, default) (push) Has been cancelled
Pixi CI / Install and test (ubuntu-latest, default) (push) Has been cancelled
Pixi CI / Install and test (windows-2022, default) (push) Has been cancelled
Pixi CI / Install and test (macos-latest, oldies) (push) Has been cancelled
Pixi CI / Install and test (ubuntu-24.04-arm, oldies) (push) Has been cancelled
Pixi CI / Install and test (ubuntu-latest, oldies) (push) Has been cancelled
Pixi CI / Install and test (windows-2022, oldies) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Copilot Setup Steps / copilot-setup-steps (push) Has been cancelled
Generate and publish ONNX docs / build (push) Has been cancelled
Generate and publish ONNX docs / deploy (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
283 lines
8.9 KiB
TOML
283 lines
8.9 KiB
TOML
# Copyright (c) ONNX Project Contributors
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
[build-system]
|
|
requires = ["scikit-build-core>=0.11", "protobuf==6.31.1"]
|
|
build-backend = "scikit_build_core.build"
|
|
|
|
[project]
|
|
name = "onnx"
|
|
dynamic = ["version"]
|
|
description = "Open Neural Network Exchange"
|
|
readme = "README.md"
|
|
authors = [
|
|
{name = "ONNX Contributors", email = "onnx-technical-discuss@lists.lfaidata.foundation"},
|
|
]
|
|
classifiers = [
|
|
"Programming Language :: Python :: 3",
|
|
]
|
|
license = "Apache-2.0"
|
|
# scikit-build-core expects dependencies here rather than in a requirements.txt file
|
|
requires-python = ">=3.10"
|
|
dependencies = [
|
|
"numpy>=1.23.2",
|
|
"protobuf>=6.31.1",
|
|
"typing_extensions>=4.7.1",
|
|
"ml_dtypes>=0.5.4",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
reference = ["Pillow"]
|
|
|
|
[project.urls]
|
|
Homepage = "https://onnx.ai/"
|
|
Repository = "https://github.com/onnx/onnx"
|
|
|
|
[project.scripts]
|
|
backend-test-tools = "onnx.backend.test.cmd_tools:main"
|
|
check-model = "onnx.bin.checker:check_model"
|
|
check-node = "onnx.bin.checker:check_node"
|
|
|
|
[tool.scikit-build]
|
|
# using `.setuptools-cmake-build` for historical reasons.
|
|
build-dir = ".setuptools-cmake-build"
|
|
cmake.version = ">=3.26"
|
|
cmake.build-type = "Release"
|
|
wheel.packages = ["onnx"]
|
|
wheel.exclude = ["**.proto3", "**.md", "**/CMakeLists.txt"]
|
|
wheel.py-api = "cp312"
|
|
sdist.include = [
|
|
"LICENSE",
|
|
"README.md",
|
|
"CMakeLists.txt",
|
|
"VERSION_NUMBER",
|
|
"sbom.cdx.json",
|
|
"cmake/**",
|
|
"tools/**",
|
|
"onnx/**",
|
|
"pyproject.toml",
|
|
]
|
|
sdist.exclude = ["*"]
|
|
|
|
[tool.scikit-build.metadata.version]
|
|
provider = "scikit_build_core.metadata.regex"
|
|
input = "VERSION_NUMBER"
|
|
regex = '(?P<value>\S+)'
|
|
|
|
[tool.scikit-build.cmake.define]
|
|
ONNX_BUILD_PYTHON = "ON"
|
|
ONNX_INSTALL = "OFF"
|
|
ONNX_ML = {env = "ONNX_ML", default = "ON"}
|
|
ONNX_NAMESPACE = {env = "ONNX_NAMESPACE", default = "onnx"}
|
|
ONNX_BUILD_TESTS = {env = "ONNX_BUILD_TESTS", default = "OFF"}
|
|
ONNX_VERIFY_PROTO3 = {env = "ONNX_VERIFY_PROTO3", default = "OFF"}
|
|
ONNX_DISABLE_EXCEPTIONS = {env = "ONNX_DISABLE_EXCEPTIONS", default = "OFF"}
|
|
ONNX_DISABLE_STATIC_REGISTRATION = {env = "ONNX_DISABLE_STATIC_REGISTRATION", default = "OFF"}
|
|
ONNX_USE_MSVC_STATIC_RUNTIME = {env = "USE_MSVC_STATIC_RUNTIME", default = "OFF"}
|
|
|
|
# Disable stable ABI on FreeBSD (not supported)
|
|
[[tool.scikit-build.overrides]]
|
|
if.platform-system = "freebsd"
|
|
wheel.py-api = ""
|
|
|
|
# Use Debug build type when DEBUG or COVERAGE is set
|
|
[[tool.scikit-build.overrides]]
|
|
if.env.DEBUG = "1"
|
|
cmake.build-type = "Debug"
|
|
|
|
[[tool.scikit-build.overrides]]
|
|
if.env.COVERAGE = "1"
|
|
cmake.build-type = "Debug"
|
|
cmake.define.ONNX_COVERAGE = "ON"
|
|
|
|
[tool.cibuildwheel.pyodide]
|
|
build = "cp313-pyodide_wasm32"
|
|
|
|
[tool.cibuildwheel]
|
|
test-command = "pytest {project}/onnx/test"
|
|
test-requires = ["pytest", "Pillow"]
|
|
|
|
[tool.cibuildwheel.linux]
|
|
manylinux-x86_64-image = "manylinux_2_28"
|
|
manylinux-aarch64-image = "manylinux_2_28"
|
|
|
|
[tool.cibuildwheel.macos]
|
|
archs = ["universal2"]
|
|
environment = { MACOSX_DEPLOYMENT_TARGET = "12.0" }
|
|
|
|
[tool.check-wheel-contents]
|
|
ignore = ["W002"]
|
|
|
|
[tool.pytest.ini_options]
|
|
addopts = "--tb=short --color=yes"
|
|
testpaths = [
|
|
"onnx/test",
|
|
"onnx/examples",
|
|
]
|
|
|
|
[tool.mypy]
|
|
follow_imports = "silent"
|
|
strict_optional = true
|
|
warn_return_any = true
|
|
warn_no_return = true
|
|
# TODO warn_unused_ignores = true
|
|
warn_redundant_casts = true
|
|
warn_incomplete_stub = true
|
|
# TODO disallow_untyped_calls = true
|
|
check_untyped_defs = true
|
|
# Allow bare generics like np.ndarray
|
|
disallow_any_generics = false
|
|
no_implicit_optional = true
|
|
# TODO disallow_incomplete_defs = true
|
|
# TODO disallow_subclassing_any = true
|
|
warn_unused_configs = true
|
|
show_error_codes = true
|
|
show_column_numbers = true
|
|
ignore_missing_imports = true
|
|
# NOTE: Do not grow the exclude list. Edit .lintrunner.toml instead
|
|
exclude = []
|
|
|
|
# NOTE: Avoid adding overrides unless for exceptional cases. Prefer inline ignores.
|
|
# If you must ignore error for the whole file, consider adapting the example
|
|
# `# mypy: disable-error-code="misc,arg-type,type-arg"`
|
|
# and put this comment on the top of the file.
|
|
[[tool.mypy.overrides]]
|
|
module = [
|
|
'onnx.onnx_data_pb',
|
|
'onnx.onnx_data_pb2',
|
|
'onnx.onnx_pb',
|
|
'onnx.onnx_pb2',
|
|
'onnx.onnx_ml_pb2',
|
|
'onnx.onnx_operators_pb',
|
|
'onnx.onnx_operators_ml_pb2',
|
|
]
|
|
ignore_errors = true
|
|
|
|
[tool.pylint.message_control]
|
|
disable = [
|
|
"format",
|
|
"import-error",
|
|
"invalid-name",
|
|
"line-too-long",
|
|
"missing-docstring",
|
|
"no-name-in-module",
|
|
"too-few-public-methods",
|
|
"use-dict-literal", # Dict literals are sometimes preferable when creating kwargs
|
|
"useless-return",
|
|
]
|
|
|
|
[tool.ruff]
|
|
# NOTE: Do not create an exclude list. Edit .lintrunner.toml instead
|
|
target-version = "py310"
|
|
unsafe-fixes = true
|
|
lint.select = [
|
|
"A", # flake8-builtins
|
|
"ARG", # flake8-unused-arguments
|
|
"B", # flake8-bugbear
|
|
"BLE", # flake8-blind-except
|
|
"C4", # flake8-comprehensions
|
|
"C90", # mccabe complexity
|
|
"D", # pydocstyle
|
|
"DTZ", # flake8-datetimez
|
|
"E", # pycodestyle
|
|
"F", # Pyflakes
|
|
"FA", # flake8-future-annotations
|
|
"FLY", # flynt
|
|
"FURB", # refurb
|
|
"G", # flake8-logging-format
|
|
"I", # isort
|
|
"ISC", # flake8-implicit-str-concat
|
|
"LOG", # flake8-logging
|
|
"N", # pep8-naming
|
|
"NPY", # modern numpy
|
|
"PERF", # Perflint
|
|
"PGH", # pygrep-hooks
|
|
"PIE", # flake8-pie
|
|
"PL", # pylint
|
|
"PYI", # flake8-pyi
|
|
"RSE", # flake8-raise
|
|
"RUF", # Ruff-specific rules
|
|
"S", # flake8-bandit
|
|
"SIM", # flake8-simplify
|
|
"SLOT", # flake8-slot
|
|
"T10", # flake8-debugger
|
|
"T20", # flake8-print
|
|
"TC", # flake8-type-checking
|
|
"TID", # Disallow relative imports
|
|
"TRY", # flake8-try-except-raise
|
|
"UP", # pyupgrade
|
|
"W", # pycodestyle
|
|
"YTT", # flake8-2020
|
|
"RET", # flake8-return
|
|
]
|
|
# NOTE: Refrain from growing the ignore list unless for exceptional cases.
|
|
# Always include a comment to explain why.
|
|
lint.ignore = [
|
|
"D1", # D1 is for missing docstrings, which is not yet enforced.
|
|
"D205", # D205 Too strict. "1 blank line required between summary line and description"
|
|
"D400",
|
|
"D415",
|
|
"E501", # Line length controlled by black
|
|
"N803", # Argument casing
|
|
"N806", # Relax: Variable name in function should be lowercase
|
|
"N999", # Module names
|
|
"NPY002", # np.random.Generator may not be preferred in all cases
|
|
"PLR0912", # Too many branches
|
|
"PLR0913", # Too many arguments to function call
|
|
"PLR0915", # Too many statements
|
|
"PYI011", # Allow protobuf enums as defaults to function arguments
|
|
"PYI021", # Allow docstrings in pyi files
|
|
"PYI041", # int | float is sometimes more clear than float
|
|
"RUF015", # next(iter(...)) sometimes obscures the intent when we access the 0th element of a shape
|
|
"RUF022", # We may want to keep __all__ unsorted for better readability
|
|
"SIM102", # We don't prefer always combining if branches
|
|
"SIM108", # We don't always encourage ternary operators
|
|
"SIM114", # Don't always combine if branches for debugability
|
|
"SIM116", # Don't use dict lookup to replace if-else
|
|
"S101", # assert is used extensively in tests and validation
|
|
"C901", # Complex functions are acceptable alongside PLR0912/PLR0915
|
|
"TRY003", # Messages can be constructed in the exception
|
|
]
|
|
|
|
[tool.ruff.lint.flake8-builtins]
|
|
builtins-ignorelist = ["id", "input"]
|
|
|
|
[tool.ruff.lint.flake8-tidy-imports]
|
|
# Disallow all relative imports.
|
|
ban-relative-imports = "all"
|
|
|
|
[tool.ruff.lint.pydocstyle]
|
|
convention = "google"
|
|
|
|
[tool.ruff.lint.isort]
|
|
required-imports = ["from __future__ import annotations"]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
# NOTE: Refrain from growing the ignore list unless for exceptional cases.
|
|
# Prefer inline ignores with `noqa: xxx`.
|
|
# Eventually this list should become empty.
|
|
"**/*_test*" = ["N802"] # Function casing
|
|
"onnx/backend/test/**" = ["PLR2004", "S", "T20"] # Magic numbers, security, print allowed in tests
|
|
"onnx/backend/test/case/**" = ["N802"] # Function casing
|
|
"onnx/reference/ops/**" = [
|
|
"N801", # Class casing
|
|
"PLR2004", # Magic numbers
|
|
]
|
|
"onnx/test/reference_evaluator_test.py" = ["C408"] # dict(...) -> { ... }
|
|
"onnx/test/**" = ["PLR2004", "S311", "T20"] # Magic numbers, non-crypto random, print allowed in tests
|
|
"onnx/onnx_cpp2py_export/defs.pyi" = ["N802"]
|
|
"onnx/fuzz/**" = [
|
|
"N802", # TestOneInput is the required atheris entry-point name
|
|
"BLE001", # Broad except is intentional: fuzz harnesses swallow all expected errors
|
|
"PLR2004", # Magic numbers are fine in low-level fuzz scaffolding
|
|
"S112", # try-except-continue is the correct pattern for per-version fuzzing
|
|
"PERF203", # try-except in loop is unavoidable in the version-converter harness
|
|
"S311", # Non-crypto random is fine for fuzz input shuffling
|
|
]
|
|
"onnx/gen_proto.py" = ["T20"] # Build script uses print for progress
|
|
"onnx/defs/gen_*.py" = ["T20"] # Code generators use print for output
|
|
"tools/**" = ["T20"] # Build tools use print for progress
|
|
"examples/**" = ["T20"] # Example notebooks use print for output
|
|
"docs/**" = ["T20"] # Doc scripts use print for debugging
|