Skip to content

Commit 7cb4b99

Browse files
MagicRBMic92
authored andcommitted
Format with ruff
Signed-off-by: magic_rb <[email protected]>
1 parent 62682f7 commit 7cb4b99

File tree

4 files changed

+178
-158
lines changed

4 files changed

+178
-158
lines changed

buildbot_nix/__init__.py

Lines changed: 70 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
1+
import copy
12
import dataclasses
23
import graphlib
34
import json
45
import multiprocessing
56
import os
67
import re
78
from collections import defaultdict
8-
from collections.abc import Generator
9+
from collections.abc import Generator, Iterable
910
from dataclasses import dataclass
1011
from datetime import UTC, datetime
1112
from pathlib import Path
12-
from typing import TYPE_CHECKING, Any, Iterable
13-
import typing
14-
import copy
13+
from typing import TYPE_CHECKING, Any
1514

1615
from buildbot.config.builder import BuilderConfig
1716
from buildbot.configurators import ConfiguratorBase
@@ -71,7 +70,6 @@ class BuildbotNixError(Exception):
7170
class BuildTrigger(buildstep.ShellMixin, steps.BuildStep):
7271
"""Dynamic trigger that creates a build for every attribute."""
7372

74-
7573
successful_jobs: list[NixEvalJobSuccess]
7674
failed_jobs: list[NixEvalJobError]
7775
combined_build: bool
@@ -179,14 +177,10 @@ def set_common_properties(
179177

180178
return props
181179

182-
def schedule_eval_failure(
183-
self, job: NixEvalJobError
184-
) -> tuple[str, Properties]:
180+
def schedule_eval_failure(self, job: NixEvalJobError) -> tuple[str, Properties]:
185181
source = "nix-eval-nix"
186182

187-
props = BuildTrigger.set_common_properties(
188-
Properties(), source, job
189-
)
183+
props = BuildTrigger.set_common_properties(Properties(), source, job)
190184
props.setProperty("error", job.error, source)
191185

192186
return (self.failed_eval_scheduler, props)
@@ -196,9 +190,7 @@ def schedule_cached_failure(
196190
) -> tuple[str, Properties]:
197191
source = "nix-eval-nix"
198192

199-
props = BuildTrigger.set_common_properties(
200-
Properties(), source, job
201-
)
193+
props = BuildTrigger.set_common_properties(Properties(), source, job)
202194
props.setProperty("first_failure", str(first_failure), source)
203195

204196
return (self.cached_failure_scheduler, props)
@@ -210,9 +202,7 @@ def schedule_dependency_failed(
210202
) -> tuple[str, Properties]:
211203
source = "nix-eval-nix"
212204

213-
props = BuildTrigger.set_common_properties(
214-
Properties(), source, job
215-
)
205+
props = BuildTrigger.set_common_properties(Properties(), source, job)
216206
props.setProperty("dependency.attr", dependency.attr, source)
217207

218208
return (self.dependency_failed_scheduler, props)
@@ -228,9 +218,7 @@ def schedule_success(
228218
system = job.system
229219
out_path = job.outputs["out"] or None
230220

231-
props = BuildTrigger.set_common_properties(
232-
Properties(), source, job
233-
)
221+
props = BuildTrigger.set_common_properties(Properties(), source, job)
234222
props.setProperty("system", system, source)
235223
props.setProperty("drv_path", drv_path, source)
236224
props.setProperty("out_path", out_path, source)
@@ -270,7 +258,9 @@ def schedule(
270258
self._add_results(brid)
271259

272260
if not self.combine_builds:
273-
self.produceEventForBuildRequestsById(brids.values(), "started-nix-build", None)
261+
self.produce_event_for_build_requests_by_id(
262+
brids.values(), "started-nix-build", None
263+
)
274264

275265
return brids, results_deferred
276266

@@ -356,46 +346,53 @@ def get_failed_dependents(
356346
return removed
357347

358348
@defer.inlineCallbacks
359-
360-
@defer.inlineCallbacks
361-
def produceEventForBuildRequestsById(
362-
self,
363-
buildrequest_ids: Iterable[int],
364-
event: str,
365-
result: None | int,
349+
def produce_event_for_build_requests_by_id(
350+
self,
351+
buildrequest_ids: Iterable[int],
352+
event: str,
353+
result: None | int,
366354
) -> Generator[Any, object, None]:
367355
for buildrequest_id in buildrequest_ids:
368-
builds: Any = yield self.master.data.get(('buildrequests', str(buildrequest_id), 'builds'))
356+
builds: Any = yield self.master.data.get(
357+
("buildrequests", str(buildrequest_id), "builds")
358+
)
369359

370360
# only report with `buildrequets` if there are no builds to report for
371361
if not builds:
372-
buildrequest: Any = yield self.master.data.get(('buildrequests', str(buildrequest_id)))
373-
if result is not None:
374-
buildrequest["results"] = result
375-
self.master.mq.produce(("buildrequests", str(buildrequest['buildrequestid']), event), copy.deepcopy(buildrequest))
362+
buildrequest: Any = yield self.master.data.get(
363+
("buildrequests", str(buildrequest_id))
364+
)
365+
if result is not None:
366+
buildrequest["results"] = result
367+
self.master.mq.produce(
368+
("buildrequests", str(buildrequest["buildrequestid"]), event),
369+
copy.deepcopy(buildrequest),
370+
)
376371
else:
377372
for build in builds:
378-
self.produceEventForBuild(event, build, result)
373+
self.produce_event_for_build(event, build, result)
379374

380375
@defer.inlineCallbacks
381-
def produceEventForBuildById(
382-
self,
383-
event: str,
384-
build_id: int,
385-
result: None | int,
376+
def produce_event_for_build_by_id(
377+
self,
378+
event: str,
379+
build_id: int,
380+
result: None | int,
386381
) -> Generator[Any, object, None]:
387-
build: Any = yield self.master.data.get(('builds', str(build_id)))
388-
self.produceEventForBuild(event, build, result)
389-
390-
def produceEventForBuild(
391-
self,
392-
event: str,
393-
build: Any,
394-
result: None | int,
382+
build: Any = yield self.master.data.get(("builds", str(build_id)))
383+
self.produce_event_for_build(event, build, result)
384+
385+
def produce_event_for_build(
386+
self,
387+
event: str,
388+
build: Any,
389+
result: None | int,
395390
) -> None:
396391
if result is not None:
397392
build["results"] = result
398-
self.master.mq.produce(("builds", str(build['buildid']), event), copy.deepcopy(build))
393+
self.master.mq.produce(
394+
("builds", str(build["buildid"]), event), copy.deepcopy(build)
395+
)
399396

400397
@defer.inlineCallbacks
401398
def run(self) -> Generator[Any, Any, None]:
@@ -409,7 +406,9 @@ def run(self) -> Generator[Any, Any, None]:
409406
the receiving side.
410407
"""
411408
if self.combine_builds:
412-
self.produceEventForBuildById("started-nix-build", self.build.buildid, None)
409+
self.produce_event_for_build_by_id(
410+
"started-nix-build", self.build.buildid, None
411+
)
413412

414413
done: list[BuildTrigger.DoneJob] = []
415414
scheduled: list[BuildTrigger.ScheduledJob] = []
@@ -469,9 +468,7 @@ def run(self) -> Generator[Any, Any, None]:
469468

470469
brids, results_deferred = yield self.schedule(
471470
ss_for_trigger,
472-
*self.schedule_cached_failure(
473-
build, failed_build.time
474-
),
471+
*self.schedule_cached_failure(build, failed_build.time),
475472
)
476473
scheduled.append(
477474
BuildTrigger.ScheduledJob(build, brids, results_deferred)
@@ -527,7 +524,9 @@ def run(self) -> Generator[Any, Any, None]:
527524
f"Found finished build {job.attr}, result {util.Results[result].upper()}\n"
528525
)
529526
if not self.combine_builds:
530-
self.produceEventForBuildRequestsById(brids.values(), "finished-nix-build", result)
527+
self.produce_event_for_build_requests_by_id(
528+
brids.values(), "finished-nix-build", result
529+
)
531530

532531
# if it failed, remove all dependent jobs, schedule placeholders and add them to the list of scheduled jobs
533532
if isinstance(job, NixEvalJobSuccess):
@@ -546,7 +545,9 @@ def run(self) -> Generator[Any, Any, None]:
546545
)
547546
build_schedule_order.remove(removed_job)
548547
scheduled.append(
549-
BuildTrigger.ScheduledJob(removed_job, brids, results_deferred)
548+
BuildTrigger.ScheduledJob(
549+
removed_job, brids, results_deferred
550+
)
550551
)
551552
self.brids.extend(brids.values())
552553
scheduler_log.addStdout(
@@ -565,7 +566,9 @@ def run(self) -> Generator[Any, Any, None]:
565566
)
566567

567568
if self.combine_builds:
568-
self.produceEventForBuildById("finished-nix-build", self.build.buildid, overall_result)
569+
self.produce_event_for_build_by_id(
570+
"finished-nix-build", self.build.buildid, overall_result
571+
)
569572
scheduler_log.addStdout("Done!\n")
570573
return overall_result
571574

@@ -604,27 +607,28 @@ def __init__(
604607
self.job_report_limit = job_report_limit
605608

606609
@defer.inlineCallbacks
607-
def produceEvent(
608-
self,
609-
event: str,
610-
result: None | int
611-
) -> Generator[Any, object, None]:
612-
build = yield self.master.data.get(('builds', str(self.build.buildid)))
613-
buildT = typing.cast(dict[str, Any], build)
610+
def produce_event(
611+
self, event: str, result: None | int
612+
) -> Generator[Any, Any, None]:
613+
build: dict[str, Any] = yield self.master.data.get(
614+
("builds", str(self.build.buildid))
615+
)
614616
if result is not None:
615-
buildT["results"] = result
616-
self.master.mq.produce(("builds", str(self.build.buildid), event), copy.deepcopy(buildT))
617+
build["results"] = result
618+
self.master.mq.produce(
619+
("builds", str(self.build.buildid), event), copy.deepcopy(build)
620+
)
617621

618622
@defer.inlineCallbacks
619623
def run(self) -> Generator[Any, object, Any]:
620-
self.produceEvent("started-nix-eval", None)
624+
self.produce_event("started-nix-eval", None)
621625
# run nix-eval-jobs --flake .#checks to generate the dict of stages
622626
cmd: remotecommand.RemoteCommand = yield self.makeRemoteShellCommand()
623627
yield self.runCommand(cmd)
624628

625629
# if the command passes extract the list of stages
626630
result = cmd.results()
627-
self.produceEvent("finished-nix-eval", result)
631+
self.produce_event("finished-nix-eval", result)
628632
if result == util.SUCCESS:
629633
# create a ShellCommand for each stage and add them to the build
630634
jobs: list[NixEvalJob] = []

buildbot_nix/gitea_projects.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
import os
22
import signal
3-
from collections.abc import Callable
43
from pathlib import Path
54
from typing import Any
65
from urllib.parse import urlparse
76

8-
from buildbot.interfaces import IReportGenerator
97
from buildbot.config.builder import BuilderConfig
108
from buildbot.plugins import util
119
from buildbot.process.properties import Interpolate
@@ -15,23 +13,21 @@
1513
from buildbot_gitea.auth import GiteaAuth # type: ignore[import]
1614
from buildbot_gitea.reporter import GiteaStatusPush # type: ignore[import]
1715
from pydantic import BaseModel
18-
from twisted.internet import defer
1916
from twisted.logger import Logger
2017
from twisted.python import log
2118

2219
from .common import (
2320
ThreadDeferredBuildStep,
2421
atomic_write_file,
25-
filter_for_combined_builds,
2622
filter_repos_by_topic,
2723
http_request,
2824
model_dump_project_cache,
2925
model_validate_project_cache,
3026
paginated_github_request,
3127
slugify_project_name,
3228
)
33-
from .nix_status_generator import BuildNixEvalStatusGenerator
3429
from .models import GiteaConfig
30+
from .nix_status_generator import BuildNixEvalStatusGenerator
3531
from .projects import GitBackend, GitProject
3632

3733
tlog = Logger()
@@ -109,6 +105,7 @@ def belongs_to_org(self) -> bool:
109105
# TODO Gitea doesn't include this information
110106
return False # self.data["owner"]["type"] == "Organization"
111107

108+
112109
class GiteaBackend(GitBackend):
113110
config: GiteaConfig
114111
webhook_secret: str
@@ -142,7 +139,7 @@ def create_reporter(self) -> ReporterBase:
142139
token=Interpolate(self.config.token),
143140
context=Interpolate("buildbot/%(prop:status_name)s"),
144141
context_pr=Interpolate("buildbot/%(prop:status_name)s"),
145-
generators = [
142+
generators=[
146143
BuildNixEvalStatusGenerator(),
147144
],
148145
)

0 commit comments

Comments
 (0)