content: # Copyright 2023-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
  #
  # Redistribution and use in source and binary forms, with or without
  # modification, are permitted provided that the following conditions
  # are met:
  #  * Redistributions of source code must retain the above copyright
  #    notice, this list of conditions and the following disclaimer.
  #  * Redistributions in binary form must reproduce the above copyright
  #    notice, this list of conditions and the following disclaimer in the
  #    documentation and/or other materials provided with the distribution.
  #  * Neither the name of NVIDIA CORPORATION nor the names of its
  #    contributors may be used to endorse or promote products derived
  #    from this software without specific prior written permission.
  #
  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
  # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  # PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  # OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
  [project]
  name = "triton_cli"
  readme = "README.md"
  description = "Triton CLI - CLI tool to simplify Triton's debugging and development."
  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.10",
      "Programming Language :: Python :: 3.11",
      "Operating System :: Unix",
  ]
  authors = []
  maintainers = []
  keywords = []
  requires-python = ">=3.10,<4"
  # TODO: Add [gpu] set of dependencies for trtllm once it's available on pypi
  dependencies = [
      # Client deps - generally versioned together
      "grpcio>=1.67.0",
      # Use explicit client version matching genai-perf version for tagged release
      "tritonclient[all] == 2.55.0",
      "genai-perf @ git+https://github.com/triton-inference-server/perf_analyzer.git@r25.02#subdirectory=genai-perf",
      # Misc deps
      "directory-tree == 0.0.4", # may remove in future
      # https://github.com/docker/docker-py/issues/3256#issuecomment-2376439000
      "docker == 7.1.0",
      # TODO: rely on tritonclient to pull in protobuf and numpy dependencies?
      "numpy >=1.21,<2",
      "protobuf>=5.29.3,<6.0dev",
      "prometheus-client == 0.19.0",
      "psutil >= 5.9.5", # may remove later
      "rich >= 13.9.4",
      # TODO: Test on cpu-only machine if [cuda] dependency is an issue,
      "huggingface-hub >= 0.19.4",
      # Testing
      "pytest >= 8.1.1", # may remove later
      "pytest-timeout", # may remove later
      "pytest-mock >= 3.13.0", # may remove later
  ]
  
  # CLI Entrypoint
  [project.scripts]
  triton = "triton_cli.main:main"
  
  [project.urls]
  "Homepage" = "https://github.com/triton-inference-server/triton_cli"
  "Bug Tracker" = "https://github.com/triton-inference-server/triton_cli/issues"
  
  # Build
  [build-system]
  requires = ["hatchling"]
  build-backend = "hatchling.build"
  
  [tool.hatch.version]
  path = "src/triton_cli/__init__.py"
  
  [tool.hatch.metadata]
  allow-direct-references = true
  
  # Pre-commit hook tool configs
  [tool.codespell]
  # note: pre-commit passes explicit lists of files here, which this skip file list doesn't override -
  # this is only to allow you to run codespell interactively
  skip = "./.git,./.github"
  # ignore short words, and typename parameters like OffsetT
  ignore-regex = "\\b(.{1,4}|[A-Z]\\w*T)\\b"
  # use the 'clear' dictionary for unambiguous spelling mistakes
  builtin = "clear"
  # disable warnings about binary files and wrong encoding
  quiet-level = 3
  
  # Linting/formatting
  [tool.ruff]
  # Same as Black.
  line-length = 88
  indent-width = 4
  # Skip linting on external TRT-LLM files we mostly use as-is
  exclude = ["src/triton_cli/trt_llm/checkpoint_scripts",
             "src/triton_cli/templates/trt_llm"]
  