blob: 76cc69f06b7492d3d4373ed092439209011ec56e [file] [log] [blame]
# 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"]