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
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ repos:
- id: check-xml
- id: check-symlinks
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.16.10
rev: v0.17.0
hooks:
- id: ruff-format
- id: ruff
Expand Down
18 changes: 9 additions & 9 deletions strawberry_django/fields/filter_types.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import datetime
import datetime as dt
import decimal
import uuid
import warnings
Expand Down Expand Up @@ -140,7 +140,7 @@ def __class_getitem__(cls, item: Any) -> type:


@strawberry.input
class DateFilterLookup(ComparisonFilterLookup[datetime.date]):
class DateFilterLookup(ComparisonFilterLookup[dt.date]):
year: ComparisonFilterLookup[int] | None = UNSET
month: ComparisonFilterLookup[int] | None = UNSET
day: ComparisonFilterLookup[int] | None = UNSET
Expand All @@ -156,7 +156,7 @@ def __class_getitem__(cls, item: Any) -> type:


@strawberry.input
class TimeFilterLookup(ComparisonFilterLookup[datetime.time]):
class TimeFilterLookup(ComparisonFilterLookup[dt.time]):
hour: ComparisonFilterLookup[int] | None = UNSET
minute: ComparisonFilterLookup[int] | None = UNSET
second: ComparisonFilterLookup[int] | None = UNSET
Expand All @@ -167,7 +167,7 @@ def __class_getitem__(cls, item: Any) -> type:


@strawberry.input
class DatetimeFilterLookup(ComparisonFilterLookup[datetime.datetime]):
class DatetimeFilterLookup(ComparisonFilterLookup[dt.datetime]):
year: ComparisonFilterLookup[int] | None = UNSET
month: ComparisonFilterLookup[int] | None = UNSET
day: ComparisonFilterLookup[int] | None = UNSET
Expand All @@ -179,8 +179,8 @@ class DatetimeFilterLookup(ComparisonFilterLookup[datetime.datetime]):
hour: ComparisonFilterLookup[int] | None = UNSET
minute: ComparisonFilterLookup[int] | None = UNSET
second: ComparisonFilterLookup[int] | None = UNSET
date: ComparisonFilterLookup[datetime.date] | None = UNSET
time: ComparisonFilterLookup[datetime.time] | None = UNSET
date: ComparisonFilterLookup[dt.date] | None = UNSET
time: ComparisonFilterLookup[dt.time] | None = UNSET

