content: [build-system]
  requires = ["setuptools >= 43", "wheel", "setuptools_scm[toml] >= 3.4"]
  build-backend = "setuptools.build_meta"
  
  [tool.coverage.run]
  omit = [
      "*/setup.py",
      "*/tests/*",
      "*/build/*",
      "*/dist/*",
      "*/.tox/*",
      "*/.egg/*",
  ]
  
  [tool.coverage.report]
  exclude_lines = [
      "pragma: no cover",
  ]
  
  [tool.mypy]
  strict = true
  ignore_missing_imports = true
  show_error_codes = true
  
  [tool.pylint.format]
  max-line-length = 88
  
  [tool.pylint.messages_control]
  disable = [
      "duplicate-code",
      "fixme",
      "import-error",
      "logging-fstring-interpolation",
      "subprocess-run-check",
      "too-few-public-methods",
      "too-many-arguments",
      "too-many-branches",
      "too-many-instance-attributes",
      "too-many-lines",
      "too-many-locals",
      "too-many-nested-blocks",
      "too-many-positional-arguments",
      "too-many-statements",
      "unspecified-encoding",
  ]
  
  [tool.pytest.ini_options]
  log_level = "DEBUG"
  
  [tool.ruff]
  fix = true
  target-version = "py39"
  
  [tool.ruff.lint]
  select = [
      # flake8-comprehensions
      "C4",
      # pycodestyle
      "E",
      # Pyflakes
      "F",
      # Flynt
      "FLY",
      # isort
      "I",
      # Perflint
      "PERF",
      # Ruff-specific rules
      "RUF",
      # flake8-simplify
      "SIM",
      # flake8-type-checking
      "TCH",
      # pyupgrade
      "UP",
      # pycodestyle
      "W",
  ]
  
  [tool.setuptools_scm]
  