Skip to content

Commit 2b33b16

Browse files
Update strawberry to latest (#4598)
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Patrick Arminio <patrick91@users.noreply.github.com>
1 parent ecaeda3 commit 2b33b16

File tree

14 files changed

+1197
-1232
lines changed

14 files changed

+1197
-1232
lines changed

backend/api/blog/schema.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
@strawberry.type
1111
class BlogQuery:
1212
@strawberry.field
13-
def blog_posts(self, info) -> list[PostType]:
13+
def blog_posts(self, info: Info) -> list[PostType]:
1414
return [
1515
PostType(
1616
id=post.id,

backend/api/cms/types.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import strawberry
22
from strawberry import ID
3+
4+
from api.context import Info
35
from api.pages.types import Page
46

57
from ..helpers.i18n import make_localized_resolver
@@ -25,5 +27,5 @@ class Menu:
2527
title: str = strawberry.field(resolver=make_localized_resolver("title"))
2628

2729
@strawberry.field
28-
def links(self, info) -> list[MenuLink]:
30+
def links(self, info: Info) -> list[MenuLink]:
2931
return self.links.all()

backend/api/context.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
from dataclasses import dataclass
2-
from typing import Any, Dict, Optional
2+
from typing import Any, Dict, Optional, TypeAlias
33

44
from django.http.request import HttpRequest
5+
from strawberry.types import Info as StrawberryInfo
56

67
from voting.models.vote import Vote
78

@@ -15,6 +16,4 @@ class Context:
1516
_my_votes: Optional[Dict[int, Vote]] = None
1617

1718

18-
@dataclass
19-
class Info:
20-
context: Context
19+
Info: TypeAlias = StrawberryInfo[Context, Any]

backend/api/helpers/images.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
from typing import Optional
22

3+
from api.context import Info
34

4-
def resolve_image(root, info) -> Optional[str]:
5+
6+
def resolve_image(root, info: Info) -> Optional[str]:
57
if not root.image:
68
return None
79

backend/api/job_board/types.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import strawberry
44

5+
from api.context import Info
6+
57

68
@strawberry.type
79
class JobListing:
@@ -14,7 +16,7 @@ class JobListing:
1416
apply_url: str
1517

1618
@strawberry.field
17-
def company_logo(self, info) -> Optional[str]:
19+
def company_logo(self, info: Info) -> Optional[str]:
1820
if not self.company_logo_url:
1921
return None
2022

backend/api/participants/types.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
from typing import TYPE_CHECKING, Annotated
22

3-
from submissions.models import Submission as SubmissionModel
4-
from strawberry.scalars import JSON
53
import strawberry
64
from strawberry import ID
5+
from strawberry.scalars import JSON
76

7+
from api.context import Info
88
from api.submissions.permissions import CanSeeSubmissionPrivateFields
9+
from submissions.models import Submission as SubmissionModel
910

1011
if TYPE_CHECKING:
1112
from api.submissions.types import Submission
@@ -35,29 +36,29 @@ class Participant:
3536

3637
@strawberry.field
3738
def proposals(
38-
self, info
39+
self, info: Info
3940
) -> list[Annotated["Submission", strawberry.lazy("api.submissions.types")]]:
4041
return SubmissionModel.objects.for_conference(self._conference_id).filter(
4142
speaker_id=self._user_id,
4243
status=SubmissionModel.STATUS.accepted,
4344
)
4445

4546
@strawberry.field
46-
def speaker_availabilities(self, info) -> JSON | None:
47+
def speaker_availabilities(self, info: Info) -> JSON | None:
4748
if not CanSeeSubmissionPrivateFields().has_permission(self, info):
4849
return None
4950

5051
return self._speaker_availabilities
5152

5253
@strawberry.field
53-
def speaker_level(self, info) -> str | None:
54+
def speaker_level(self, info: Info) -> str | None:
5455
if not CanSeeSubmissionPrivateFields().has_permission(self, info):
5556
return None
5657

5758
return self._speaker_level
5859

5960
@strawberry.field
60-
def previous_talk_video(self, info) -> str | None:
61+
def previous_talk_video(self, info: Info) -> str | None:
6162
if not CanSeeSubmissionPrivateFields().has_permission(self, info):
6263
return None
6364

backend/api/schedule/types/day.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def slots(
4040
return list(self.slots.all())
4141

4242
@strawberry.field
43-
def running_events(self, info) -> list[ScheduleItem]:
43+
def running_events(self, info: Info) -> list[ScheduleItem]:
4444
current_slot = self.slots.filter(
4545
hour__lte=timezone.now().astimezone(self.conference.timezone)
4646
).last()

backend/api/schedule/types/schedule_item.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def spaces_left(self) -> int:
6262
return self.actual_attendees_total_capacity - self.attendees.count()
6363

6464
@strawberry.field
65-
def user_has_spot(self, info) -> bool:
65+
def user_has_spot(self, info: Info) -> bool:
6666
user_id = info.context.request.user.id
6767
return self.attendees.filter(user_id=user_id).exists()
6868

@@ -114,18 +114,18 @@ def keynote(
114114
return Keynote.from_django_model(self.keynote, info)
115115

116116
@strawberry.field
117-
def rooms(self, info) -> list[Room]:
117+
def rooms(self, info: Info) -> list[Room]:
118118
return self.rooms.all()
119119

120120
@strawberry.field
121-
def image(self, info) -> str | None:
121+
def image(self, info: Info) -> str | None:
122122
if not self.image:
123123
return None
124124

125125
return info.context.request.build_absolute_uri(self.image.url)
126126

127127
@strawberry.field(name="slidoUrl")
128-
def _slido_url(self, info) -> str:
128+
def _slido_url(self, info: Info) -> str:
129129
if self.slido_url:
130130
return self.slido_url
131131

backend/api/schedule/types/slot.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
from enum import Enum
2-
from django.utils import timezone
32
from datetime import datetime, time, timedelta
3+
4+
from django.utils import timezone
5+
6+
from api.context import Info
47
from api.schedule.types.schedule_item import ScheduleItem
58

69

@@ -31,12 +34,12 @@ def is_live(self) -> bool:
3134
return self.hour < now.time() < end
3235

3336
@strawberry.field
34-
def end_hour(self, info) -> time:
37+
def end_hour(self) -> time:
3538
return (
3639
datetime.combine(timezone.datetime.today(), self.hour)
3740
+ timedelta(minutes=self.duration)
3841
).time()
3942

4043
@strawberry.field
41-
def items(self, info) -> list[ScheduleItem]:
44+
def items(self, info: Info) -> list[ScheduleItem]:
4245
return self.items.all()

backend/api/sponsors/types.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import strawberry
55
from strawberry import ID
66

7+
from api.context import Info
78
from sponsors.models import SponsorLevel as SponsorLevelModel
89

910

@@ -13,11 +14,11 @@ class Sponsor:
1314
name: str
1415

1516
@strawberry.field
16-
def link(self, info) -> str:
17+
def link(self, info: Info) -> str:
1718
return self.link
1819

1920
@strawberry.field
20-
def image(self, info) -> str:
21+
def image(self, info: Info) -> str:
2122
if not self.image:
2223
return ""
2324

0 commit comments

Comments
 (0)