@@ -67,7 +67,10 @@ def fetch_meeting_attendance_task():
6767
6868@shared_task
6969def resolve_meeting_materials_task (
70- * , meetings : list [str ]= None , meetings_since : str = None , meetings_until : str = None
70+ * , # only allow kw arguments
71+ meetings : list [str ] | None = None ,
72+ meetings_since : str | None = None ,
73+ meetings_until : str | None = None
7174):
7275 """Run materials resolver on meetings
7376
@@ -77,11 +80,14 @@ def resolve_meeting_materials_task(
7780 """
7881 # IETF-1 = 1986-01-16
7982 EARLIEST_MEETING_DATE = datetime .datetime (1986 , 1 , 1 )
83+ meetings_since_dt : datetime .datetime | None = None
84+ meetings_until_dt : datetime .datetime | None = None
85+
8086 if meetings_since == "zero" :
81- meetings_since = EARLIEST_MEETING_DATE
87+ meetings_since_dt = EARLIEST_MEETING_DATE
8288 elif meetings_since is not None :
8389 try :
84- meetings_since = datetime .datetime .fromisoformat (meetings_since )
90+ meetings_since_dt = datetime .datetime .fromisoformat (meetings_since )
8591 except ValueError :
8692 log .log (
8793 "Failed to parse meetings_since='{meetings_since}' with fromisoformat"
@@ -90,37 +96,37 @@ def resolve_meeting_materials_task(
9096
9197 if meetings_until is not None :
9298 try :
93- meetings_until = datetime .datetime .fromisoformat (meetings_until )
99+ meetings_until_dt = datetime .datetime .fromisoformat (meetings_until )
94100 except ValueError :
95101 log .log (
96102 "Failed to parse meetings_until='{meetings_until}' with fromisoformat"
97103 )
98104 raise
99- if meetings_since is None :
105+ if meetings_since_dt is None :
100106 # if we only got meetings_until, start from the first meeting
101- meetings_since = EARLIEST_MEETING_DATE
107+ meetings_since_dt = EARLIEST_MEETING_DATE
102108
103109 if meetings is None :
104- if meetings_since is None :
110+ if meetings_since_dt is None :
105111 log .log ("No meetings requested, doing nothing." )
106112 return
107- meetings = Meeting .objects .filter (date__gte = meetings_since )
108- if meetings_until is not None :
109- meetings = meetings .filter (date__lte = meetings_until )
113+ meetings_qs = Meeting .objects .filter (date__gte = meetings_since_dt )
114+ if meetings_until_dt is not None :
115+ meetings_qs = meetings_qs .filter (date__lte = meetings_until_dt )
110116 log .log (
111117 "Resolving materials for meetings "
112- f"between { meetings_since } and { meetings_until } "
118+ f"between { meetings_since_dt } and { meetings_until_dt } "
113119 )
114120 else :
115- log .log (f"Resolving materials for meetings since { meetings_since } " )
121+ log .log (f"Resolving materials for meetings since { meetings_since_dt } " )
116122 else :
117- if meetings_since is not None :
123+ if meetings_since_dt is not None :
118124 log .log (
119125 "Ignoring meetings_since and meetings_until "
120126 "because specific meetings were requested."
121127 )
122- meetings = Meeting .objects .filter (number__in = meetings )
123- for meeting in meetings .order_by ("date" ):
128+ meetings_qs = Meeting .objects .filter (number__in = meetings )
129+ for meeting in meetings_qs .order_by ("date" ):
124130 log .log (
125131 f"Resolving materials for { meeting .type_id } "
126132 f"meeting { meeting .number } ({ meeting .date } )..."
0 commit comments