99from concurrent .futures import Executor , ThreadPoolExecutor
1010from dataclasses import dataclass
1111from functools import partial
12+ from itertools import pairwise
1213from pathlib import Path
1314from textwrap import dedent
14- from typing import Any , Callable , DefaultDict , Dict , Iterable , List , Mapping , Optional , Sequence , Set , TypeVar , Union
15+ from typing import Any , Callable , DefaultDict , Dict , Iterable , List , Mapping , Sequence , Set , TypeVar
1516from zipfile import ZIP_BZIP2 , ZipFile
1617
1718import plotly
1819import plotly .graph_objects as go
1920import pyperf
2021
21- from adaptix ._internal .utils import pairs
2222from benchmarks .pybench .director_api import BenchAccessor , BenchChecker , BenchmarkDirector , BenchStorageFactory
2323
2424T = TypeVar ("T" )
@@ -39,7 +39,7 @@ class BenchmarkMeasure:
3939 pyperf : pyperf .Benchmark
4040
4141
42- def pyperf_bench_to_measure (data : Union [ str , bytes ] ) -> BenchmarkMeasure :
42+ def pyperf_bench_to_measure (data : str | bytes ) -> BenchmarkMeasure :
4343 pybench_data = json .loads (data )["pybench_data" ]
4444 return BenchmarkMeasure (
4545 base = pybench_data ["base" ],
@@ -135,7 +135,7 @@ def __init__(self, last_cluster_idx: int, boundary_rate: float):
135135 def _split_into_clusters (self , measures : Iterable [BenchmarkMeasure ]) -> Sequence [Sequence [BenchmarkMeasure ]]:
136136 clusters : List [List [BenchmarkMeasure ]] = []
137137 current_cluster : List [BenchmarkMeasure ] = []
138- for prev , current in pairs (measures ):
138+ for prev , current in pairwise (measures ):
139139 if current .pyperf .mean () / prev .pyperf .mean () >= self .boundary_rate :
140140 clusters .append (current_cluster )
141141 current_cluster = [current ]
@@ -243,10 +243,10 @@ def add_arguments(cls, parser: ArgumentParser) -> None:
243243 def __init__ (
244244 self ,
245245 namespace : Namespace ,
246- include : Optional [ Sequence [str ]] = None ,
247- exclude : Optional [ Sequence [str ]] = None ,
248- env_include : Optional [ Sequence [str ]] = None ,
249- env_exclude : Optional [ Sequence [str ]] = None ,
246+ include : Sequence [str ] | None = None ,
247+ exclude : Sequence [str ] | None = None ,
248+ env_include : Sequence [str ] | None = None ,
249+ env_exclude : Sequence [str ] | None = None ,
250250 ):
251251 self .include = include
252252 self .exclude = exclude
@@ -328,7 +328,7 @@ def load_directors(
328328 env_description : self ._submit_python (executor , env_description , env_spec_printer )
329329 for env_description in self .filtered_envs ()
330330 }
331- for hub_description , env_spec_printer in zip (hub_descriptions , env_spec_printers )
331+ for hub_description , env_spec_printer in zip (hub_descriptions , env_spec_printers , strict = False )
332332 }
333333 return {
334334 hub_description : {
@@ -354,7 +354,7 @@ class CaseState:
354354 accessor : BenchAccessor
355355 checker : BenchChecker
356356 local_ids_with_warnings : Sequence [str ]
357- max_tries : Optional [ int ]
357+ max_tries : int | None
358358 tries_count : int = 0
359359
360360 @property
@@ -388,12 +388,12 @@ def add_arguments(cls, parser: ArgumentParser) -> None:
388388 def __init__ (
389389 self ,
390390 namespace : Namespace ,
391- include : Optional [ Sequence [str ]] = None ,
392- exclude : Optional [ Sequence [str ]] = None ,
393- env_include : Optional [ Sequence [str ]] = None ,
394- env_exclude : Optional [ Sequence [str ]] = None ,
391+ include : Sequence [str ] | None = None ,
392+ exclude : Sequence [str ] | None = None ,
393+ env_include : Sequence [str ] | None = None ,
394+ env_exclude : Sequence [str ] | None = None ,
395395 series : int = 2 ,
396- max_tries : Optional [ int ] = None ,
396+ max_tries : int | None = None ,
397397 ):
398398 super ().__init__ (
399399 namespace = namespace ,
@@ -551,11 +551,11 @@ def add_arguments(cls, parser: ArgumentParser) -> None:
551551 def __init__ (
552552 self ,
553553 namespace : Namespace ,
554- include : Optional [ Sequence [str ]] = None ,
555- exclude : Optional [ Sequence [str ]] = None ,
556- env_include : Optional [ Sequence [str ]] = None ,
557- env_exclude : Optional [ Sequence [str ]] = None ,
558- output : Optional [ str ] = None ,
554+ include : Sequence [str ] | None = None ,
555+ exclude : Sequence [str ] | None = None ,
556+ env_include : Sequence [str ] | None = None ,
557+ env_exclude : Sequence [str ] | None = None ,
558+ output : str | None = None ,
559559 ):
560560 super ().__init__ (
561561 namespace = namespace ,
0 commit comments