Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,22 +25,22 @@ repos:

# Clang format the codebase automatically
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: "v20.1.5"
rev: "v20.1.7"
hooks:
- id: clang-format
types_or: [c++, c, cuda]

# Ruff, the Python auto-correcting linter/formatter written in Rust
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.11.12
rev: v0.12.2
hooks:
- id: ruff
- id: ruff-check
args: ["--fix", "--show-fixes"]
- id: ruff-format

# Check static types with mypy
- repo: https://github.com/pre-commit/mirrors-mypy
rev: "v1.16.0"
rev: "v1.16.1"
hooks:
- id: mypy
args: []
Expand Down Expand Up @@ -142,7 +142,7 @@ repos:

# Check schemas on some of our YAML files
- repo: https://github.com/python-jsonschema/check-jsonschema
rev: 0.33.0
rev: 0.33.2
hooks:
- id: check-readthedocs
- id: check-github-workflows
Expand Down
17 changes: 9 additions & 8 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -143,9 +143,6 @@ messages_control.disable = [
"consider-using-f-string", # triggers in _version.py incorrectly
]

[tool.ruff]
src = ["src"]

[tool.ruff.lint]
extend-select = [
"B", # flake8-bugbear
Expand All @@ -166,17 +163,21 @@ extend-select = [
"YTT", # flake8-2020
]
ignore = [
"PLR", # Design related pylint
"PT011", # Too broad with raises in pytest
"SIM118", # iter(x) is not always the same as iter(x.keys())
"PLR", # Design related pylint
"PT011", # Too broad with raises in pytest
"SIM118", # iter(x) is not always the same as iter(x.keys())
"PLC0415", # We import in functions for various reasons
]
unfixable = ["T20"]
isort.known-first-party = ["env", "pybind11_cross_module_tests", "pybind11_tests"]
isort.required-imports = ["from __future__ import annotations"]


[tool.ruff.lint.per-file-ignores]
"tests/**" = ["EM", "N", "E721"]
"tests/**" = [
"EM",
"N",
"E721",
]
"tests/test_call_policies.py" = ["PLC1901"]

[tool.repo-review]
Expand Down
8 changes: 8 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,8 @@ def __init__(self, string):
def __str__(self):
return self.string

__hash__ = None

def __eq__(self, other):
# Ignore constructor/destructor output which is prefixed with "###"
a = [
Expand All @@ -94,6 +96,8 @@ def __eq__(self, other):
class Unordered(Output):
"""Custom comparison for output without strict line ordering"""

__hash__ = None

def __eq__(self, other):
a = _split_and_sort(self.string)
b = _split_and_sort(other)
Expand All @@ -116,6 +120,8 @@ def __enter__(self):
def __exit__(self, *args):
self.out, self.err = self.capfd.readouterr()

__hash__ = None

def __eq__(self, other):
a = Output(self.out)
b = other
Expand Down Expand Up @@ -155,6 +161,8 @@ def __call__(self, thing):
self.string = self.sanitizer(thing)
return self

__hash__ = None

def __eq__(self, other):
a = self.string
b = _strip_and_dedent(other)
Expand Down
6 changes: 4 additions & 2 deletions tests/test_class_sh_basic.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,9 @@ def test_cannot_disown_use_count_ne_1(pass_f, rtrn_f):
assert str(exc_info.value) == ("Cannot disown use_count != 1 (load_as_unique_ptr).")


def test_unique_ptr_roundtrip(num_round_trips=1000):
def test_unique_ptr_roundtrip():
# Multiple roundtrips to stress-test instance registration/deregistration.
num_round_trips = 1000
recycled = m.atyp("passenger")
for _ in range(num_round_trips):
id_orig = id(recycled)
Expand Down Expand Up @@ -164,8 +165,9 @@ def test_rtrn_unique_ptr_cref():
assert obj0 is obj1


def test_unique_ptr_cref_roundtrip(num_round_trips=1000):
def test_unique_ptr_cref_roundtrip():
# Multiple roundtrips to stress-test implementation.
num_round_trips = 1000
orig = m.atyp("passenger")
mtxt_orig = m.get_mtxt(orig)
recycled = orig
Expand Down
2 changes: 1 addition & 1 deletion tests/test_warnings.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
def test_warning_simple(
expected_category, expected_message, expected_value, module_function
):
with pytest.warns(Warning) as excinfo:
with pytest.warns(Warning, match="This is") as excinfo:
value = module_function()

assert issubclass(excinfo[0].category, expected_category)
Expand Down
Loading