content: [build-system]
  requires = ["setuptools>=45", "wheel", "setuptools_scm>=6.2"]
  
  [tool.black]
  line-length = 100
  target-version = ['py38']
  skip-string-normalization = true
  
  [tool.pytest.ini_options]
  console_output_style = "count"
  addopts = "--cov=./ --cov-report=xml --verbose"
  markers = "network: tests requiring a network connection"
  
  [tool.ruff]
  line-length = 100
  target-version = "py39"
  builtins = ["ellipsis"]
  # Exclude a variety of commonly ignored directories.
  exclude = [
      ".bzr",
      ".direnv",
      ".eggs",
      ".git",
      ".hg",
      ".mypy_cache",
      ".nox",
      ".pants.d",
      ".ruff_cache",
      ".svn",
      ".tox",
      ".venv",
      "__pypackages__",
      "_build",
      "buck-out",
      "build",
      "dist",
      "node_modules",
      "venv",
  ]
  per-file-ignores = {}
  # E402: module level import not at top of file
  # E501: line too long - let black worry about that
  # E731: do not assign a lambda expression, use a def
  ignore = [
      "E402",
      "E501",
      "E731",
  ]
  select = [
      # Pyflakes
      "F",
      # Pycodestyle
      "E",
      "W",
      # isort
      "I",
      # Pyupgrade
      "UP",
  ]
  
  
  [tool.ruff.mccabe]
  max-complexity = 18
  
  [tool.ruff.isort]
  known-first-party = ["cmweather"]
  