11from collections import defaultdict
22from dataclasses import dataclass
33from itertools import chain
4- from typing import Any , Collection , Dict , List , Optional , Sequence , Set , Tuple
4+ from typing import Any , Collection , Optional , Sequence
55
66from aiohttp import web
77
@@ -69,8 +69,8 @@ class FilterPRs:
6969 """Compiled pull requests filter."""
7070
7171 service : str
72- repogroups : List [ Set [str ]]
73- participants : List [ Dict [PRParticipationKind , Set [str ]]]
72+ repogroups : list [ set [str ]]
73+ participants : list [ dict [PRParticipationKind , set [str ]]]
7474 labels : LabelFilter
7575 jira : JIRAFilter
7676 for_set_index : int
@@ -84,8 +84,8 @@ class FilterDevs:
8484 """Compiled developers filter."""
8585
8686 service : str
87- repogroups : List [ Set [str ]]
88- developers : List [PRParticipants ]
87+ repogroups : list [ set [str ]]
88+ developers : list [PRParticipants ]
8989 labels : LabelFilter
9090 jira : JIRAFilter
9191 for_set : ForSetDevelopers
@@ -97,8 +97,8 @@ class FilterChecks:
9797 """Compiled checks filter."""
9898
9999 service : str
100- repogroups : List [ Set [str ]]
101- pusher_groups : List [Sequence [str ]]
100+ repogroups : list [ set [str ]]
101+ pusher_groups : list [Sequence [str ]]
102102 labels : LabelFilter
103103 jira : JIRAFilter
104104 for_set : ForSetCodeChecks
@@ -110,11 +110,11 @@ class FilterDeployments:
110110 """Compiled deployments filter."""
111111
112112 service : str
113- repogroups : List [ Set [str ]]
114- participant_groups : List [ Dict [ReleaseParticipationKind , List [int ]]]
115- envgroups : List [ List [str ]]
116- with_labels : Dict [str , Any ]
117- without_labels : Dict [str , Any ]
113+ repogroups : list [ set [str ]]
114+ participant_groups : list [ dict [ReleaseParticipationKind , list [int ]]]
115+ envgroups : list [ list [str ]]
116+ with_labels : dict [str , Any ]
117+ without_labels : dict [str , Any ]
118118 pr_labels : LabelFilter
119119 jira : JIRAFilter
120120 for_set : ForSetDeployments
@@ -247,13 +247,13 @@ async def calculate_for_set_metrics(filter_prs: FilterPRs):
247247
248248
249249async def compile_filters_prs (
250- for_sets : List [ForSetPullRequests ],
250+ for_sets : list [ForSetPullRequests ],
251251 request : AthenianWebRequest ,
252252 account : int ,
253- meta_ids : Tuple [int , ...],
253+ meta_ids : tuple [int , ...],
254254 prefixer : Prefixer ,
255255 logical_settings : LogicalRepositorySettings ,
256- ) -> Tuple [ List [FilterPRs ], Set [str ]]:
256+ ) -> tuple [ list [FilterPRs ], set [str ]]:
257257 """
258258 Build the list of filters for a given list of ForSetPullRequests-s.
259259
@@ -266,8 +266,8 @@ async def compile_filters_prs(
266266 2. The set of all repositories after dereferencing, with service prefixes.
267267 """
268268 filters = []
269- checkers = {}
270- all_repos = set ()
269+ checkers : dict [ str , AccessChecker ] = {}
270+ all_repos : set [ str ] = set ()
271271 for i , for_set in enumerate (for_sets ):
272272 repos , prefix , service = await _extract_repos (
273273 request ,
@@ -322,13 +322,13 @@ def check_environments(
322322
323323
324324async def _compile_filters_devs (
325- for_sets : List [ForSetDevelopers ],
325+ for_sets : list [ForSetDevelopers ],
326326 request : AthenianWebRequest ,
327327 account : int ,
328- meta_ids : Tuple [int , ...],
328+ meta_ids : tuple [int , ...],
329329 prefixer : Prefixer ,
330330 logical_settings : LogicalRepositorySettings ,
331- ) -> Tuple [ List [FilterDevs ], Set [str ]]:
331+ ) -> tuple [ list [FilterDevs ], set [str ]]:
332332 """
333333 Build the list of filters for a given list of ForSetDevelopers'.
334334
@@ -342,8 +342,8 @@ async def _compile_filters_devs(
342342 with service prefixes.
343343 """
344344 filters = []
345- checkers = {}
346- all_repos = set ()
345+ checkers : dict [ str , AccessChecker ] = {}
346+ all_repos : set [ str ] = set ()
347347 for i , for_set in enumerate (for_sets ):
348348 repos , prefix , service = await _extract_repos (
349349 request ,
@@ -370,13 +370,13 @@ async def _compile_filters_devs(
370370
371371
372372async def compile_filters_checks (
373- for_sets : List [ForSetCodeChecks ],
373+ for_sets : list [ForSetCodeChecks ],
374374 request : AthenianWebRequest ,
375375 account : int ,
376- meta_ids : Tuple [int , ...],
376+ meta_ids : tuple [int , ...],
377377 prefixer : Prefixer ,
378378 logical_settings : LogicalRepositorySettings ,
379- ) -> List [FilterChecks ]:
379+ ) -> list [FilterChecks ]:
380380 """
381381 Build the list of filters for a given list of ForSetCodeChecks'.
382382
@@ -388,8 +388,8 @@ async def compile_filters_checks(
388388 :return: Resulting list of filters.
389389 """
390390 filters = []
391- checkers = {}
392- all_repos = set ()
391+ checkers : dict [ str , AccessChecker ] = {}
392+ all_repos : set [ str ] = set ()
393393 for i , for_set in enumerate (for_sets ):
394394 repos , prefix , service = await _extract_repos (
395395 request ,
@@ -409,7 +409,7 @@ async def compile_filters_checks(
409409 pusher_groups = (for_set .pusher_groups or []) + (
410410 [for_set .pushers ] if for_set .pushers else []
411411 )
412- teams = set ()
412+ teams : set [ int ] = set ()
413413
414414 def ptr (j : int ) -> str :
415415 return ".for[%d].%s" % (
@@ -420,7 +420,7 @@ def ptr(j: int) -> str:
420420 for j , pushers in enumerate (pusher_groups ):
421421 scan_for_teams (pushers , teams , ptr (j ))
422422 teams_map = await fetch_teams_map (teams , account , request .sdb )
423- commit_author_groups = []
423+ commit_author_groups : list [ Sequence [ str ]] = []
424424 for j , pushers in enumerate (pusher_groups ):
425425 if len (
426426 ca_group := compile_developers (
@@ -437,16 +437,16 @@ def ptr(j: int) -> str:
437437
438438
439439async def _compile_filters_deployments (
440- for_sets : List [ForSetDeployments ],
440+ for_sets : list [ForSetDeployments ],
441441 request : AthenianWebRequest ,
442442 account : int ,
443- meta_ids : Tuple [int , ...],
443+ meta_ids : tuple [int , ...],
444444 prefixer : Prefixer ,
445445 logical_settings : LogicalRepositorySettings ,
446- ) -> List [FilterDeployments ]:
446+ ) -> list [FilterDeployments ]:
447447 filters = []
448- checkers = {}
449- all_repos = set ()
448+ checkers : dict [ str , AccessChecker ] = {}
449+ all_repos : set [ str ] = set ()
450450 for i , for_set in enumerate (for_sets ):
451451 repos , prefix , service = await _extract_repos (
452452 request ,
@@ -513,12 +513,12 @@ async def _compile_jira(for_set, account: int, request: AthenianWebRequest) -> J
513513async def _extract_repos (
514514 request : AthenianWebRequest ,
515515 account : int ,
516- meta_ids : Tuple [int , ...],
517- for_set : List [str ],
516+ meta_ids : tuple [int , ...],
517+ for_set : list [str ],
518518 for_set_index : int ,
519- all_repos : Set [str ],
520- checkers : Dict [str , AccessChecker ],
521- ) -> Tuple [ List [ Set [str ]], str , str ]:
519+ all_repos : set [str ],
520+ checkers : dict [str , AccessChecker ],
521+ ) -> tuple [ list [ set [str ]], str , str ]:
522522 pointer = ".for[%d].repositories" % for_set_index
523523 resolved , prefix = await resolve_repos_with_request (
524524 for_set ,
@@ -566,7 +566,7 @@ async def calc_code_bypassing_prs(request: AthenianWebRequest, body: dict) -> we
566566 with_committer ,
567567 filt .only_default_branch ,
568568 prefixer ,
569- ) # type: List [CodeStats]
569+ ) # type: list [CodeStats]
570570 model = [
571571 CodeBypassingPRsMeasurement (
572572 date = (d - tzoffset ).date (),
@@ -653,14 +653,15 @@ async def calc_metrics_developers(request: AthenianWebRequest, body: dict) -> we
653653 for granularity , ts , dev_metrics in zip (
654654 filt .granularities , time_intervals , repogroup_metrics ,
655655 ):
656- values = []
656+ values : list [ list [ CalculatedLinearMetricValues ]] = []
657657 for ts_metrics in dev_metrics :
658658 values .append (ts_values := [])
659659 for date , metrics in zip (ts , ts_metrics ):
660660 metrics = [metrics [i ] for i in topic_order ]
661- confidence_mins = [m .confidence_min for m in metrics ]
662- if any (confidence_mins ):
663- confidence_maxs = [m .confidence_max for m in metrics ]
661+ metrics_confidence_mins : list = [m .confidence_min for m in metrics ]
662+ if any (metrics_confidence_mins ):
663+ confidence_mins : list | None = metrics_confidence_mins
664+ confidence_maxs : list | None = [m .confidence_max for m in metrics ]
664665 confidence_scores = [m .confidence_score () for m in metrics ]
665666 else :
666667 confidence_mins = confidence_maxs = confidence_scores = None
@@ -685,20 +686,20 @@ async def calc_metrics_developers(request: AthenianWebRequest, body: dict) -> we
685686
686687async def _compile_filters_releases (
687688 request : AthenianWebRequest ,
688- for_sets : List [ List [str ]],
689- with_ : Optional [List [ReleaseWith ]],
689+ for_sets : list [ list [str ]],
690+ with_ : Optional [list [ReleaseWith ]],
690691 account : int ,
691- meta_ids : Tuple [int , ...],
692- ) -> Tuple [
693- List [ Tuple [str , str , Tuple [ Set [str ], List [str ]]]],
694- Set [str ],
692+ meta_ids : tuple [int , ...],
693+ ) -> tuple [
694+ list [ tuple [str , str , tuple [ set [str ], list [str ]]]],
695+ set [str ],
695696 Prefixer ,
696697 LogicalRepositorySettings ,
697- List [ReleaseParticipants ],
698+ list [ReleaseParticipants ],
698699]:
699700 filters = []
700- checkers = {}
701- all_repos = set ()
701+ checkers : dict [ str , AccessChecker ] = {}
702+ all_repos : set [ str ] = set ()
702703 prefixer = await Prefixer .load (meta_ids , request .mdb , request .cache )
703704 settings = Settings .from_request (request , account , prefixer )
704705 logical_settings = await settings .list_logical_repositories ()
0 commit comments