# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

exclude = ["__base.pyi"] # Skip generated code
line-length = 88
show-fixes = true

[analyze]
detect-string-imports = true

[format]
docstring-code-format = true
docstring-code-line-length = 60
skip-magic-trailing-comma = false

[lint]
extend-select = ["D400"]
select = [
  "ANN",    # flake8-annotations
  "B",      # flake8-bugbear
  "C4",     # flake8-comprehensions
  "D",      # flake8-docstrings
  "E",      # pycodestyle
  "EM",     # flake8-errmsg
  "F",      # pyflakes
  "FA",     # flake8-future-annotations
  "FBT001", # flake8-boolean-trap
  "I",      # isort
  "ICN",    # flake8-import-conventions
  "INT",    # flake8-gettext
  "PERF",   # perflint
  "PIE",    # flake8-pie
  "PT",     # flake8-pytest-style
  "PTH",    # flake8-use-pathlib
  "PYI",    # flake8-pyi
  "SIM",    # flake8-simplify
  "TD",     # flake8-todos
  "TID",    # flake8-tidy-imports
  "TRY",    # tryceratops
  "UP",     # pyupgrade
  "W",      # pycodestyle
]

[lint.pycodestyle]
ignore-overlong-task-comments = true
max-doc-length = 88
max-line-length = 88

[lint.pydocstyle]
convention = "numpy"

[lint.flake8-tidy-imports]
ban-relative-imports = "all"

[lint.flake8-type-checking]
strict = true

[lint.isort]
known-first-party = ["opendal"]

[lint.per-file-ignores]
"*.pyi" = ["PYI021", "ANN401", "D418"]
"benchmark/*" = ["D100", "D101", "D103", "ANN201"]
"tests/*" = ["D101", "D100", "D103", "ANN201", "ANN001"]