def __class_getitem__(cls, item: Any) -> type:
_warn_concrete_lookup(cls)
Expand All @@ -190,9 +190,9 @@ def __class_getitem__(cls, item: Any) -> type:
type_filter_map: dict[type, type] = {
strawberry.ID: BaseFilterLookup, # type: ignore[dict-item]
bool: BaseFilterLookup,
datetime.date: DateFilterLookup,
datetime.datetime: DatetimeFilterLookup,
datetime.time: TimeFilterLookup,
dt.date: DateFilterLookup,
dt.datetime: DatetimeFilterLookup,
dt.time: TimeFilterLookup,
decimal.Decimal: ComparisonFilterLookup,
float: ComparisonFilterLookup,
int: ComparisonFilterLookup,
Expand Down
8 changes: 4 additions & 4 deletions strawberry_django/fields/types.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import datetime
import datetime as dt
import decimal
import enum
import inspect
Expand Down Expand Up @@ -234,8 +234,8 @@ def __hash__(self):
fields.BigIntegerField: int,
fields.BooleanField: bool,
fields.CharField: str,
fields.DateField: datetime.date,
fields.DateTimeField: datetime.datetime,
fields.DateField: dt.date,
fields.DateTimeField: dt.datetime,
fields.DecimalField: decimal.Decimal,
fields.EmailField: str,
fields.FilePathField: str,
Expand All @@ -249,7 +249,7 @@ def __hash__(self):
fields.SmallAutoField: strawberry.ID,
fields.SmallIntegerField: int,
fields.TextField: str,
fields.TimeField: datetime.time,
fields.TimeField: dt.time,
fields.URLField: str,
fields.UUIDField: uuid.UUID,
json.JSONField: JSON,
Expand Down
8 changes: 4 additions & 4 deletions tests/fields/test_types.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import datetime
import datetime as dt
import decimal
import enum
import uuid
Expand Down Expand Up @@ -116,8 +116,8 @@ class Type:
("id", strawberry.ID),
("boolean", bool),
("char", str),
("date", datetime.date),
("date_time", datetime.datetime),
("date", dt.date),
("date_time", dt.datetime),
("decimal", decimal.Decimal),
("email", str),
("file", strawberry_django.DjangoFileType),
Expand All @@ -132,7 +132,7 @@ class Type:
("slug", str),
("small_integer", int),
("text", str),
("time", datetime.time),
("time", dt.time),
("url", str),
("uuid", uuid.UUID),
("json", JSON),
Expand Down
4 changes: 2 additions & 2 deletions tests/projects/schema.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import asyncio
import datetime
import datetime as dt
import decimal
from collections.abc import Iterable
from typing import Annotated, Optional, cast
Expand Down Expand Up @@ -644,7 +644,7 @@ def create_project(
decimal.Decimal,
strawberry.argument(description="The project's cost"),
],
due_date: datetime.datetime | None = None,
due_date: dt.datetime | None = None,
) -> ProjectType:
"""Create project documentation."""
if cost > 500:
Expand Down
42 changes: 19 additions & 23 deletions tests/relay/test_cursor_pagination.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import datetime
import datetime as dt
from typing import cast

import pytest
Expand Down Expand Up @@ -42,7 +42,7 @@ def days_left(
self, queryset: QuerySet, value: strawberry_django.Ordering, prefix: str
) -> "tuple[QuerySet, list[OrderBy]]":
queryset = queryset.alias(
_days_left=Value(datetime.date(2025, 12, 31)) - F(f"{prefix}due_date")
_days_left=Value(dt.date(2025, 12, 31)) - F(f"{prefix}due_date")
)
return queryset, [value.resolve("_days_left")]

Expand All @@ -62,7 +62,7 @@ def get_queryset(cls, qs: QuerySet, info):
@strawberry_django.type(Project, order=ProjectOrder)
class ProjectType(Node):
name: str
due_date: datetime.date
due_date: dt.date
milestones: DjangoCursorConnection[MilestoneType] = strawberry_django.connection()

@classmethod
Expand Down Expand Up @@ -104,10 +104,10 @@ def test_objects():
Project.objects.create(id=6, name="Project D")
Project.objects.create(id=4, name="Project E")

Milestone.objects.create(id=1, project=pb, due_date=datetime.date(2025, 6, 1))
Milestone.objects.create(id=2, project=pb, due_date=datetime.date(2025, 6, 2))
Milestone.objects.create(id=3, project=pc1, due_date=datetime.date(2025, 6, 1))
Milestone.objects.create(id=4, project=pa, due_date=datetime.date(2025, 6, 5))
Milestone.objects.create(id=1, project=pb, due_date=dt.date(2025, 6, 1))
Milestone.objects.create(id=2, project=pb, due_date=dt.date(2025, 6, 2))
Milestone.objects.create(id=3, project=pc1, due_date=dt.date(2025, 6, 1))
Milestone.objects.create(id=4, project=pa, due_date=dt.date(2025, 6, 5))


