15
15
TYPE_CHECKING ,
16
16
Any ,
17
17
Callable ,
18
- Sequence ,
19
18
TypedDict ,
20
19
TypeVar ,
21
20
cast ,
49
48
)
50
49
51
50
if TYPE_CHECKING :
51
+ from collections .abc import Sequence
52
+
52
53
from findmy .accessory import RollingKeyPairSource
53
54
from findmy .keys import HasHashedPublicKey
54
55
from findmy .util .types import MaybeCoro
@@ -248,13 +249,28 @@ def fetch_reports(
248
249
date_to : datetime | None ,
249
250
) -> MaybeCoro [list [LocationReport ]]: ...
250
251
252
+ @overload
253
+ def fetch_reports (
254
+ self ,
255
+ keys : Sequence [RollingKeyPairSource ],
256
+ date_from : datetime ,
257
+ date_to : datetime | None ,
258
+ ) -> MaybeCoro [dict [RollingKeyPairSource , list [LocationReport ]]]: ...
259
+
251
260
@abstractmethod
252
261
def fetch_reports (
253
262
self ,
254
- keys : HasHashedPublicKey | Sequence [HasHashedPublicKey ] | RollingKeyPairSource ,
263
+ keys : HasHashedPublicKey
264
+ | Sequence [HasHashedPublicKey ]
265
+ | RollingKeyPairSource
266
+ | Sequence [RollingKeyPairSource ],
255
267
date_from : datetime ,
256
268
date_to : datetime | None ,
257
- ) -> MaybeCoro [list [LocationReport ] | dict [HasHashedPublicKey , list [LocationReport ]]]:
269
+ ) -> MaybeCoro [
270
+ list [LocationReport ]
271
+ | dict [HasHashedPublicKey , list [LocationReport ]]
272
+ | dict [RollingKeyPairSource , list [LocationReport ]]
273
+ ]:
258
274
"""
259
275
Fetch location reports for `HasHashedPublicKey`s between `date_from` and `date_end`.
260
276
@@ -286,12 +302,27 @@ def fetch_last_reports(
286
302
hours : int = 7 * 24 ,
287
303
) -> MaybeCoro [list [LocationReport ]]: ...
288
304
305
+ @overload
306
+ @abstractmethod
307
+ def fetch_last_reports (
308
+ self ,
309
+ keys : Sequence [RollingKeyPairSource ],
310
+ hours : int = 7 * 24 ,
311
+ ) -> MaybeCoro [dict [RollingKeyPairSource , list [LocationReport ]]]: ...
312
+
289
313
@abstractmethod
290
314
def fetch_last_reports (
291
315
self ,
292
- keys : HasHashedPublicKey | Sequence [HasHashedPublicKey ] | RollingKeyPairSource ,
316
+ keys : HasHashedPublicKey
317
+ | Sequence [HasHashedPublicKey ]
318
+ | RollingKeyPairSource
319
+ | Sequence [RollingKeyPairSource ],
293
320
hours : int = 7 * 24 ,
294
- ) -> MaybeCoro [list [LocationReport ] | dict [HasHashedPublicKey , list [LocationReport ]]]:
321
+ ) -> MaybeCoro [
322
+ list [LocationReport ]
323
+ | dict [HasHashedPublicKey , list [LocationReport ]]
324
+ | dict [RollingKeyPairSource , list [LocationReport ]]
325
+ ]:
295
326
"""
296
327
Fetch location reports for a sequence of `HasHashedPublicKey`s for the last `hours` hours.
297
328
@@ -641,14 +672,29 @@ async def fetch_reports(
641
672
date_to : datetime | None ,
642
673
) -> list [LocationReport ]: ...
643
674
675
+ @overload
676
+ async def fetch_reports (
677
+ self ,
678
+ keys : Sequence [RollingKeyPairSource ],
679
+ date_from : datetime ,
680
+ date_to : datetime | None ,
681
+ ) -> dict [RollingKeyPairSource , list [LocationReport ]]: ...
682
+
644
683
@require_login_state (LoginState .LOGGED_IN )
645
684
@override
646
685
async def fetch_reports (
647
686
self ,
648
- keys : HasHashedPublicKey | Sequence [HasHashedPublicKey ] | RollingKeyPairSource ,
687
+ keys : HasHashedPublicKey
688
+ | Sequence [HasHashedPublicKey ]
689
+ | RollingKeyPairSource
690
+ | Sequence [RollingKeyPairSource ],
649
691
date_from : datetime ,
650
692
date_to : datetime | None ,
651
- ) -> list [LocationReport ] | dict [HasHashedPublicKey , list [LocationReport ]]:
693
+ ) -> (
694
+ list [LocationReport ]
695
+ | dict [HasHashedPublicKey , list [LocationReport ]]
696
+ | dict [RollingKeyPairSource , list [LocationReport ]]
697
+ ):
652
698
"""See `BaseAppleAccount.fetch_reports`."""
653
699
date_to = date_to or datetime .now ().astimezone ()
654
700
@@ -679,13 +725,27 @@ async def fetch_last_reports(
679
725
hours : int = 7 * 24 ,
680
726
) -> list [LocationReport ]: ...
681
727
728
+ @overload
729
+ async def fetch_last_reports (
730
+ self ,
731
+ keys : Sequence [RollingKeyPairSource ],
732
+ hours : int = 7 * 24 ,
733
+ ) -> dict [RollingKeyPairSource , list [LocationReport ]]: ...
734
+
682
735
@require_login_state (LoginState .LOGGED_IN )
683
736
@override
684
737
async def fetch_last_reports (
685
738
self ,
686
- keys : HasHashedPublicKey | Sequence [HasHashedPublicKey ] | RollingKeyPairSource ,
739
+ keys : HasHashedPublicKey
740
+ | Sequence [HasHashedPublicKey ]
741
+ | RollingKeyPairSource
742
+ | Sequence [RollingKeyPairSource ],
687
743
hours : int = 7 * 24 ,
688
- ) -> list [LocationReport ] | dict [HasHashedPublicKey , list [LocationReport ]]:
744
+ ) -> (
745
+ list [LocationReport ]
746
+ | dict [HasHashedPublicKey , list [LocationReport ]]
747
+ | dict [RollingKeyPairSource , list [LocationReport ]]
748
+ ):
689
749
"""See `BaseAppleAccount.fetch_last_reports`."""
690
750
end = datetime .now (tz = timezone .utc )
691
751
start = end - timedelta (hours = hours )
@@ -1041,13 +1101,28 @@ def fetch_reports(
1041
1101
date_to : datetime | None ,
1042
1102
) -> list [LocationReport ]: ...
1043
1103
1104
+ @overload
1105
+ def fetch_reports (
1106
+ self ,
1107
+ keys : Sequence [RollingKeyPairSource ],
1108
+ date_from : datetime ,
1109
+ date_to : datetime | None ,
1110
+ ) -> dict [RollingKeyPairSource , list [LocationReport ]]: ...
1111
+
1044
1112
@override
1045
1113
def fetch_reports (
1046
1114
self ,
1047
- keys : HasHashedPublicKey | Sequence [HasHashedPublicKey ] | RollingKeyPairSource ,
1115
+ keys : HasHashedPublicKey
1116
+ | Sequence [HasHashedPublicKey ]
1117
+ | RollingKeyPairSource
1118
+ | Sequence [RollingKeyPairSource ],
1048
1119
date_from : datetime ,
1049
1120
date_to : datetime | None ,
1050
- ) -> list [LocationReport ] | dict [HasHashedPublicKey , list [LocationReport ]]:
1121
+ ) -> (
1122
+ list [LocationReport ]
1123
+ | dict [HasHashedPublicKey , list [LocationReport ]]
1124
+ | dict [RollingKeyPairSource , list [LocationReport ]]
1125
+ ):
1051
1126
"""See `AsyncAppleAccount.fetch_reports`."""
1052
1127
coro = self ._asyncacc .fetch_reports (keys , date_from , date_to )
1053
1128
return self ._evt_loop .run_until_complete (coro )
@@ -1073,12 +1148,26 @@ def fetch_last_reports(
1073
1148
hours : int = 7 * 24 ,
1074
1149
) -> list [LocationReport ]: ...
1075
1150
1151
+ @overload
1152
+ def fetch_last_reports (
1153
+ self ,
1154
+ keys : Sequence [RollingKeyPairSource ],
1155
+ hours : int = 7 * 24 ,
1156
+ ) -> dict [RollingKeyPairSource , list [LocationReport ]]: ...
1157
+
1076
1158
@override
1077
1159
def fetch_last_reports (
1078
1160
self ,
1079
- keys : HasHashedPublicKey | Sequence [HasHashedPublicKey ] | RollingKeyPairSource ,
1161
+ keys : HasHashedPublicKey
1162
+ | Sequence [HasHashedPublicKey ]
1163
+ | RollingKeyPairSource
1164
+ | Sequence [RollingKeyPairSource ],
1080
1165
hours : int = 7 * 24 ,
1081
- ) -> list [LocationReport ] | dict [HasHashedPublicKey , list [LocationReport ]]:
1166
+ ) -> (
1167
+ list [LocationReport ]
1168
+ | dict [HasHashedPublicKey , list [LocationReport ]]
1169
+ | dict [RollingKeyPairSource , list [LocationReport ]]
1170
+ ):
1082
1171
"""See `AsyncAppleAccount.fetch_last_reports`."""
1083
1172
coro = self ._asyncacc .fetch_last_reports (keys , hours )
1084
1173
return self ._evt_loop .run_until_complete (coro )
0 commit comments