content: [tool.black]
  line-length = 100
  target-version = ['py39', 'py310', 'py311']
  include = '\.pyi?$'
  exclude = '''
  /(
      \.git
    | \.venv
    | venv
    | __pycache__
    | \.cache
    | build
    | dist
  )/
  '''
  
  [tool.ruff]
  line-length = 100
  target-version = "py39"
  exclude = [
      ".git",
      "__pycache__",
      "venv",
      ".venv",
      "build",
      "dist",
      ".cache",
  ]
  
  [tool.ruff.lint]
  select = [
      "E",  # pycodestyle errors
      "W",  # pycodestyle warnings
      "F",  # pyflakes
      "I",  # isort
      "B",  # flake8-bugbear
      "C4", # flake8-comprehensions
      "UP", # pyupgrade
  ]
  ignore = [
      "E501",  # line too long (handled by black)
      "B008",  # do not perform function calls in argument defaults
      "B905",  # zip() without an explicit strict= parameter
  ]
  
  [tool.mypy]
  python_version = "3.9"
  warn_return_any = true
  warn_unused_configs = true
  disallow_untyped_defs = true
  disallow_any_unimported = false
  no_implicit_optional = true
  warn_redundant_casts = true
  warn_unused_ignores = true
  warn_no_return = true
  check_untyped_defs = true
  strict_equality = true
  
  [[tool.mypy.overrides]]
  module = [
      "transformers.*",
      "torch.*",
      "torchaudio.*",
      "accelerate.*",
      "librosa.*",
      "soundfile.*",
      "pydub.*",
      "dotenv.*",
      "huggingface_hub.*",
      "bitsandbytes.*"
  ]
  ignore_missing_imports = true
  
  [tool.pytest.ini_options]
  minversion = "7.0"
  addopts = "-ra -q --strict-markers"
  testpaths = [
      ".",
  ]
  python_files = "test_*.py"
  asyncio_mode = "auto"
  
  [tool.coverage.run]
  source = ["."]
  omit = [
      "*/tests/*",
      "*/test_*.py",
      "*/__pycache__/*",
      "*/venv/*",
      "*/.venv/*",
  ]
  
  [tool.coverage.report]
  exclude_lines = [
      "pragma: no cover",
      "def __repr__",
      "raise AssertionError",
      "raise NotImplementedError",
      "if __name__ == .__main__.:",
      "if TYPE_CHECKING:",
  ]