Skip to content

Commit 6940ee8

Browse files
committed
Merge branch 'develop' into pr-408
2 parents 57d1d47 + a6dafb6 commit 6940ee8

File tree

219 files changed

+2621
-1676
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

219 files changed

+2621
-1676
lines changed

.github/dependabot.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ updates:
55
schedule:
66
interval: "weekly"
77
target-branch: develop
8+
cooldown:
9+
default-days: 28

.github/workflows/coverage_external_pr.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
# DO NOT run actions/checkout here, for security reasons
1919
# For details, refer to https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
2020
- name: Post comment
21-
uses: py-cov-action/python-coverage-comment-action@91910686861e4e1d8282a267a896eb39d46240fb
21+
uses: py-cov-action/python-coverage-comment-action@7188638f871f721a365d644f505d1ff3df20d683
2222
with:
2323
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2424
GITHUB_PR_RUN_ID: ${{ github.event.workflow_run.id }}

.github/workflows/lint_and_test.yml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ jobs:
2323
timeout-minutes: 3
2424

2525
steps:
26-
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
26+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
2727
with:
2828
persist-credentials: false
2929

3030
- name: Set up Python 3.11
31-
uses: actions/setup-python@v5
31+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
3232
with:
3333
python-version: "3.11"
3434

@@ -56,24 +56,24 @@ jobs:
5656
fail-fast: true
5757
matrix:
5858
python_version:
59-
- { setup: '3.9', tox: 'py39', cov: true }
6059
- { setup: '3.10', tox: 'py310', cov: true }
6160
- { setup: '3.11', tox: 'py311', cov: true }
6261
- { setup: '3.12.3', tox: 'py312', cov: true } # (1)
6362
- { setup: '3.13', tox: 'py313', cov: true }
64-
- { setup: 'pypy3.9', tox: 'pypy39', cov: false }
63+
- { setup: '3.14', tox: 'py314', cov: true }
6564
- { setup: 'pypy3.10', tox: 'pypy310', cov: false }
65+
- { setup: 'pypy3.11', tox: 'pypy311', cov: false }
6666

6767
# (1): 3.12.4 contains backwards-incompatible changes of ForwardRef._evaluate()
6868
os: ['ubuntu-latest']
6969

7070
steps:
71-
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
71+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
7272
with:
7373
persist-credentials: false
7474

7575
- name: Set up Python 3.11
76-
uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
76+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
7777
with:
7878
python-version: ${{ matrix.python_version.setup }}
7979

@@ -96,7 +96,7 @@ jobs:
9696
--cov-output .coverage.${{ matrix.python_version.tox }}
9797

9898
- name: Store coverage file
99-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
99+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f
100100
if: ${{ (matrix.python_version.cov && github.event_name == 'pull_request') }}
101101
with:
102102
name: coverage-${{ matrix.python_version.tox }}
@@ -120,26 +120,26 @@ jobs:
120120
if: ${{ github.event_name == 'pull_request' }}
121121

122122
steps:
123-
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
123+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
124124
with:
125125
persist-credentials: false
126126

127-
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
127+
- uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131
128128
id: download
129129
with:
130130
pattern: coverage-*
131131
merge-multiple: true
132132

133133
- name: Coverage comment
134134
id: coverage_comment
135-
uses: py-cov-action/python-coverage-comment-action@91910686861e4e1d8282a267a896eb39d46240fb
135+
uses: py-cov-action/python-coverage-comment-action@7188638f871f721a365d644f505d1ff3df20d683
136136
with:
137137
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
138138
MERGE_COVERAGE_FILES: true
139139
MINIMUM_GREEN: 90
140140

141141
- name: Store Pull Request comment to be posted (for external pr)
142-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
142+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f
143143
if: steps.coverage_comment.outputs.COMMENT_FILE_WRITTEN == 'true'
144144
with:
145145
name: python-coverage-comment-action

.github/workflows/test_all_oses.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ jobs:
3333
os: ['ubuntu-latest', 'windows-latest', 'macos-latest']
3434

3535
steps:
36-
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
36+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
3737
with:
3838
persist-credentials: false
3939

4040
- name: Set up Python 3.11
41-
uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
41+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
4242
with:
4343
python-version: ${{ matrix.python_version.setup }}
4444

.pre-commit-config.yaml

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ default_stages:
1818

1919
repos:
2020
- repo: 'https://github.com/pre-commit/pre-commit-hooks'
21-
rev: v5.0.0
21+
rev: v6.0.0
2222
hooks:
2323
- id: check-merge-conflict
2424
- id: debug-statements
@@ -35,30 +35,24 @@ repos:
3535
args: ['-e'] # remove default --in-place argument and emit error
3636

3737
- repo: 'https://github.com/astral-sh/ruff-pre-commit'
38-
rev: v0.11.10
38+
rev: v0.14.14
3939
hooks:
4040
- id: ruff
4141
args: ['--fix-only']
4242