@pytest.mark.django_db(transaction=True)
Expand Down Expand Up @@ -976,12 +976,8 @@ def test_cursor_pagination_order_field_deferred(test_objects):
@pytest.mark.parametrize("offset", [0, 1, 2, 3])
def test_cursor_pagination_order_with_nulls(order, pks, offset):
pa = Project.objects.create(id=1, name="Project A", due_date=None)
pc = Project.objects.create(
id=2, name="Project C", due_date=datetime.date(2025, 6, 2)
)
pb = Project.objects.create(
id=3, name="Project B", due_date=datetime.date(2025, 6, 5)
)
pc = Project.objects.create(id=2, name="Project C", due_date=dt.date(2025, 6, 2))
pb = Project.objects.create(id=3, name="Project B", due_date=dt.date(2025, 6, 5))
pd = Project.objects.create(id=4, name="Project D", due_date=None)
projects_lookup = {p.pk: p for p in (pa, pb, pc, pd)}
projects = [projects_lookup[pk] for pk in pks]
Expand Down Expand Up @@ -1109,11 +1105,11 @@ def test_nested_cursor_pagination_in_single():
pa = Project.objects.create(id=1, name="Project A")
pb = Project.objects.create(id=2, name="Project B")

Milestone.objects.create(id=1, project=pb, due_date=datetime.date(2025, 6, 1))
Milestone.objects.create(id=2, project=pb, due_date=datetime.date(2025, 6, 2))
Milestone.objects.create(id=3, project=pb, due_date=datetime.date(2025, 6, 1))
Milestone.objects.create(id=4, project=pa, due_date=datetime.date(2025, 6, 5))
Milestone.objects.create(id=5, project=pa, due_date=datetime.date(2025, 6, 1))
Milestone.objects.create(id=1, project=pb, due_date=dt.date(2025, 6, 1))
Milestone.objects.create(id=2, project=pb, due_date=dt.date(2025, 6, 2))
Milestone.objects.create(id=3, project=pb, due_date=dt.date(2025, 6, 1))
Milestone.objects.create(id=4, project=pa, due_date=dt.date(2025, 6, 5))
Milestone.objects.create(id=5, project=pa, due_date=dt.date(2025, 6, 1))

query = """
query TestQuery($id: ID!) {
Expand Down Expand Up @@ -1166,11 +1162,11 @@ def test_nested_cursor_pagination():
pa = Project.objects.create(id=1, name="Project A")
pb = Project.objects.create(id=2, name="Project B")

Milestone.objects.create(id=1, project=pb, due_date=datetime.date(2025, 6, 1))
Milestone.objects.create(id=2, project=pb, due_date=datetime.date(2025, 6, 2))
Milestone.objects.create(id=3, project=pb, due_date=datetime.date(2025, 6, 1))
Milestone.objects.create(id=4, project=pa, due_date=datetime.date(2025, 6, 5))
Milestone.objects.create(id=5, project=pa, due_date=datetime.date(2025, 6, 1))
Milestone.objects.create(id=1, project=pb, due_date=dt.date(2025, 6, 1))
Milestone.objects.create(id=2, project=pb, due_date=dt.date(2025, 6, 2))
Milestone.objects.create(id=3, project=pb, due_date=dt.date(2025, 6, 1))
Milestone.objects.create(id=4, project=pa, due_date=dt.date(2025, 6, 5))
Milestone.objects.create(id=5, project=pa, due_date=dt.date(2025, 6, 1))

query = """
query TestQuery {
Expand Down
6 changes: 3 additions & 3 deletions tests/test_optimizer.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import datetime
import datetime as dt
import operator
from typing import Any, cast

Expand Down Expand Up @@ -956,7 +956,7 @@ def test_query_annotate(db, gql_client: GraphQLTestClient):
expected.append(p_res)
for p in ProjectFactory.create_batch(
2,
due_date=today - datetime.timedelta(days=1),
due_date=today - dt.timedelta(days=1),
):
ms = MilestoneFactory.create_batch(2, project=p)
assert p.due_date is not None
Expand Down Expand Up @@ -3761,7 +3761,7 @@ class Query:
)

project = ProjectFactory.create(name="P1")
due_date = datetime.date(2026, 1, 1)
due_date = dt.date(2026, 1, 1)
milestone = MilestoneFactory.create(project=project, name="M1", due_date=due_date)
IssueFactory.create(milestone=milestone, name="I1")

Expand Down
Loading