content: [tool.mypy]
  no_implicit_optional = false
  
  [tool.ruff]
  target-version = "py39"
  line-length = 120
  include = ["**/pyproject.toml", "*.ipynb", "*.py", "*.pyi"]
  lint.select = [
    "C4",   # flake8-comprehensions
    "E",    # pycodestyle error
    "F",    # pyflakes
    "FA",   # flake8-future-annotations
    "FLY",  # flynt
    "I",    # isort
    "ICN",  # flake8-import-conventions
    "ISC",  # flake8-implicit-str-concat
    "PD",   # pandas-vet
    "PERF", # perflint
    "PIE",  # flake8-pie
    "PL",   # pylint
    "PT",   # flake8-pytest-style
    "PYI",  # flakes8-pyi
    "Q",    # flake8-quotes
    "RET",  # flake8-return
    "RSE",  # flake8-raise
    "RUF",  # Ruff-specific rules
    "SIM",  # flake8-simplify
    "SLOT", # flake8-slots
    "TCH",  # flake8-type-checking
    "TID",  # tidy imports
    "TID",  # flake8-tidy-imports
    "UP",   # pyupgrade
    "W",    # pycodestyle warning
    "YTT",  # flake8-2020
  ]
  lint.ignore = [
    "C408",  # Unnecessary dict call - rewrite as a literal
    "E731",  # Do not assign a lambda expression, use a def
    "PD901", # pandas-df-variable-name
    "PLR",   # pylint refactor
    "PT006", # pytest-parametrize-names-wrong-type
    "E741",  # ambiguous variable name -- turn off due to miller indices h, k, l
    "E722",  # do not use bare 'except' -- should be fixed but too much tech debt to fix now
    "RET505",  # Unnecessary else after return
    "SIM300",  # Yoda conditions are not allowed
    "PLW2901", # loop variable is overwritten
  ]
  lint.pydocstyle.convention = "google"
  lint.isort.known-third-party = ["wandb"]
  