# SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # 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. [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 # this also overrides the grpc_generated folder, since it is generated # TODO add skip files for generated code # skip = "./.git,./.github,./src/grpc_generated" skip = "./.git,./.github" # ignore short words, and typename parameters like OffsetT ignore-regex = "\\b(.{1,4}|[A-Z]\\w*T)\\b" # ignore allowed words # ignoring atleast to avoid testing::AtLeast from getting flagged ignore-words-list = "atleast" # use the 'clear' dictionary for unambiguous spelling mistakes builtin = "clear" # disable warnings about binary files and wrong encoding quiet-level = 3 [tool.isort] profile = "black" use_parentheses = true multi_line_output = 3 include_trailing_comma = true force_grid_wrap = 0 ensure_newline_before_comments = true line_length = 88 balanced_wrapping = true indent = " " skip = ["build"] [tool.pytest.ini_options] minversion = "8.0" # NOTE # We ignore model.py explcitly here to avoid mypy errors with duplicate modules # pytest overrides the default mypy exclude configuration and so we exclude here as well addopts = ["-ra", "--showlocals", "--strict-markers", "--strict-config", "--mypy", "--ignore-glob=*model.py"] xfail_strict = true log_cli_level = "INFO" filterwarnings = [ "error", ] # NOTE: Can also manually mark tests with @pytest.mark.asyncio asyncio_mode = "auto" markers = [ "pre_merge: marks tests to run before merging", "nightly: marks tests to run nightly", "weekly: marks tests to run weekly" ] # Linting/formatting [tool.ruff] # Same as Black. line-length = 88 indent-width = 4 [tool.mypy] # --disable-error-code: WAR large set of errors due to mypy not being run # previously. We can slowly enable sets of errors to fix over time. # disable_error_code = [] # --explicit-package-bases: WAR errors about duplicate module names used # throughout project such as launch_workers.py # explicit_package_bases = true # NOTE # We ignore model.py explcitly here to avoid mypy errors with duplicate modules exclude = ["model.py"] # --ignore-missing-imports: WAR too many errors when developing outside # of container environment with PYTHONPATH set and packages installed. # NOTE: Can possibly move mypy from pre-commit to a github action run only in # a container with the expected environment and PYTHONPATH setup. ignore_missing_imports = true check_untyped_defs = true