Skip to content

Commit e7bd125

Browse files
committed
mypy fix
1 parent 4bd827c commit e7bd125

File tree

5 files changed

+36
-17
lines changed

5 files changed

+36
-17
lines changed

.pre-commit-config.yaml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,17 @@ repos:
99
- repo: https://github.com/astral-sh/ruff-pre-commit
1010
rev: v0.12.1
1111
hooks:
12-
- id: ruff
13-
args: ["check", "crudadmin", "--fix"]
12+
- id: ruff-check
13+
args: ["crudadmin", "--fix"]
1414
- id: ruff-format
1515
args: ["crudadmin"]
1616

17-
- repo: https://github.com/pre-commit/mirrors-mypy
18-
rev: v1.16.1
17+
- repo: local
1918
hooks:
2019
- id: mypy
21-
args: ["crudadmin", "--strict"]
20+
name: mypy
21+
entry: uv run mypy crudadmin/
22+
language: system
23+
types: [python]
24+
pass_filenames: false
25+
args: [--config-file=pyproject.toml]

crudadmin/session/backends/redis.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -339,8 +339,15 @@ async def get_user_sessions(self, user_id: int) -> list[str]:
339339
user_sessions_key = self.get_user_sessions_key(user_id)
340340

341341
try:
342-
members = await self.client.smembers(user_sessions_key)
343-
return [m.decode("utf-8") if isinstance(m, bytes) else m for m in members]
342+
members = self.client.smembers(user_sessions_key)
343+
if not hasattr(members, "__await__"):
344+
raise TypeError(
345+
f"Expected awaitable from smembers, got {type(members)}"
346+
)
347+
members_await = await members
348+
return [
349+
m.decode("utf-8") if isinstance(m, bytes) else m for m in members_await
350+
]
344351
except self.RedisError as e:
345352
logger.error(f"Error getting user sessions: {e}")
346353
raise

pyproject.toml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -152,12 +152,20 @@ ignore = [
152152
known-third-party = ["fastapi", "pydantic", "starlette"]
153153

154154
[tool.mypy]
155-
python_version = "3.8"
156-
strict = true
155+
python_version = "3.9"
157156
warn_return_any = true
158157
warn_unused_configs = true
159-
disallow_untyped_defs = true
160-
disallow_incomplete_defs = true
158+
disallow_untyped_defs = false
159+
disallow_incomplete_defs = false
160+
check_untyped_defs = true
161+
disallow_untyped_decorators = false
162+
no_implicit_optional = true
163+
strict_optional = true
164+
warn_redundant_casts = true
165+
warn_unused_ignores = true
166+
warn_no_return = true
167+
warn_unreachable = true
168+
161169

162170
[tool.coverage.run]
163171
source = ["crudadmin"]

tests/event/test_models.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ def test_create_admin_event_log_repr_method(self):
5252
repr_str = repr(instance)
5353
assert "AdminEventLog" in repr_str
5454
assert "id=1" in repr_str
55-
assert any(s in repr_str for s in ("event_type=create", "event_type=EventType.CREATE"))
55+
assert any(
56+
s in repr_str for s in ("event_type=create", "event_type=EventType.CREATE")
57+
)
5658
assert "user_id=123" in repr_str
5759

5860
def test_create_admin_event_log_returns_existing_class(self):

tests/session/test_integration.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,9 @@ class TestSessionManagerIntegration:
1717
@pytest.fixture
1818
def session_manager_with_mocks(self, mock_session_storage, mock_csrf_storage):
1919
"""Create a session manager with mock storage."""
20-
with (
21-
patch(
22-
"crudadmin.session.manager.get_session_storage",
23-
return_value=mock_session_storage,
24-
),
20+
with patch(
21+
"crudadmin.session.manager.get_session_storage",
22+
return_value=mock_session_storage,
2523
):
2624
manager = SessionManager(session_storage=mock_session_storage)
2725
manager.csrf_storage = mock_csrf_storage

0 commit comments

Comments
 (0)