1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
|
[tool.bumpversion]
current_version = "0.23.2"
commit = true
tag = true
tag_name = "{new_version}"
[[tool.bumpversion.files]]
filename = 'CHANGELOG.rst'
search = "\\(unreleased\\)$"
replace = "({now:%Y-%m-%d})"
regex = true
[[tool.bumpversion.files]]
filename = "docs/conf.py"
[[tool.bumpversion.files]]
filename = "setup.py"
parse = "version\\s*=\\s*['\"](?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
[tool.coverage.report]
exclude_also = [
"if TYPE_CHECKING:",
]
[tool.mypy]
ignore_missing_imports = false
implicit_reexport = false
[[tool.mypy.overrides]]
module = "tests.*"
allow_untyped_defs = true
allow_incomplete_defs = true
[[tool.mypy.overrides]]
module = "web_poet.example"
ignore_errors = true
[[tool.mypy.overrides]]
module = "tests.po_lib_to_return.*"
# Ignore mypy errors since the Page Objects contain arbitrary reference values
# used for assertions which have varying types. This upsets mypy.
ignore_errors = true
[tool.pytest.ini_options]
asyncio_mode = "strict"
asyncio_default_fixture_loop_scope = "function"
[tool.ruff]
target-version = "py310" # until we migrate away from setup.py
[tool.ruff.lint]
extend-select = [
# flake8-bugbear
"B",
# flake8-comprehensions
"C4",
# pydocstyle
"D",
# flake8-future-annotations
"FA",
# flynt
"FLY",
# refurb
"FURB",
# isort
"I",
# flake8-implicit-str-concat
"ISC",
# flake8-logging
"LOG",
# Perflint
"PERF",
# pygrep-hooks
"PGH",
# flake8-pie
"PIE",
# pylint
"PL",
# flake8-pytest-style
"PT",
# flake8-use-pathlib
"PTH",
# flake8-pyi
"PYI",
# flake8-quotes
"Q",
# flake8-return
"RET",
# flake8-raise
"RSE",
# Ruff-specific rules
"RUF",
# flake8-bandit
"S",
# flake8-simplify
"SIM",
# flake8-slots
"SLOT",
# flake8-debugger
"T10",
# flake8-type-checking
"TC",
# pyupgrade
"UP",
# pycodestyle warnings
"W",
# flake8-2020
"YTT",
]
ignore = [
# Missing docstring in public module
"D100",
# Missing docstring in public class
"D101",
# Missing docstring in public function
"D103",
# Missing docstring in public package
"D104",
# Missing docstring in magic method
"D105",
# Missing docstring in __init__
"D107",
# One-line docstring should fit on one line with quotes
"D200",
# No blank lines allowed after function docstring
"D202",
# 1 blank line required between summary line and description
"D205",
# Multi-line docstring closing quotes should be on a separate line
"D209",
# First line should end with a period
"D400",
# First line should be in imperative mood; try rephrasing
"D401",
# First line should not be the function's "signature"
"D402",
# Too many return statements
"PLR0911",
# Too many branches
"PLR0912",
# Too many arguments in function definition
"PLR0913",
# Too many statements
"PLR0915",
# Magic value used in comparison
"PLR2004",
# Mutable class attributes should be annotated with `typing.ClassVar`
"RUF012",
# Use of `assert` detected
"S101",
# Move application import {} into a type-checking block
# (The fix can break singledispatch() and/or andi.)
"TC001",
# Add `from __future__ import annotations` to simplify
# (The fix can break singledispatch() and/or andi.)
"FA100",
]
[tool.ruff.lint.per-file-ignores]
# F401: Ignore "imported but unused" errors in __init__ files, as those
# imports are there to expose submodule functions so they can be imported
# directly from that module
# F403: Ignore * imports in these files
# D102: Missing docstring in public method
# S: flake8-bandit
# B018: Found useless expression.
"web_poet/__init__.py" = ["F401", "F403"]
"web_poet/exceptions/__init__.py" = ["F401", "F403"]
"web_poet/page_inputs/__init__.py" = ["F401", "F403"]
"web_poet/serialization/__init__.py" = ["F401", "F403"]
"web_poet/testing/__init__.py" = ["F401", "F403"]
"web_poet/testing/pytest.py" = ["D102"]
"tests/**" = ["B018", "D102", "S"]
"web_poet/example.py" = ["S"]
# Documentation examples may miss docstrings and include undefined, example
# names.
"docs/**" = ["D102", "F821"]
[tool.ruff.lint.pydocstyle]
convention = "pep257"
|