content: # Copyright (c) 2021-2025, NVIDIA CORPORATION. All rights reserved.
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  [project]
  name = "triton-model-navigator"
  readme = "docs/pypi.rst"
  description = "Triton Model Navigator: An inference toolkit for optimizing and deploying machine learning models and pipelines on the Triton Inference Server and PyTriton."
  dynamic = ["version"]
  classifiers = [
      "Development Status :: 3 - Alpha",
      "Intended Audience :: Science/Research",
      "Intended Audience :: Developers",
      "Topic :: Software Development",
      "Topic :: Scientific/Engineering",
      "Programming Language :: Python",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.9",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Operating System :: POSIX",
      "Operating System :: Unix",
      "Operating System :: MacOS",
  ]
  authors = []
  maintainers = []
  keywords = ["triton", "inference", "server", "pytriton", "inference", "optimization", "service", "nvidia", "tensorrt", "onnx", "tensorflow", "pytorch", "jax"]
  license = { text = "Apache 2.0" }
  requires-python = ">=3.9,<4"
  dependencies = [
      "dacite~=1.8",
      "fire>=0.4.0",
      "jsonlines>=3.1.0",
      "loguru>=0.7.2",
      "mpmath~=1.3",
      "numpy<2",
      "onnx~=1.16",
      "onnx_graphsurgeon~=0.5",
      "onnxruntime~=1.19;platform_machine == 'aarch64' and python_version < '3.10'",
      "onnxruntime-gpu~=1.19;platform_machine == 'x86_64' and python_version < '3.10'",
      "onnxruntime~=1.20;platform_machine == 'aarch64' and python_version >= '3.10'",
      "onnxruntime-gpu~=1.20;platform_machine == 'x86_64' and python_version >= '3.10'",
      "onnxscript",
      "packaging~=24.1",
      "polygraphy>=0.49.0",
      "psutil>=5.7",
      "py-cpuinfo>=8.0",
      "pynvml~=11.5",
      "python-slugify~=8.0",
      "pyyaml~=6.0",
      "tabulate>=0.8",
      "tensorrt>=10.5.0",
      "tritonclient[grpc]~=2.47",
      "wrapt>=1.16",
      "pyee>=11.1.0",
      "rich>=13.7.1",
      "nvidia-modelopt[onnx]>=0.27.0",
  ]
  
  [project.urls]
  "Documentation" = "https://triton-inference-server.github.io/model_navigator"
  "Source" = "https://github.com/triton-inference-server/model_navigator"
  "Tracker" = "https://github.com/triton-inference-server/model_navigator/issues"
  
  [project.optional-dependencies]
  
  torch = [
      "torch",
      "torch_tensorrt>1",
      "protobuf>=4",
  ]
  tensorflow = [
      "tensorflow",
      "tf2onnx>=1.9.3",
      "protobuf>=3.18.3,<3.21.0",
  ]
  jax = [
      "jax[cuda12_pip]",
      "tensorflow",
      "tf2onnx>=1.9.3",
      "protobuf>=3.18.3,<3.21.0",
  ]
  test = [
      "GitPython >= 3.1.30",
      "pre-commit >= 2.20.0",
      "pytest >= 5.2",
      "pytest-mock >= 3.8.2",
      "pytype!=2021.11.18,!=2022.2.17",
      "pytest-unordered ~= 0.5",
      "tenacity ~= 8.4.2",
      "tox >= 3.23.1",
      "tqdm >= 4.64.1",
  ]
  doc = [
      "GitPython >= 3.1.30",
      "mike ~= 1.1.0",
      "mkdocs-htmlproofer-plugin >= 0.8.0",
      "mkdocs-material >= 8.5.6",
      "mkdocstrings[python] >= 0.24.0,<0.28.3",
      "mkdocstrings-python >= 1.7.0"
  ]
  dev = [
      "triton-model-navigator[test]",
      "triton-model-navigator[doc]",
      "build >= 0.8",
      "ipython >= 7.16",
      "pdbpp >= 0.10",
      "pip >= 21.1",
      "pre-commit >= 2.20.0",
      "psutil ~= 5.1",
      "ruff >= 0.3.0",
      "twine >= 4.0",
  ]
  
  [build-system]
  requires = [
      "setuptools>=65.3.0",
      "setuptools_scm>=2.0.0,<3",
      "wheel>=0.37.1",
  ]
  build-backend = "setuptools.build_meta"
  
  [tool.pytest.ini_options]
  addopts = [
      "--import-mode=importlib",
  ]
  pythonpath = ["."]
  
  [tool.setuptools]
  include-package-data = true
  license-files = ["LICENSE"]
  
  [tool.setuptools.packages.find]
  namespaces = false
  include = ["model_navigator"]
  
  [tool.setuptools.package-data]
  model_navigator = [
      "**/*",
  ]
  
  [tool.setuptools.dynamic]
  version = {attr = "model_navigator.__version__.__version__"}
  
  [tool.ruff]
  preview = true
  line-length = 120
  indent-width = 4
  target-version = "py39"
  
  [tool.ruff.lint]
  select = ["B", "C", "C4", "C90", "D", "E", "F", "I", "N", "W", "T", "T10", "T20", "UP", "CPY"]
  ignore = ["E266", "E501", "N818", "UP006", "UP035"]
  exclude = []
  
  [tool.ruff.lint.per-file-ignores]
  "**/__init__.py" = ["D104"]
  "**/__version__.py" = ["D100"]
  "**/{tests,docs,tools,examples}/*" = ["C416", "D"]
  "**/tests/*" = ["CPY"]
  
  [tool.ruff.lint.pydocstyle]
  convention = "google"
  
  [tool.ruff.lint.mccabe]
  max-complexity = 18
  
  [tool.ruff.lint.flake8-copyright]
  author = "NVIDIA CORPORATION"
  notice-rgx = 'Copyright \(c\) \d{4}(-\d{4})*,'
  
  [tool.ruff.format]
  quote-style = "double"
  indent-style = "space"
  skip-magic-trailing-comma = false
  line-ending = "lf"
  
  [tool.vulture]
  exclude = []
  ignore_decorators = []
  ignore_names = []
  make_whitelist = true
  min_confidence = 80
  paths = ["model_navigator"]
  sort_by_size = true
  verbose = false
  