content: [build-system]
  requires = [
    "build",
    "setuptools >= 42",
    "setuptools_scm[toml]>=3.4"
  ]
  build-backend = "setuptools.build_meta"
  
  
  [tool.black]
  target-version = ['py310', 'py311', 'py312', 'py313']
  line-length = 79
  # Don't change quote style - keep whatever quotes are already used
  skip-string-normalization = true
  exclude = '''
  (
    /(
        \.eggs
      | \.git
      | \.hg
      | \.mypy_cache
      | \.tox
      | \.venv
      | _build
      | buck-out
      | build
      | dist
      | examples
      | vendored
      | _vendor
    )/
    | 
  )
  '''
  
  [tool.ruff]
  line-length = 79
  lint.select = [
      "E", "F", "W", #flake8
      "UP", # pyupgrade
      "I", # isort
      "BLE", # flake8-blind-exception
      "B", # flake8-bugbear
      "A", # flake8-builtins
      "C4", # flake8-comprehensions
      "ISC", # flake8-implicit-str-concat
      "G", # flake8-logging-format
      "PIE", # flake8-pie
      "SIM", # flake8-simplify
  ]
  lint.ignore = [
      "A004",  # Import `pow` is shadowing a Python builtin, we want to use the math module's pow
      "E501", # line too long. let black handle this
      "UP006", "UP007", # type annotation. As using magicgui require runtime type annotation then we disable this.
      "SIM117", # flake8-simplify - some of merged with statements are not looking great with black, reanble after drop python 3.9
  ]
  
  target-version = "py310"  # we set to the lowest version that we support
  fix = true
  