43-
- repo: 'https://github.com/pycqa/isort'
44-
rev: 6.0.0
45-
hooks:
46-
- id: isort
47-
args: ['--resolve-all-configs']
48-
4943
- repo: 'https://github.com/python-jsonschema/check-jsonschema'
50-
rev: 0.33.0
44+
rev: 0.36.1
5145
hooks:
5246
- id: check-dependabot
5347
- id: check-github-workflows
5448

5549
- repo: 'https://github.com/rhysd/actionlint'
56-
rev: v1.7.7
50+
rev: v1.7.10
5751
hooks:
5852
- id: actionlint
5953

6054
- repo: 'https://github.com/woodruffw/zizmor-pre-commit'
61-
rev: v1.8.0
55+
rev: v1.22.0
6256
hooks:
6357
- id: zizmor
6458

_typos.toml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[files]
2+
extend-exclude = [
3+
"docs/_static/",
4+
"*.json",
5+
"*.svg",
6+
]
7+
8+
[default.extend-words]
9+
# For line: `password_hash": "ZghOT0eRm4U9s"`
10+
ot = "ot"
11+
# For line: `FooBA = namedtuple("FooBA", "b a")`
12+
ba = "ba"

benchmarks/benchmarks/bench_nexus.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,16 @@
99
from concurrent.futures import Executor, ThreadPoolExecutor
1010
from dataclasses import dataclass
1111
from functools import partial
12+
from itertools import pairwise
1213
from pathlib import Path
1314
from 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
1516
from zipfile import ZIP_BZIP2, ZipFile
1617

1718
import plotly
1819
import plotly.graph_objects as go
1920
import pyperf
2021

21-
from adaptix._internal.utils import pairs
2222
from benchmarks.pybench.director_api import BenchAccessor, BenchChecker, BenchmarkDirector, BenchStorageFactory
2323

2424
T = 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,

benchmarks/benchmarks/gh_issues/bench_adaptix.py

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from dataclasses import dataclass
22
from datetime import datetime
3-
from typing import List, Optional
3+
from typing import List
44

55
from adaptix import DebugTrail, Retort, name_mapping
66
from benchmarks.gh_issues.common import (
@@ -19,7 +19,7 @@ class SimpleUser:
1919
id: int
2020
node_id: str
2121
avatar_url: str
22-
gravatar_id: Optional[str]
22+
gravatar_id: str | None
2323
url: str
2424
html_url: str
2525
followers_url: str
@@ -33,9 +33,9 @@ class SimpleUser:
3333
received_events_url: str
3434
type: str
3535
site_admin: bool
36-
name: Optional[str] = None
37-
email: Optional[str] = None
38-
starred_at: Optional[datetime] = None
36+
name: str | None = None
37+
email: str | None = None
38+
starred_at: datetime | None = None
3939

4040

4141
@dataclass
@@ -44,7 +44,7 @@ class Label:
4444
node_id: str
4545
url: str
4646
name: str
47-
description: Optional[str]
47+
description: str | None
4848
color: str
4949
default: bool
5050

@@ -65,11 +65,11 @@ class Reactions:
6565

6666
@dataclass
6767
class PullRequest:
68-
diff_url: Optional[str]
69-
html_url: Optional[str]
70-
patch_url: Optional[str]
71-
url: Optional[str]
72-
merged_at: Optional[datetime] = None
68+
diff_url: str | None
69+
html_url: str | None
70+
patch_url: str | None
71+
url: str | None
72+
merged_at: datetime | None = None
7373

7474

7575
@dataclass
@@ -84,25 +84,25 @@ class Issue:
8484
html_url: str
8585
number: int
8686
state: IssueState
87-
state_reason: Optional[StateReason]
87+
state_reason: StateReason | None
8888
title: str
89-
user: Optional[SimpleUser]
89+
user: SimpleUser | None
9090
labels: List[Label]
91-
assignee: Optional[SimpleUser]
92-
assignees: Optional[List[SimpleUser]]
91+
assignee: SimpleUser | None
92+
assignees: List[SimpleUser] | None
9393
locked: bool
94-
active_lock_reason: Optional[str]
94+
active_lock_reason: str | None
9595
comments: int
96-
closed_at: Optional[datetime]
97-
created_at: Optional[datetime]
98-
updated_at: Optional[datetime]
96+
closed_at: datetime | None
97+
created_at: datetime | None
98+
updated_at: datetime | None
9999
author_association: AuthorAssociation
100-
reactions: Optional[Reactions] = None
101-
pull_request: Optional[PullRequest] = None
102-
body_html: Optional[str] = None
103-
body_text: Optional[str] = None
104-
timeline_url: Optional[str] = None
105-
body: Optional[str] = None
100+
reactions: Reactions | None = None
101+
pull_request: PullRequest | None = None
102+
body_html: str | None = None
103+
body_text: str | None = None
104+
timeline_url: str | None = None
105+
body: str | None = None
106106

107107

108108
@dataclass

0 commit comments

Comments
 (0)