Skip to content

feature: add support for uv - #571

Open
simbuerg wants to merge 69 commits into
masterfrom
feature/uv
Open

feature: add support for uv#571
simbuerg wants to merge 69 commits into
masterfrom
feature/uv

Conversation

@simbuerg

Copy link
Copy Markdown
Member

This adds support for uv. Most github workflows are adapted and an appropriate pyproject.toml is provided.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

eslint

⚠️ [ruff] <PYI034> reported by reviewdog 🐶
__enter__ methods in classes like AbstractUnitOfWork usually return self at runtime

def __enter__(self) -> "AbstractUnitOfWork":


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

def create_image(self, tag: str, layers: tp.List[model.Layer]) -> model.Container:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

def _create_image(self, tag: str, layers: tp.List[model.Layer]) -> model.Container:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use type instead of tp.Type for type annotation

mcs: tp.Type[tp.Any],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use tuple instead of tp.Tuple for type annotation

bases: tp.Tuple[type, ...],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

attrs: tp.Dict[str, tp.Any],


⚠️ [ruff] <UP008> reported by reviewdog 🐶
Use super() instead of super(__class__, self)

cls = super(ExperimentRegistry, mcs).__new__(


⚠️ [ruff] <UP031> reported by reviewdog 🐶
Use format specifiers instead of percent format

"%s expected to be '%s' but got '%s'"
% (str(new_id), str(uuid.UUID), str(type(new_id)))


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

message="Selected {0} with version {1}".format(
p.name, version_str
)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

message="Selected {0} with version {1}".format(
p.name, version_str
)


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

def call_next(self, *args: tp.Any, **kwargs: tp.Any) -> tp.List[run.RunInfo]:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

) -> tp.List[run.RunInfo]:


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

config: tp.Optional[tp.Dict[str, str]] = None,


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

config: tp.Optional[tp.Dict[str, str]] = None,


⚠️ [ruff] <SIM118> reported by reviewdog 🐶
Use key in dict instead of key in dict.keys()

if config is not None and "jobs" in config.keys():


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

marker: str, format_s: str, ins: tp.List[str]


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

) -> tp.List[parse.Match]:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

Sources = tp.List[FetchableSource]


⚠️ [ruff] <UP007> reported by reviewdog 🐶
Use X | Y for type annotations

ContainerDeclaration = tp.Union[
ContainerImage, tp.List[tp.Tuple[RevisionRange, ContainerImage]]
]


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

ContainerImage, tp.List[tp.Tuple[RevisionRange, ContainerImage]]


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use tuple instead of tp.Tuple for type annotation

ContainerImage, tp.List[tp.Tuple[RevisionRange, ContainerImage]]


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

_active_revision: tp.Optional[Revision]


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

_active_revisions: tp.List[Revision]


⚠️ [ruff] <B010> reported by reviewdog 🐶
Do not call setattr with a constant attribute value. It is not any safer than normal property access.

setattr(cls, "run_tests", f_run_tests)


⚠️ [ruff] <B010> reported by reviewdog 🐶
Do not call setattr with a constant attribute value. It is not any safer than normal property access.

setattr(cls, "compile", f_compile)


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use tuple instead of tp.Tuple for type annotation

def __split_project_input__(project_input: str) -> tp.Tuple[str, tp.Optional[str]]:


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

def __split_project_input__(project_input: str) -> tp.Tuple[str, tp.Optional[str]]:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

def __add_indexed_filters__(project: ProjectT, versions: tp.List[str]) -> ProjectT:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

def __add_named_filters__(project: ProjectT, versions: tp.Dict[str, str]) -> ProjectT:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

named_sources: tp.Dict[str, FetchableSource] = {s.key: s for s in sources}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"3.1": "http://www.cs.virginia.edu/"
"~kw5na/lava/Rodinia/Packages/Current/3.1/"
"rodinia_3.1.tar.bz2"
},
local="rodinia.tar.bz2",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/backprop",
"src": {NAME: ["backprop_kernel.c", "imagenet.c", "facetrain.c", "backprop.c"]},
"flags": ["-fopenmp", "-lm"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/bfs",
"src": {NAME: ["bfs.cpp"]},
"flags": ["-fopenmp", "-UOPEN"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/b+tree",
"src": {
"b+tree.out": [
"./main.c",
"./kernel/kernel_cpu.c",
"./kernel/kernel_cpu_2.c",
"./util/timer/timer.c",
"./util/num/num.c",
]
},
"flags": ["-fopenmp", "-lm"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/heartwall",
"src": {NAME: ["./AVI/avimod.c", "./AVI/avilib.c", "./main.c"]},
"flags": ["-I./AVI", "-fopenmp", "-lm"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/hotspot",
"src": {NAME: ["hotspot_openmp.cpp"]},
"flags": ["-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/hotspot3D",
"src": {"3D": ["./3D.c"]},
"flags": ["-fopenmp", "-lm"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/kmeans",
"src": {
"./kmeans_serial/kmeans": [
"./kmeans_serial/kmeans_clustering.c",
"./kmeans_serial/kmeans.c",
"./kmeans_serial/getopt.c",
"./kmeans_serial/cluster.c",
],
"./kmeans_openmp/kmeans": [
"./kmeans_openmp/kmeans_clustering.c",
"./kmeans_openmp/kmeans.c",
"./kmeans_openmp/getopt.c",
"./kmeans_openmp/cluster.c",
],
},
"flags": ["-lm", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/lavaMD",
"src": {
NAME: [
"./main.c",
"./util/timer/timer.c",
"./util/num/num.c",
"./kernel/kernel_cpu.c",
]
},
"flags": ["-lm", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/leukocyte",
"src": {
NAME: [
"./meschach_lib/memstat.c",
"./meschach_lib/meminfo.c",
"./meschach_lib/version.c",
"./meschach_lib/ivecop.c",
"./meschach_lib/matlab.c",
"./meschach_lib/machine.c",
"./meschach_lib/otherio.c",
"./meschach_lib/init.c",
"./meschach_lib/submat.c",
"./meschach_lib/pxop.c",
"./meschach_lib/matop.c",
"./meschach_lib/vecop.c",
"./meschach_lib/memory.c",
"./meschach_lib/matrixio.c",
"./meschach_lib/err.c",
"./meschach_lib/copy.c",
"./meschach_lib/bdfactor.c",
"./meschach_lib/mfunc.c",
"./meschach_lib/fft.c",
"./meschach_lib/svd.c",
"./meschach_lib/schur.c",
"./meschach_lib/symmeig.c",
"./meschach_lib/hessen.c",
"./meschach_lib/norm.c",
"./meschach_lib/update.c",
"./meschach_lib/givens.c",
"./meschach_lib/hsehldr.c",
"./meschach_lib/solve.c",
"./meschach_lib/qrfactor.c",
"./meschach_lib/chfactor.c",
"./meschach_lib/bkpfacto.c",
"./meschach_lib/lufactor.c",
"./meschach_lib/iternsym.c",
"./meschach_lib/itersym.c",
"./meschach_lib/iter0.c",
"./meschach_lib/spswap.c",
"./meschach_lib/spbkp.c",
"./meschach_lib/splufctr.c",
"./meschach_lib/spchfctr.c",
"./meschach_lib/sparseio.c",
"./meschach_lib/sprow.c",
"./meschach_lib/sparse.c",
"./meschach_lib/zfunc.c",
"./meschach_lib/znorm.c",
"./meschach_lib/zmatop.c",
"./meschach_lib/zvecop.c",
"./meschach_lib/zmemory.c",
"./meschach_lib/zmatio.c",
"./meschach_lib/zcopy.c",
"./meschach_lib/zmachine.c",
"./meschach_lib/zschur.c",
"./meschach_lib/zhessen.c",
"./meschach_lib/zgivens.c",
"./meschach_lib/zqrfctr.c",
"./meschach_lib/zhsehldr.c",
"./meschach_lib/zmatlab.c",
"./meschach_lib/zsolve.c",
"./meschach_lib/zlufctr.c",
"./OpenMP/detect_main.c",
"./OpenMP/misc_math.c",
"./OpenMP/track_ellipse.c",
"./OpenMP/find_ellipse.c",
"./OpenMP/avilib.c",
]
},
"flags": [
"-DSPARSE",
"-DCOMPLEX",
"-DREAL_FLT",
"-DREAL_DBL",
"-I./meschach_lib",
"-lm",
"-lpthread",
"-fopenmp",
],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/lud",
"src": {
"./omp/lud_omp": ["./common/common.c", "./omp/lud_omp.c", "./omp/lud.c"]
},
"flags": ["-I./common", "-lm", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/myocyte",
"src": {"./myocyte.out": ["main.c"]},
"flags": ["-lm", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/nn",
"src": {NAME: ["./nn_openmp.c"]},
"flags": ["-lm", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/nw",
"src": {"needle": ["./needle.cpp"]},
"flags": ["-lm", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/particlefilter",
"src": {"particle_filter": ["./ex_particle_OPENMP_seq.c"]},
"flags": ["-lm", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/pathfinder",
"src": {"pathfinder": ["./pathfinder.cpp"]},
"flags": ["-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/srad/srad_v1",
"src": {"srad": ["./main.c"]},
"flags": ["-I.", "-lm", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/srad/srad_v2",
"src": {"srad": ["./srad.cpp"]},
"flags": ["-lm", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/streamcluster",
"src": {"./sc_omp": ["./streamcluster_omp.cpp"]},
"flags": ["-lpthread", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={"2.1c": "http://math.nist.gov/scimark2/scimark2_1c.zip"},
local="scimark.zip",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/bsc-pm/bots",
local="bots.git",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"1.10": "http://ccrypt.sourceforge.net/download/ccrypt-1.10.tar.gz"
},
local="ccrypt.tar.gz",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"25.2": ("http://www.craftychess.com/downloads/source/crafty-25.2.zip")
},
local="crafty.zip",
),
HTTP(
remote={"1.0": "http://www.craftychess.com/downloads/book/book.bin"},
local="book.bin",
),
HTTP(
remote={
"2016-11-crafty.tar.gz": "http://lairosiel.de/dist/2016-11-crafty.tar.gz"
},
local="inputs.tar.gz",
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={"2.1.4": "http://crocopat.googlecode.com/files/crocopat-2.1.4.zip"},
local="crocopat.zip",
),
HTTP(
remote={"2014-10": "http://lairosiel.de/dist/2014-10-crocopat.tar.gz"},
local="inputs.tar.gz",
),
]


⚠️ [ruff] <UP034> reported by reviewdog 🐶
Avoid extraneous parentheses

_crocopat_project = bb.watch((cat[_project] | crocopat[program]))


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={"3.1.3": "http://ffmpeg.org/releases/ffmpeg-3.1.3.tar.bz2"},
local="ffmpeg.tar.bz2",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={"1.6": "http://ftpmirror.gnu.org/gzip/gzip-1.6.tar.xz"},
local="gzip.tar.xz",
),
HTTP(
remote={"1.0": "http://lairosiel.de/dist/compression.tar.gz"},
local="compression.tar.gz",
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/mozilla/gecko-dev.git",
local="gecko-dev.git",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/lammps/lammps",
local="lammps.git",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/xianyi/OpenBLAS",
local="OpenBLAS",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={"3.2.1": "http://www.netlib.org/clapack/clapack.tgz"},
local="clapack.tgz",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/google/leveldb",
local="leveldb.src",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={"5_88": "http://www.netlib.org/benchmark/linpackc.new"},
local="linpack.c",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/LLNL/LULESH/",
local="lulesh.git",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/LLNL/LULESH/",
local="lulesh.git",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"2.6.8": (
"http://sourceforge.net/projects/mcrypt/files/MCrypt/"
"2.6.8/mcrypt-2.6.8.tar.gz"
)
},
local="mcrypt.tar.gz",
),
HTTP(
remote={
"2.5.8": (
"http://sourceforge.net/projects/mcrypt/files/Libmcrypt/"
"2.5.8/libmcrypt-2.5.8.tar.gz"
)
},
local="libmcrypt.tar.gz",
),
HTTP(
remote={
"0.9.9.9": (
"http://sourceforge.net/projects/mhash/files/mhash/"
"0.9.9.9/mhash-0.9.9.9.tar.gz"
)
},
local="mhash.tar.gz",
),
]


⚠️ [ruff] <C408> reported by reviewdog 🐶
Unnecessary dict() call (rewrite as a literal)

mod_env = dict(
CC=_cc,
CXX=_cxx,
LD_LIBRARY_PATH=path.list_to_path(
[str(lib_dir)] + env.get("LD_LIBRARY_PATH", [])
),
LDFLAGS="-L" + str(lib_dir),
CFLAGS="-I" + str(inc_dir),
)


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/niklasso/minisat",
local="minisat.git",
limit=5,
refspec="HEAD",
),
HTTP(
remote={
"2016-11-minisat.tar.gz": "http://lairosiel.de/dist/2016-11-minisat.tar.gz"
},
local="inputs.tar.gz",
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

BINARIES = [
"aeadtest",
"aes_wrap",
"asn1test",
"base64test",
"bftest",
"bntest",
"bytestringtest",
"casttest",
"chachatest",
"cipherstest",
"cts128test",
"destest",
"dhtest",
"dsatest",
"ecdhtest",
"ecdsatest",
"ectest",
"enginetest",
"evptest",
"exptest",
"gcm128test",
"gost2814789t",
"hmactest",
"ideatest",
"igetest",
"md4test",
"md5test",
"mdc2test",
"mont",
"pbkdf2",
"pkcs7test",
"poly1305test",
"pq_test",
"randtest",
"rc2test",
"rc4test",
"rmdtest",
"sha1test",
"sha256test",
"sha512test",
"shatest",
"ssltest",
"timingsafe",
"utf8test",
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"2.1.6.": (
"http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.1.6.tar.gz"
)
},
local="libressl.tar.gz",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(remote="https://github.com/POV-Ray/povray", local="povray.git"),
HTTP(
remote={
"1.59.0": "http://sourceforge.net/projects/boost/files/boost/1.59.0/"
"boost_1_59_0.tar.bz2"
},
local="boost.tar.bz2",
),
HTTP(
remote={"2016-05-povray": "http://lairosiel.de/dist/2016-05-povray.tar.gz"},
local="inputs.tar.gz",
),
]


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

_bootstrap("--with-toolset=clang", '--prefix="{0}"'.format(boost_prefix))


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

_bootstrap("--with-toolset=clang", '--prefix="{0}"'.format(boost_prefix))


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"3.4.3": ("https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz")
},
local="python.tar.xz",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="git://rasdaman.org/rasdaman.git",
local="rasdaman.git",
limit=5,
refspec="HEAD",
),
Git(
remote="https://github.com/OSGeo/gdal",
local="gdal.git",
limit=5,
refspec="HEAD",
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"2.2.2": ("http://cache.ruby-lang.org/pub/ruby/2.2.2/ruby-2.2.2.tar.gz")
},
local="ruby.tar.gz",
),
HTTP(
remote={
"2016-11-ruby-inputs.tar.gz": "http://lairosiel.de/dist/2016-11-ruby-inputs.tar.gz"
},
local="inputs.tar.gz",
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"16.02": "http://downloads.sourceforge.net/"
"project/p7zip/p7zip/16.02/p7zip_16.02_src_all.tar.bz2"
},
local="p7zip.tar.bz2",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"3080900": "http://www.sqlite.org/2015/sqlite-amalgamation-3080900.zip"
},
local="sqlite.zip",
),
Git(
remote="https://github.com/google/leveldb",
local="leveldb.src",
refspec="HEAD",
limit=5,
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"0.9.26": (
"http://download-mirror.savannah.gnu.org/releases/"
"tinycc/tcc-0.9.26.tar.bz2"
)
},
local="tcc.tar.bz2",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://code.videolan.org/videolan/x264.git",
local="x264.git",
refspec="HEAD",
limit=5,
),
HTTP(
remote={"tbbt-small": "http://lairosiel.de/dist/tbbt-small.y4m"},
local="tbbt-small.y4m",
),
HTTP(
remote={"sintel": "http://lairosiel.de/dist/Sintel.2010.720p.raw"},
local="sintel.raw",
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={"5.2.1": "http://tukaani.org/xz/xz-5.2.1.tar.gz"}, local="xz.tar.gz"
),
HTTP(
remote={"1.0": "http://lairosiel.de/dist/compression.tar.gz"},
local="compression.tar.gz",
),
]


⚠️ [ruff] <F401> reported by reviewdog 🐶
.autoportage imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.bzip2 imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.crafty imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.eix imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.gentoo imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.gzip imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.info imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.lammps imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.postgresql imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.sevenz imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.x264 imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.xz imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

"Auto{0}{1}".format(domain, name), domain + "_" + name, domain


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"Auto{0}{1}".format(domain, name), domain + "_" + name, domain


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

testfiles = ["text.html", "chicken.jpg", "control", "input.source", "liberty.jpg"]


⚠️ [ruff] <UP034> reported by reviewdog 🐶
Avoid extraneous parentheses

crafty_test1 = bb.watch((cat["test1.sh"] | crafty))


⚠️ [ruff] <UP034> reported by reviewdog 🐶
Avoid extraneous parentheses

crafty_test2 = bb.watch((cat["test2.sh"] | crafty))


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

package_atom = "{domain}/{name}".format(domain=self.domain, name=self.name)


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

lines = """
export PATH="{0}:${{PATH}}"
export LD_LIBRARY_PATH="{1}:${{LD_LIBRARY_PATH}}"
""".format(path.list_to_path(paths), path.list_to_path(libs))


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

lines = """
export PATH="{0}:${{PATH}}"
export LD_LIBRARY_PATH="{1}:${{LD_LIBRARY_PATH}}"
""".format(path.list_to_path(paths), path.list_to_path(libs))


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

testfiles = ["text.html", "chicken.jpg", "control", "input.source", "liberty.jpg"]


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

package_atom = "{0}/{1}".format(parts[0], parts[1])


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

package_atom = "{0}/{1}".format(parts[0], parts[1])


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

inputfiles = {
"tbbt-small.y4m": [],
"Sintel.2010.720p.raw": ["--input-res", "1280x720"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

testfiles = ["text.html", "chicken.jpg", "control", "input.source", "liberty.jpg"]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

NAME_FILTERS = [
r"(?P<name>.+)\.simple",
r"(?P<name>.+)-(dbl|flt)",
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(remote="http://llvm.org/git/lnt", local="lnt.git", refspec="HEAD", limit=5),
Git(
remote="http://llvm.org/git/test-suite",
local="test-suite",
refspec="HEAD",
limit=5,
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(remote="http://llvm.org/git/lnt", local="lnt.git", refspec="HEAD", limit=5),
Git(
remote="http://llvm.org/git/test-suite",
local="test-suite",
refspec="HEAD",
limit=5,
),
Git(
remote="https://github.com/POV-Ray/povray",
local="povray.git",
refspec="HEAD",
limit=5,
),
]


⚠️ [ruff] <PIE794> reported by reviewdog 🐶
Class field DOMAIN is defined multiple times


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/simbuerg/polybench-c-4.2-1.git",
local="polybench.git",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"4.2": (
"http://downloads.sourceforge.net/project/"
"polybench/polybench-c-4.2.tar.gz"
)
},
local="polybench.tar.gz",
)
]


⚠️ [ruff] <SIM117> reported by reviewdog 🐶
Use a single with statement with multiple contexts instead of nested with statements

with open(stderr_raw, "r") as stderr:
with open(stderr_filtered, "w") as stderr_filt:


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [TestSource("1", "2", "3"), CAWTestSource(("1", "caw_0"), ("3", "caw_0"))]


⚠️ [ruff] <DTZ005> reported by reviewdog 🐶
datetime.datetime.now() called without a tz argument

"experiment_description": {"default": str(datetime.now()), "export": False},


⚠️ [ruff] <F601> reported by reviewdog 🐶
Dictionary key literal "input" repeated

"input": {"default": "container.tar.bz2", "desc": "Input container file/folder."},


⚠️ [ruff] <F601> reported by reviewdog 🐶
Dictionary key literal "output" repeated

"output": {"default": "container-out.tar.bz2", "desc": "Output container file."},


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use type instead of tp.Type for type annotation

self, project_cls: tp.Type["Project"], _primary: Variant, *variants: Variant


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

Sources = tp.List["FetchableSource"]


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use type instead of tp.Type for type annotation

project_cls: tp.Type["Project"],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use type instead of tp.Type for type annotation

project_cls: tp.Type["Project"], context: Revision, *sources: ContextAwareSource


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use set instead of tp.Set for type annotation

_fetched_cache: tp.Set["Git"] = set()


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

result: StepResult, error_status: tp.Optional[tp.List[StepResult]] = None


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

result: StepResult, error_status: tp.Optional[tp.List[StepResult]] = None


⚠️ [ruff] <UP037> reported by reviewdog 🐶
Remove quotes from type annotation

def wrapper(self: "Step", indent: int) -> str: ...


⚠️ [ruff] <UP037> reported by reviewdog 🐶
Remove quotes from type annotation

def wrapper(self: "Step") -> str: ...


⚠️ [ruff] <B010> reported by reviewdog 🐶
Do not call setattr with a constant attribute value. It is not any safer than normal property access.

setattr(
cls, "__call__", log_before_after(cls.NAME, cls.DESCRIPTION)(cls.__call__)
)


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

self, actions: tp.Optional[tp.MutableSequence[StepTy_co]] = None


⚠️ [ruff] <UP037> reported by reviewdog 🐶
Remove quotes from type annotation

self, project: "benchbuild.project.Project", check_empty: bool = False


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

workload: tp.Optional[WorkloadTy] = None,


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

"uchroot needs an entry for user '{0}' in '/etc/subuid'.".format(username)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"uchroot needs an entry for user '{0}' in '/etc/subuid'.".format(username)


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

"uchroot needs an entry for user '{0}' in '/etc/subgid'.".format(username)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"uchroot needs an entry for user '{0}' in '/etc/subgid'.".format(username)


⚠️ [ruff] <SIM201> reported by reviewdog 🐶
Use platform.system() != "Linux" instead of not platform.system() == "Linux"

if not platform.system() == "Linux":


⚠️ [ruff] <DTZ004> reported by reviewdog 🐶
datetime.datetime.utcfromtimestamp() used

_version = datetime.utcfromtimestamp(int(_version)).strftime("%Y-%m-%d")


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

return "http://distfiles.gentoo.org/releases/amd64/autobuilds/{0}".format(
self.src_file
)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

return "http://distfiles.gentoo.org/releases/amd64/autobuilds/{0}".format(
self.src_file
)


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

"-c", "tar --list -f './{0}' | grep --silent '.erlent'".format(name)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"-c", "tar --list -f './{0}' | grep --silent '.erlent'".format(name)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"The directory {dirname} does not exist yet. Should I create it?".format(
dirname=dirpath
),


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use type instead of tp.Type for type annotation

cls: tp.Type[RequirementSubType],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use tuple instead of tp.Tuple for type annotation

timelimit: tp.Tuple[int, int, int, int] = attr.ib(converter=_convert_to_time_tuple)


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

def __init__(self, id_start: str, id_end: str, comment: tp.Optional[str] = None):


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

good: tp.List["pygit2.Commit"],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

bad: tp.List["pygit2.Commit"],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

) -> tp.List["pygit2.Commit"]:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

stack: tp.List["pygit2.Commit"] = [commit]


⚠️ [ruff] <UP037> reported by reviewdog 🐶
Remove quotes from type annotation

stack: tp.List["pygit2.Commit"] = [commit]


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

blocked: tp.Dict["pygit2.Commit", CommitState] = {}


⚠️ [ruff] <UP037> reported by reviewdog 🐶
Remove quotes from type annotation

blocked: tp.Dict["pygit2.Commit", CommitState] = {}


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

comment: tp.Optional[str] = None,


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use tuple instead of tp.Tuple for type annotation

def is_blocked_revision_impl(rev_id: str) -> tp.Tuple[bool, tp.Optional[str]]:


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

def is_blocked_revision_impl(rev_id: str) -> tp.Tuple[bool, tp.Optional[str]]:


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

return t.indent("{{\n{:s}\n}}".format(ret), level * idt)


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

error_messages: tp.Optional[tp.Dict[Exception, str]] = None,


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

error_messages: tp.Optional[tp.Dict[Exception, str]] = None,


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

return ("<Run: {0} status={1} run={2}>").format(
self.project_name, self.status, self.id
)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

return ("<Run: {0} status={1} run={2}>").format(
self.project_name, self.status, self.id
)


⚠️ [ruff] <SIM115> reported by reviewdog 🐶
Use a context manager for opening files

r"(?m)^Cpus_allowed:\s*(.*)$", open("/proc/self/status").read()


⚠️ [ruff] <FURB161> reported by reviewdog 🐶
Use of bin(int(match.group(1).replace(",", ""), 16)).count('1')

res = bin(int(match.group(1).replace(",", ""), 16)).count("1")


⚠️ [ruff] <SIM115> reported by reviewdog 🐶
Use a context manager for opening files

res = open("/proc/cpuinfo").read().count("processor\t:")


⚠️ [ruff] <TRY002> reported by reviewdog 🐶
Create your own exception

raise Exception("Can not determine number of CPUs on this system")


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

def load_rec(inode: tp.Dict[str, tp.Any], config: Configuration) -> None:


⚠️ [ruff] <UP031> reported by reviewdog 🐶
Use format specifiers instead of percent format

return dumper.represent_scalar("!create-if-needed", "%s" % data)


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

env_var_name: tp.Optional[str] = None,


⚠️ [ruff] <UP031> reported by reviewdog 🐶
Use format specifiers instead of percent format

return dumper.represent_scalar("!uuid", "%s" % data)


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

tp.cast(tp.List[Requirement], []),


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

retry_retcodes: tp.Optional[tp.List[int]] = None,


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

retry_retcodes: tp.Optional[tp.List[int]] = None,


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

def clean_env(uchroot_cmd: BoundCommand, varnames: tp.List[str]) -> BoundCommand:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

def __mounts__(prefix: str, _mounts: tp.List) -> tp.Tuple[tp.List[str], tp.List[str]]:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use tuple instead of tp.Tuple for type annotation

def __mounts__(prefix: str, _mounts: tp.List) -> tp.Tuple[tp.List[str], tp.List[str]]:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

def __mounts__(prefix: str, _mounts: tp.List) -> tp.Tuple[tp.List[str], tp.List[str]]:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

def __mounts__(prefix: str, _mounts: tp.List) -> tp.Tuple[tp.List[str], tp.List[str]]:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

uchroot_mounts: tp.List[str],


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

num_commits: int = 2, git_submodule: tp.Optional[git.Repo] = None


⚠️ [ruff] <C408> reported by reviewdog 🐶
Unnecessary dict() call (rewrite as a literal)

layer = model.RunLayer("cmd", ("a", "b", "c"), dict(a="a", b="b", c="c"))


⚠️ [ruff] <C408> reported by reviewdog 🐶
Unnecessary dict() call (rewrite as a literal)

layer = model.UpdateEnv(dict(a="a", b="b", c="c"))


⚠️ [ruff] <C408> reported by reviewdog 🐶
Unnecessary dict() call (rewrite as a literal)

model.RunLayer("cmd", ("a", "b", "c"), dict(a="a", b="b", c="c")),


⚠️ [ruff] <C408> reported by reviewdog 🐶
Unnecessary dict() call (rewrite as a literal)

model.UpdateEnv(dict(a="a", b="b", c="c")),


⚠️ [ruff] <UP007> reported by reviewdog 🐶
Use X | Y for type annotations

remote: tp.Union[str, tp.Dict[str, str]],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

remote: tp.Union[str, tp.Dict[str, str]],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

test_versions: tp.List[str],


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [mksource(f"VersionSource_{i}") for i in range(num_sources)]


⚠️ [ruff] <UP007> reported by reviewdog 🐶
Use X | Y for type annotations

remote: tp.Union[str, tp.Dict[str, str]],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

remote: tp.Union[str, tp.Dict[str, str]],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

known_versions: tp.List[str],


⚠️ [ruff] <UP007> reported by reviewdog 🐶
Use X | Y for type annotations

remote: tp.Union[str, tp.Dict[str, str]],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

remote: tp.Union[str, tp.Dict[str, str]],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

test_versions: tp.List[str],


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(local="src-a", remote={"v1a": "-", "v2a": "-", "v3": "-"}),
HTTP(local="src-b", remote={"v1b": "-", "v2b": "-", "v3": "-"}),
]


⚠️ [ruff] <F841> reported by reviewdog 🐶
Local variable spv is assigned to but never used

spv = SetProjectVersion(prj, RevisionStr("does-not-exist"))


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

name: tp.Optional[str] = None,


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use tuple instead of tp.Tuple for type annotation

bases: tp.Tuple[type, ...] = (Experiment,),


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use type instead of tp.Type for type annotation

) -> tp.Type[Experiment]:


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

"name", pkg, msg="{0} lacks 'name' attribute".format(str(pkg))


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"name", pkg, msg="{0} lacks 'name' attribute".format(str(pkg))


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

self.assertIn("env", pkg, msg="{0} lacks 'env' attribute".format(str(pkg)))


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

self.assertIn("env", pkg, msg="{0} lacks 'env' attribute".format(str(pkg)))

Comment on lines 3 to 12
__all__ = [
"main", "bootstrap", "config", "log", "project", "experiment", "run",
"slurm"
"main",
"bootstrap",
"config",
"log",
"project",
"experiment",
"run",
"slurm",
]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <RUF022> reported by reviewdog 🐶
__all__ is not sorted

Suggested change
__all__ = [
"main", "bootstrap", "config", "log", "project", "experiment", "run",
"slurm"
"main",
"bootstrap",
"config",
"log",
"project",
"experiment",
"run",
"slurm",
]
__all__ = [
"bootstrap",
"config",
"experiment",
"log",
"main",
"project",
"run",
"slurm",
]

Comment thread benchbuild/cli/log.py Outdated
Comment on lines +17 to +25
(
"{0} @ {1} - {2} id: {3} group: {4}".format(
tup.end,
tup.experiment_name,
tup.project_name,
tup.experiment_group,
tup.run_group,
)
)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <UP034> reported by reviewdog 🐶
Avoid extraneous parentheses

Suggested change
(
"{0} @ {1} - {2} id: {3} group: {4}".format(
tup.end,
tup.experiment_name,
tup.project_name,
tup.experiment_group,
tup.run_group,
)
)
"{0} @ {1} - {2} id: {3} group: {4}".format(
tup.end,
tup.experiment_name,
tup.project_name,
tup.experiment_group,
tup.run_group,
)

Comment thread benchbuild/cli/log.py Outdated
Comment on lines +18 to +24
"{0} @ {1} - {2} id: {3} group: {4}".format(
tup.end,
tup.experiment_name,
tup.project_name,
tup.experiment_group,
tup.run_group,
)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

Suggested change
"{0} @ {1} - {2} id: {3} group: {4}".format(
tup.end,
tup.experiment_name,
tup.project_name,
tup.experiment_group,
tup.run_group,
)
"{} @ {} - {} id: {} group: {}".format(
tup.end,
tup.experiment_name,
tup.project_name,
tup.experiment_group,
tup.run_group,
)

Comment thread benchbuild/cli/log.py Outdated
Comment on lines +18 to +24
"{0} @ {1} - {2} id: {3} group: {4}".format(
tup.end,
tup.experiment_name,
tup.project_name,
tup.experiment_group,
tup.run_group,
)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

Suggested change
"{0} @ {1} - {2} id: {3} group: {4}".format(
tup.end,
tup.experiment_name,
tup.project_name,
tup.experiment_group,
tup.run_group,
)
f"{tup.end} @ {tup.experiment_name} - {tup.project_name} id: {tup.experiment_group} group: {tup.run_group}"

Comment thread benchbuild/cli/log.py Outdated
Comment on lines +36 to +45
(
"{0} @ {1} - {2} id: {3} group: {4} status: {5}".format(
run.end,
run.experiment_name,
run.project_name,
run.experiment_group,
run.run_group,
log.status,
)
)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <UP034> reported by reviewdog 🐶
Avoid extraneous parentheses

Suggested change
(
"{0} @ {1} - {2} id: {3} group: {4} status: {5}".format(
run.end,
run.experiment_name,
run.project_name,
run.experiment_group,
run.run_group,
log.status,
)
)
"{0} @ {1} - {2} id: {3} group: {4} status: {5}".format(
run.end,
run.experiment_name,
run.project_name,
run.experiment_group,
run.run_group,
log.status,
)

_handle_command(cmd_handlers, message, queue)
else:
raise Exception(f'{message} was not an Event or Command')
raise Exception(f"{message} was not an Event or Command")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <TRY002> reported by reviewdog 🐶
Create your own exception

Comment on lines +85 to +88
(
"Command could not be executed, because I could not find a required"
f" image: {ex}"
)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <UP034> reported by reviewdog 🐶
Avoid extraneous parentheses

Suggested change
(
"Command could not be executed, because I could not find a required"
f" image: {ex}"
)
"Command could not be executed, because I could not find a required"
f" image: {ex}"

Comment on lines +36 to +39
(
f"[bold]{event.name}[/bold]\n"
f"[red]Failed to create layer while building {event.image_tag}.[/red]\n"
)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <UP034> reported by reviewdog 🐶
Avoid extraneous parentheses

Suggested change
(
f"[bold]{event.name}[/bold]\n"
f"[red]Failed to create layer while building {event.image_tag}.[/red]\n"
)
f"[bold]{event.name}[/bold]\n"
f"[red]Failed to create layer while building {event.image_tag}.[/red]\n"

import abc
import logging
import sys
import typing as tp

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <PYI034> reported by reviewdog 🐶
__enter__ methods in classes like ImageUnitOfWork usually return self at runtime

Suggested change
import typing as tp
import typing as tp
reviewdog suggestion errorGitHub comment range and suggestion line range must be same. L3-L3 v.s. L44-L44

import abc
import logging
import sys
import typing as tp

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <PYI034> reported by reviewdog 🐶
__enter__ methods in classes like ContainerUnitOfWork usually return self at runtime

Suggested change
import typing as tp
import typing as tp
reviewdog suggestion errorGitHub comment range and suggestion line range must be same. L3-L3 v.s. L138-L138

Comment thread benchbuild/cli/run.py

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"""
Summary:
{num_total} actions were in the queue.
{num_failed} actions failed to execute.
This run took: {elapsed_time:8.3f} seconds.
""".format(num_total=num_actions, num_failed=num_failed, elapsed_time=duration)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

path_dict = {
"alignment": "serial/alignment",
"fft": "serial/fft",
"fib": "serial/fib",
"floorplan": "serial/floorplan",
"health": "serial/health",
"knapsack": "serial/knapsack",
"nqueens": "serial/nqueens",
"sort": "serial/sort",
"sparselu": "serial/sparselu",
"strassen": "serial/strassen",
"uts": "serial/uts",
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

input_dict = {
"alignment": ["prot.100.aa", "prot.20.aa"],
"floorplan": ["input.15", "input.20", "input.5"],
"health": ["large.input", "medium.input", "small.input", "test.input"],
"knapsack": [
"knapsack-012.input",
"knapsack-016.input",
"knapsack-020.input",
"knapsack-024.input",
"knapsack-032.input",
"knapsack-036.input",
"knapsack-040.input",
"knapsack-044.input",
"knapsack-048.input",
"knapsack-064.input",
"knapsack-096.input",
"knapsack-128.input",
],
"uts": [
"huge.input",
"large.input",
"medium.input",
"small.input",
"test.input",
"tiny.input",
],
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

WORKLOADS = {
WorkloadSet(): [
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 1),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 2),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 3),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 4),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 5),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 6),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 7),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 8),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 9),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 10),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 11),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 12),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 13),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 14),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 15),
]
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

WORKLOADS = {
WorkloadSet(): [
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 1),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 2),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 3),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 4),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 5),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 6),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 7),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 8),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 9),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 10),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 11),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 12),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 13),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 14),
Command(SourceRoot("lulesh.git") / "lulesh", "-i", 15),
]
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <SIM103> reported by reviewdog 🐶
Return the negated condition directly

if (
SlurmHint.SlurmHints.nomultithread in hints
and SlurmHint.SlurmHints.multithread in hints
):
return False
return True

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

return "<Project {group}@{domain}/{name} V:{version}>".format(
group=self.group_name,
domain=self.domain,
name=self.name,
version=self.version,
)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <I001> reported by reviewdog 🐶
Import block is un-sorted or un-formatted

import typing as tp
from functools import partial
import pytest
from plumbum import ProcessExecutionError
from benchbuild.environments.adapters.podman import (
ContainerCreateError,
remove_container,
)
from benchbuild.environments.domain import commands, events
from benchbuild.environments.domain import declarative as decl
from benchbuild.environments.service_layer import handlers, messagebus
from benchbuild.environments.service_layer import unit_of_work as uow
from benchbuild.settings import CFG
from benchbuild.utils import settings
from benchbuild.utils.cmd import cp, which

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

eslint

⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"3.1": "http://www.cs.virginia.edu/"
"~kw5na/lava/Rodinia/Packages/Current/3.1/"
"rodinia_3.1.tar.bz2"
},
local="rodinia.tar.bz2",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/backprop",
"src": {NAME: ["backprop_kernel.c", "imagenet.c", "facetrain.c", "backprop.c"]},
"flags": ["-fopenmp", "-lm"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/bfs",
"src": {NAME: ["bfs.cpp"]},
"flags": ["-fopenmp", "-UOPEN"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/b+tree",
"src": {
"b+tree.out": [
"./main.c",
"./kernel/kernel_cpu.c",
"./kernel/kernel_cpu_2.c",
"./util/timer/timer.c",
"./util/num/num.c",
]
},
"flags": ["-fopenmp", "-lm"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/heartwall",
"src": {NAME: ["./AVI/avimod.c", "./AVI/avilib.c", "./main.c"]},
"flags": ["-I./AVI", "-fopenmp", "-lm"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/hotspot",
"src": {NAME: ["hotspot_openmp.cpp"]},
"flags": ["-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/hotspot3D",
"src": {"3D": ["./3D.c"]},
"flags": ["-fopenmp", "-lm"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/kmeans",
"src": {
"./kmeans_serial/kmeans": [
"./kmeans_serial/kmeans_clustering.c",
"./kmeans_serial/kmeans.c",
"./kmeans_serial/getopt.c",
"./kmeans_serial/cluster.c",
],
"./kmeans_openmp/kmeans": [
"./kmeans_openmp/kmeans_clustering.c",
"./kmeans_openmp/kmeans.c",
"./kmeans_openmp/getopt.c",
"./kmeans_openmp/cluster.c",
],
},
"flags": ["-lm", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/lavaMD",
"src": {
NAME: [
"./main.c",
"./util/timer/timer.c",
"./util/num/num.c",
"./kernel/kernel_cpu.c",
]
},
"flags": ["-lm", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/leukocyte",
"src": {
NAME: [
"./meschach_lib/memstat.c",
"./meschach_lib/meminfo.c",
"./meschach_lib/version.c",
"./meschach_lib/ivecop.c",
"./meschach_lib/matlab.c",
"./meschach_lib/machine.c",
"./meschach_lib/otherio.c",
"./meschach_lib/init.c",
"./meschach_lib/submat.c",
"./meschach_lib/pxop.c",
"./meschach_lib/matop.c",
"./meschach_lib/vecop.c",
"./meschach_lib/memory.c",
"./meschach_lib/matrixio.c",
"./meschach_lib/err.c",
"./meschach_lib/copy.c",
"./meschach_lib/bdfactor.c",
"./meschach_lib/mfunc.c",
"./meschach_lib/fft.c",
"./meschach_lib/svd.c",
"./meschach_lib/schur.c",
"./meschach_lib/symmeig.c",
"./meschach_lib/hessen.c",
"./meschach_lib/norm.c",
"./meschach_lib/update.c",
"./meschach_lib/givens.c",
"./meschach_lib/hsehldr.c",
"./meschach_lib/solve.c",
"./meschach_lib/qrfactor.c",
"./meschach_lib/chfactor.c",
"./meschach_lib/bkpfacto.c",
"./meschach_lib/lufactor.c",
"./meschach_lib/iternsym.c",
"./meschach_lib/itersym.c",
"./meschach_lib/iter0.c",
"./meschach_lib/spswap.c",
"./meschach_lib/spbkp.c",
"./meschach_lib/splufctr.c",
"./meschach_lib/spchfctr.c",
"./meschach_lib/sparseio.c",
"./meschach_lib/sprow.c",
"./meschach_lib/sparse.c",
"./meschach_lib/zfunc.c",
"./meschach_lib/znorm.c",
"./meschach_lib/zmatop.c",
"./meschach_lib/zvecop.c",
"./meschach_lib/zmemory.c",
"./meschach_lib/zmatio.c",
"./meschach_lib/zcopy.c",
"./meschach_lib/zmachine.c",
"./meschach_lib/zschur.c",
"./meschach_lib/zhessen.c",
"./meschach_lib/zgivens.c",
"./meschach_lib/zqrfctr.c",
"./meschach_lib/zhsehldr.c",
"./meschach_lib/zmatlab.c",
"./meschach_lib/zsolve.c",
"./meschach_lib/zlufctr.c",
"./OpenMP/detect_main.c",
"./OpenMP/misc_math.c",
"./OpenMP/track_ellipse.c",
"./OpenMP/find_ellipse.c",
"./OpenMP/avilib.c",
]
},
"flags": [
"-DSPARSE",
"-DCOMPLEX",
"-DREAL_FLT",
"-DREAL_DBL",
"-I./meschach_lib",
"-lm",
"-lpthread",
"-fopenmp",
],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/lud",
"src": {
"./omp/lud_omp": ["./common/common.c", "./omp/lud_omp.c", "./omp/lud.c"]
},
"flags": ["-I./common", "-lm", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/myocyte",
"src": {"./myocyte.out": ["main.c"]},
"flags": ["-lm", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/nn",
"src": {NAME: ["./nn_openmp.c"]},
"flags": ["-lm", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/nw",
"src": {"needle": ["./needle.cpp"]},
"flags": ["-lm", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/particlefilter",
"src": {"particle_filter": ["./ex_particle_OPENMP_seq.c"]},
"flags": ["-lm", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/pathfinder",
"src": {"pathfinder": ["./pathfinder.cpp"]},
"flags": ["-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/srad/srad_v1",
"src": {"srad": ["./main.c"]},
"flags": ["-I.", "-lm", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/srad/srad_v2",
"src": {"srad": ["./srad.cpp"]},
"flags": ["-lm", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

CONFIG = {
"dir": "openmp/streamcluster",
"src": {"./sc_omp": ["./streamcluster_omp.cpp"]},
"flags": ["-lpthread", "-fopenmp"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={"2.1c": "http://math.nist.gov/scimark2/scimark2_1c.zip"},
local="scimark.zip",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/bsc-pm/bots",
local="bots.git",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"1.10": "http://ccrypt.sourceforge.net/download/ccrypt-1.10.tar.gz"
},
local="ccrypt.tar.gz",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"25.2": ("http://www.craftychess.com/downloads/source/crafty-25.2.zip")
},
local="crafty.zip",
),
HTTP(
remote={"1.0": "http://www.craftychess.com/downloads/book/book.bin"},
local="book.bin",
),
HTTP(
remote={
"2016-11-crafty.tar.gz": "http://lairosiel.de/dist/2016-11-crafty.tar.gz"
},
local="inputs.tar.gz",
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={"2.1.4": "http://crocopat.googlecode.com/files/crocopat-2.1.4.zip"},
local="crocopat.zip",
),
HTTP(
remote={"2014-10": "http://lairosiel.de/dist/2014-10-crocopat.tar.gz"},
local="inputs.tar.gz",
),
]


⚠️ [ruff] <UP034> reported by reviewdog 🐶
Avoid extraneous parentheses

_crocopat_project = bb.watch((cat[_project] | crocopat[program]))


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={"3.1.3": "http://ffmpeg.org/releases/ffmpeg-3.1.3.tar.bz2"},
local="ffmpeg.tar.bz2",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={"1.6": "http://ftpmirror.gnu.org/gzip/gzip-1.6.tar.xz"},
local="gzip.tar.xz",
),
HTTP(
remote={"1.0": "http://lairosiel.de/dist/compression.tar.gz"},
local="compression.tar.gz",
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/mozilla/gecko-dev.git",
local="gecko-dev.git",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/lammps/lammps",
local="lammps.git",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/xianyi/OpenBLAS",
local="OpenBLAS",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={"3.2.1": "http://www.netlib.org/clapack/clapack.tgz"},
local="clapack.tgz",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/google/leveldb",
local="leveldb.src",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={"5_88": "http://www.netlib.org/benchmark/linpackc.new"},
local="linpack.c",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/LLNL/LULESH/",
local="lulesh.git",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/LLNL/LULESH/",
local="lulesh.git",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"2.6.8": (
"http://sourceforge.net/projects/mcrypt/files/MCrypt/"
"2.6.8/mcrypt-2.6.8.tar.gz"
)
},
local="mcrypt.tar.gz",
),
HTTP(
remote={
"2.5.8": (
"http://sourceforge.net/projects/mcrypt/files/Libmcrypt/"
"2.5.8/libmcrypt-2.5.8.tar.gz"
)
},
local="libmcrypt.tar.gz",
),
HTTP(
remote={
"0.9.9.9": (
"http://sourceforge.net/projects/mhash/files/mhash/"
"0.9.9.9/mhash-0.9.9.9.tar.gz"
)
},
local="mhash.tar.gz",
),
]


⚠️ [ruff] <C408> reported by reviewdog 🐶
Unnecessary dict() call (rewrite as a literal)

mod_env = dict(
CC=_cc,
CXX=_cxx,
LD_LIBRARY_PATH=path.list_to_path(
[str(lib_dir)] + env.get("LD_LIBRARY_PATH", [])
),
LDFLAGS="-L" + str(lib_dir),
CFLAGS="-I" + str(inc_dir),
)


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/niklasso/minisat",
local="minisat.git",
limit=5,
refspec="HEAD",
),
HTTP(
remote={
"2016-11-minisat.tar.gz": "http://lairosiel.de/dist/2016-11-minisat.tar.gz"
},
local="inputs.tar.gz",
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

BINARIES = [
"aeadtest",
"aes_wrap",
"asn1test",
"base64test",
"bftest",
"bntest",
"bytestringtest",
"casttest",
"chachatest",
"cipherstest",
"cts128test",
"destest",
"dhtest",
"dsatest",
"ecdhtest",
"ecdsatest",
"ectest",
"enginetest",
"evptest",
"exptest",
"gcm128test",
"gost2814789t",
"hmactest",
"ideatest",
"igetest",
"md4test",
"md5test",
"mdc2test",
"mont",
"pbkdf2",
"pkcs7test",
"poly1305test",
"pq_test",
"randtest",
"rc2test",
"rc4test",
"rmdtest",
"sha1test",
"sha256test",
"sha512test",
"shatest",
"ssltest",
"timingsafe",
"utf8test",
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"2.1.6.": (
"http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.1.6.tar.gz"
)
},
local="libressl.tar.gz",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(remote="https://github.com/POV-Ray/povray", local="povray.git"),
HTTP(
remote={
"1.59.0": "http://sourceforge.net/projects/boost/files/boost/1.59.0/"
"boost_1_59_0.tar.bz2"
},
local="boost.tar.bz2",
),
HTTP(
remote={"2016-05-povray": "http://lairosiel.de/dist/2016-05-povray.tar.gz"},
local="inputs.tar.gz",
),
]


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

_bootstrap("--with-toolset=clang", '--prefix="{0}"'.format(boost_prefix))


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

_bootstrap("--with-toolset=clang", '--prefix="{0}"'.format(boost_prefix))


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"3.4.3": ("https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz")
},
local="python.tar.xz",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="git://rasdaman.org/rasdaman.git",
local="rasdaman.git",
limit=5,
refspec="HEAD",
),
Git(
remote="https://github.com/OSGeo/gdal",
local="gdal.git",
limit=5,
refspec="HEAD",
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"2.2.2": ("http://cache.ruby-lang.org/pub/ruby/2.2.2/ruby-2.2.2.tar.gz")
},
local="ruby.tar.gz",
),
HTTP(
remote={
"2016-11-ruby-inputs.tar.gz": "http://lairosiel.de/dist/2016-11-ruby-inputs.tar.gz"
},
local="inputs.tar.gz",
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"16.02": "http://downloads.sourceforge.net/"
"project/p7zip/p7zip/16.02/p7zip_16.02_src_all.tar.bz2"
},
local="p7zip.tar.bz2",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"3080900": "http://www.sqlite.org/2015/sqlite-amalgamation-3080900.zip"
},
local="sqlite.zip",
),
Git(
remote="https://github.com/google/leveldb",
local="leveldb.src",
refspec="HEAD",
limit=5,
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"0.9.26": (
"http://download-mirror.savannah.gnu.org/releases/"
"tinycc/tcc-0.9.26.tar.bz2"
)
},
local="tcc.tar.bz2",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://code.videolan.org/videolan/x264.git",
local="x264.git",
refspec="HEAD",
limit=5,
),
HTTP(
remote={"tbbt-small": "http://lairosiel.de/dist/tbbt-small.y4m"},
local="tbbt-small.y4m",
),
HTTP(
remote={"sintel": "http://lairosiel.de/dist/Sintel.2010.720p.raw"},
local="sintel.raw",
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={"5.2.1": "http://tukaani.org/xz/xz-5.2.1.tar.gz"}, local="xz.tar.gz"
),
HTTP(
remote={"1.0": "http://lairosiel.de/dist/compression.tar.gz"},
local="compression.tar.gz",
),
]


⚠️ [ruff] <F401> reported by reviewdog 🐶
.autoportage imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.bzip2 imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.crafty imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.eix imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.gentoo imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.gzip imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.info imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.lammps imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.postgresql imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.sevenz imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.x264 imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.xz imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

"Auto{0}{1}".format(domain, name), domain + "_" + name, domain


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"Auto{0}{1}".format(domain, name), domain + "_" + name, domain


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

testfiles = ["text.html", "chicken.jpg", "control", "input.source", "liberty.jpg"]


⚠️ [ruff] <UP034> reported by reviewdog 🐶
Avoid extraneous parentheses

crafty_test1 = bb.watch((cat["test1.sh"] | crafty))


⚠️ [ruff] <UP034> reported by reviewdog 🐶
Avoid extraneous parentheses

crafty_test2 = bb.watch((cat["test2.sh"] | crafty))


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

package_atom = "{domain}/{name}".format(domain=self.domain, name=self.name)


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

lines = """
export PATH="{0}:${{PATH}}"
export LD_LIBRARY_PATH="{1}:${{LD_LIBRARY_PATH}}"
""".format(path.list_to_path(paths), path.list_to_path(libs))


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

lines = """
export PATH="{0}:${{PATH}}"
export LD_LIBRARY_PATH="{1}:${{LD_LIBRARY_PATH}}"
""".format(path.list_to_path(paths), path.list_to_path(libs))


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

testfiles = ["text.html", "chicken.jpg", "control", "input.source", "liberty.jpg"]


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

package_atom = "{0}/{1}".format(parts[0], parts[1])


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

package_atom = "{0}/{1}".format(parts[0], parts[1])


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

inputfiles = {
"tbbt-small.y4m": [],
"Sintel.2010.720p.raw": ["--input-res", "1280x720"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

testfiles = ["text.html", "chicken.jpg", "control", "input.source", "liberty.jpg"]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

NAME_FILTERS = [
r"(?P<name>.+)\.simple",
r"(?P<name>.+)-(dbl|flt)",
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(remote="http://llvm.org/git/lnt", local="lnt.git", refspec="HEAD", limit=5),
Git(
remote="http://llvm.org/git/test-suite",
local="test-suite",
refspec="HEAD",
limit=5,
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(remote="http://llvm.org/git/lnt", local="lnt.git", refspec="HEAD", limit=5),
Git(
remote="http://llvm.org/git/test-suite",
local="test-suite",
refspec="HEAD",
limit=5,
),
Git(
remote="https://github.com/POV-Ray/povray",
local="povray.git",
refspec="HEAD",
limit=5,
),
]


⚠️ [ruff] <PIE794> reported by reviewdog 🐶
Class field DOMAIN is defined multiple times


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/simbuerg/polybench-c-4.2-1.git",
local="polybench.git",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"4.2": (
"http://downloads.sourceforge.net/project/"
"polybench/polybench-c-4.2.tar.gz"
)
},
local="polybench.tar.gz",
)
]


⚠️ [ruff] <SIM117> reported by reviewdog 🐶
Use a single with statement with multiple contexts instead of nested with statements

with open(stderr_raw, "r") as stderr:
with open(stderr_filtered, "w") as stderr_filt:


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [TestSource("1", "2", "3"), CAWTestSource(("1", "caw_0"), ("3", "caw_0"))]


⚠️ [ruff] <DTZ005> reported by reviewdog 🐶
datetime.datetime.now() called without a tz argument

"experiment_description": {"default": str(datetime.now()), "export": False},


⚠️ [ruff] <F601> reported by reviewdog 🐶
Dictionary key literal "input" repeated

"input": {"default": "container.tar.bz2", "desc": "Input container file/folder."},


⚠️ [ruff] <F601> reported by reviewdog 🐶
Dictionary key literal "output" repeated

"output": {"default": "container-out.tar.bz2", "desc": "Output container file."},


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use type instead of tp.Type for type annotation

self, project_cls: tp.Type["Project"], _primary: Variant, *variants: Variant


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

Sources = tp.List["FetchableSource"]


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use type instead of tp.Type for type annotation

project_cls: tp.Type["Project"],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use type instead of tp.Type for type annotation

project_cls: tp.Type["Project"], context: Revision, *sources: ContextAwareSource


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use set instead of tp.Set for type annotation

_fetched_cache: tp.Set["Git"] = set()


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

result: StepResult, error_status: tp.Optional[tp.List[StepResult]] = None


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

result: StepResult, error_status: tp.Optional[tp.List[StepResult]] = None


⚠️ [ruff] <UP037> reported by reviewdog 🐶
Remove quotes from type annotation

def wrapper(self: "Step", indent: int) -> str: ...


⚠️ [ruff] <UP037> reported by reviewdog 🐶
Remove quotes from type annotation

def wrapper(self: "Step") -> str: ...


⚠️ [ruff] <B010> reported by reviewdog 🐶
Do not call setattr with a constant attribute value. It is not any safer than normal property access.

setattr(
cls, "__call__", log_before_after(cls.NAME, cls.DESCRIPTION)(cls.__call__)
)


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

self, actions: tp.Optional[tp.MutableSequence[StepTy_co]] = None


⚠️ [ruff] <UP037> reported by reviewdog 🐶
Remove quotes from type annotation

self, project: "benchbuild.project.Project", check_empty: bool = False


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

workload: tp.Optional[WorkloadTy] = None,


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

"uchroot needs an entry for user '{0}' in '/etc/subuid'.".format(username)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"uchroot needs an entry for user '{0}' in '/etc/subuid'.".format(username)


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

"uchroot needs an entry for user '{0}' in '/etc/subgid'.".format(username)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"uchroot needs an entry for user '{0}' in '/etc/subgid'.".format(username)


⚠️ [ruff] <SIM201> reported by reviewdog 🐶
Use platform.system() != "Linux" instead of not platform.system() == "Linux"

if not platform.system() == "Linux":


⚠️ [ruff] <DTZ004> reported by reviewdog 🐶
datetime.datetime.utcfromtimestamp() used

_version = datetime.utcfromtimestamp(int(_version)).strftime("%Y-%m-%d")


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

return "http://distfiles.gentoo.org/releases/amd64/autobuilds/{0}".format(
self.src_file
)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

return "http://distfiles.gentoo.org/releases/amd64/autobuilds/{0}".format(
self.src_file
)


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

"-c", "tar --list -f './{0}' | grep --silent '.erlent'".format(name)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"-c", "tar --list -f './{0}' | grep --silent '.erlent'".format(name)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"The directory {dirname} does not exist yet. Should I create it?".format(
dirname=dirpath
),


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use type instead of tp.Type for type annotation

cls: tp.Type[RequirementSubType],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use tuple instead of tp.Tuple for type annotation

timelimit: tp.Tuple[int, int, int, int] = attr.ib(converter=_convert_to_time_tuple)


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

def __init__(self, id_start: str, id_end: str, comment: tp.Optional[str] = None):


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

good: tp.List["pygit2.Commit"],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

bad: tp.List["pygit2.Commit"],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

) -> tp.List["pygit2.Commit"]:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

stack: tp.List["pygit2.Commit"] = [commit]


⚠️ [ruff] <UP037> reported by reviewdog 🐶
Remove quotes from type annotation

stack: tp.List["pygit2.Commit"] = [commit]


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

blocked: tp.Dict["pygit2.Commit", CommitState] = {}


⚠️ [ruff] <UP037> reported by reviewdog 🐶
Remove quotes from type annotation

blocked: tp.Dict["pygit2.Commit", CommitState] = {}


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

comment: tp.Optional[str] = None,


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use tuple instead of tp.Tuple for type annotation

def is_blocked_revision_impl(rev_id: str) -> tp.Tuple[bool, tp.Optional[str]]:


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

def is_blocked_revision_impl(rev_id: str) -> tp.Tuple[bool, tp.Optional[str]]:


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

return t.indent("{{\n{:s}\n}}".format(ret), level * idt)


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

error_messages: tp.Optional[tp.Dict[Exception, str]] = None,


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

error_messages: tp.Optional[tp.Dict[Exception, str]] = None,


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

return ("<Run: {0} status={1} run={2}>").format(
self.project_name, self.status, self.id
)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

return ("<Run: {0} status={1} run={2}>").format(
self.project_name, self.status, self.id
)


⚠️ [ruff] <SIM115> reported by reviewdog 🐶
Use a context manager for opening files

r"(?m)^Cpus_allowed:\s*(.*)$", open("/proc/self/status").read()


⚠️ [ruff] <FURB161> reported by reviewdog 🐶
Use of bin(int(match.group(1).replace(",", ""), 16)).count('1')

res = bin(int(match.group(1).replace(",", ""), 16)).count("1")


⚠️ [ruff] <SIM115> reported by reviewdog 🐶
Use a context manager for opening files

res = open("/proc/cpuinfo").read().count("processor\t:")


⚠️ [ruff] <TRY002> reported by reviewdog 🐶
Create your own exception

raise Exception("Can not determine number of CPUs on this system")


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

def load_rec(inode: tp.Dict[str, tp.Any], config: Configuration) -> None:


⚠️ [ruff] <UP031> reported by reviewdog 🐶
Use format specifiers instead of percent format

return dumper.represent_scalar("!create-if-needed", "%s" % data)


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

env_var_name: tp.Optional[str] = None,


⚠️ [ruff] <UP031> reported by reviewdog 🐶
Use format specifiers instead of percent format

return dumper.represent_scalar("!uuid", "%s" % data)


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

tp.cast(tp.List[Requirement], []),


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

retry_retcodes: tp.Optional[tp.List[int]] = None,


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

retry_retcodes: tp.Optional[tp.List[int]] = None,


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

def clean_env(uchroot_cmd: BoundCommand, varnames: tp.List[str]) -> BoundCommand:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

def __mounts__(prefix: str, _mounts: tp.List) -> tp.Tuple[tp.List[str], tp.List[str]]:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use tuple instead of tp.Tuple for type annotation

def __mounts__(prefix: str, _mounts: tp.List) -> tp.Tuple[tp.List[str], tp.List[str]]:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

def __mounts__(prefix: str, _mounts: tp.List) -> tp.Tuple[tp.List[str], tp.List[str]]:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

def __mounts__(prefix: str, _mounts: tp.List) -> tp.Tuple[tp.List[str], tp.List[str]]:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

uchroot_mounts: tp.List[str],


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

num_commits: int = 2, git_submodule: tp.Optional[git.Repo] = None


⚠️ [ruff] <C408> reported by reviewdog 🐶
Unnecessary dict() call (rewrite as a literal)

layer = model.RunLayer("cmd", ("a", "b", "c"), dict(a="a", b="b", c="c"))


⚠️ [ruff] <C408> reported by reviewdog 🐶
Unnecessary dict() call (rewrite as a literal)

layer = model.UpdateEnv(dict(a="a", b="b", c="c"))


⚠️ [ruff] <C408> reported by reviewdog 🐶
Unnecessary dict() call (rewrite as a literal)

model.RunLayer("cmd", ("a", "b", "c"), dict(a="a", b="b", c="c")),


⚠️ [ruff] <C408> reported by reviewdog 🐶
Unnecessary dict() call (rewrite as a literal)

model.UpdateEnv(dict(a="a", b="b", c="c")),


⚠️ [ruff] <UP007> reported by reviewdog 🐶
Use X | Y for type annotations

remote: tp.Union[str, tp.Dict[str, str]],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

remote: tp.Union[str, tp.Dict[str, str]],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

test_versions: tp.List[str],


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [mksource(f"VersionSource_{i}") for i in range(num_sources)]


⚠️ [ruff] <UP007> reported by reviewdog 🐶
Use X | Y for type annotations

remote: tp.Union[str, tp.Dict[str, str]],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

remote: tp.Union[str, tp.Dict[str, str]],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

known_versions: tp.List[str],


⚠️ [ruff] <UP007> reported by reviewdog 🐶
Use X | Y for type annotations

remote: tp.Union[str, tp.Dict[str, str]],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

remote: tp.Union[str, tp.Dict[str, str]],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

test_versions: tp.List[str],


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(local="src-a", remote={"v1a": "-", "v2a": "-", "v3": "-"}),
HTTP(local="src-b", remote={"v1b": "-", "v2b": "-", "v3": "-"}),
]


⚠️ [ruff] <F841> reported by reviewdog 🐶
Local variable spv is assigned to but never used

spv = SetProjectVersion(prj, RevisionStr("does-not-exist"))


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

name: tp.Optional[str] = None,


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use tuple instead of tp.Tuple for type annotation

bases: tp.Tuple[type, ...] = (Experiment,),


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use type instead of tp.Type for type annotation

) -> tp.Type[Experiment]:


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

"name", pkg, msg="{0} lacks 'name' attribute".format(str(pkg))


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"name", pkg, msg="{0} lacks 'name' attribute".format(str(pkg))


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

self.assertIn("env", pkg, msg="{0} lacks 'env' attribute".format(str(pkg)))


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

self.assertIn("env", pkg, msg="{0} lacks 'env' attribute".format(str(pkg)))

import abc
import logging
import sys
import typing as tp

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <PYI034> reported by reviewdog 🐶
__enter__ methods in classes like AbstractUnitOfWork usually return self at runtime

Suggested change
import typing as tp
import typing as tp
reviewdog suggestion errorGitHub comment range and suggestion line range must be same. L3-L3 v.s. L191-L191

def create_image(
self, tag: str, layers: tp.List[model.Layer]
) -> model.Container:
def create_image(self, tag: str, layers: tp.List[model.Layer]) -> model.Container:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

Suggested change
def create_image(self, tag: str, layers: tp.List[model.Layer]) -> model.Container:
def create_image(self, tag: str, layers: list[model.Layer]) -> model.Container:

def _create_image(
self, tag: str, layers: tp.List[model.Layer]
) -> model.Container:
def _create_image(self, tag: str, layers: tp.List[model.Layer]) -> model.Container:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

Suggested change
def _create_image(self, tag: str, layers: tp.List[model.Layer]) -> model.Container:
def _create_image(self, tag: str, layers: list[model.Layer]) -> model.Container:

Comment thread benchbuild/experiment.py Outdated
def __new__(
mcs: tp.Type[tp.Any], name: str, bases: tp.Tuple[type, ...],
attrs: tp.Dict[str, tp.Any], *args: tp.Any, **kwargs: tp.Any
mcs: tp.Type[tp.Any],

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use type instead of tp.Type for type annotation

Suggested change
mcs: tp.Type[tp.Any],
mcs: type[tp.Any],

Comment thread benchbuild/experiment.py Outdated
attrs: tp.Dict[str, tp.Any], *args: tp.Any, **kwargs: tp.Any
mcs: tp.Type[tp.Any],
name: str,
bases: tp.Tuple[type, ...],

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use tuple instead of tp.Tuple for type annotation

Suggested change
bases: tp.Tuple[type, ...],
bases: tuple[type, ...],

Comment thread benchbuild/project.py Outdated
def __split_project_input__(
project_input: str
) -> tp.Tuple[str, tp.Optional[str]]:
def __split_project_input__(project_input: str) -> tp.Tuple[str, tp.Optional[str]]:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use tuple instead of tp.Tuple for type annotation

Suggested change
def __split_project_input__(project_input: str) -> tp.Tuple[str, tp.Optional[str]]:
def __split_project_input__(project_input: str) -> tuple[str, tp.Optional[str]]:

Comment thread benchbuild/project.py Outdated
def __split_project_input__(
project_input: str
) -> tp.Tuple[str, tp.Optional[str]]:
def __split_project_input__(project_input: str) -> tp.Tuple[str, tp.Optional[str]]:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

Suggested change
def __split_project_input__(project_input: str) -> tp.Tuple[str, tp.Optional[str]]:
def __split_project_input__(project_input: str) -> tp.Tuple[str, str | None]:

Comment thread benchbuild/project.py Outdated
def __add_indexed_filters__(
project: ProjectT, versions: tp.List[str]
) -> ProjectT:
def __add_indexed_filters__(project: ProjectT, versions: tp.List[str]) -> ProjectT:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

Suggested change
def __add_indexed_filters__(project: ProjectT, versions: tp.List[str]) -> ProjectT:
def __add_indexed_filters__(project: ProjectT, versions: list[str]) -> ProjectT:

Comment thread benchbuild/project.py Outdated
def __add_named_filters__(
project: ProjectT, versions: tp.Dict[str, str]
) -> ProjectT:
def __add_named_filters__(project: ProjectT, versions: tp.Dict[str, str]) -> ProjectT:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

Suggested change
def __add_named_filters__(project: ProjectT, versions: tp.Dict[str, str]) -> ProjectT:
def __add_named_filters__(project: ProjectT, versions: dict[str, str]) -> ProjectT:

Comment thread benchbuild/project.py Outdated
named_sources: tp.Dict[str, source.base.FetchableSource] = {
s.key: s for s in sources
}
named_sources: tp.Dict[str, FetchableSource] = {s.key: s for s in sources}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

Suggested change
named_sources: tp.Dict[str, FetchableSource] = {s.key: s for s in sources}
named_sources: dict[str, FetchableSource] = {s.key: s for s in sources}

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

eslint

⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={"3.2.1": "http://www.netlib.org/clapack/clapack.tgz"},
local="clapack.tgz",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/google/leveldb",
local="leveldb.src",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={"5_88": "http://www.netlib.org/benchmark/linpackc.new"},
local="linpack.c",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/LLNL/LULESH/",
local="lulesh.git",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/LLNL/LULESH/",
local="lulesh.git",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"2.6.8": (
"http://sourceforge.net/projects/mcrypt/files/MCrypt/"
"2.6.8/mcrypt-2.6.8.tar.gz"
)
},
local="mcrypt.tar.gz",
),
HTTP(
remote={
"2.5.8": (
"http://sourceforge.net/projects/mcrypt/files/Libmcrypt/"
"2.5.8/libmcrypt-2.5.8.tar.gz"
)
},
local="libmcrypt.tar.gz",
),
HTTP(
remote={
"0.9.9.9": (
"http://sourceforge.net/projects/mhash/files/mhash/"
"0.9.9.9/mhash-0.9.9.9.tar.gz"
)
},
local="mhash.tar.gz",
),
]


⚠️ [ruff] <C408> reported by reviewdog 🐶
Unnecessary dict() call (rewrite as a literal)

mod_env = dict(
CC=_cc,
CXX=_cxx,
LD_LIBRARY_PATH=path.list_to_path(
[str(lib_dir)] + env.get("LD_LIBRARY_PATH", [])
),
LDFLAGS="-L" + str(lib_dir),
CFLAGS="-I" + str(inc_dir),
)


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/niklasso/minisat",
local="minisat.git",
limit=5,
refspec="HEAD",
),
HTTP(
remote={
"2016-11-minisat.tar.gz": "http://lairosiel.de/dist/2016-11-minisat.tar.gz"
},
local="inputs.tar.gz",
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

BINARIES = [
"aeadtest",
"aes_wrap",
"asn1test",
"base64test",
"bftest",
"bntest",
"bytestringtest",
"casttest",
"chachatest",
"cipherstest",
"cts128test",
"destest",
"dhtest",
"dsatest",
"ecdhtest",
"ecdsatest",
"ectest",
"enginetest",
"evptest",
"exptest",
"gcm128test",
"gost2814789t",
"hmactest",
"ideatest",
"igetest",
"md4test",
"md5test",
"mdc2test",
"mont",
"pbkdf2",
"pkcs7test",
"poly1305test",
"pq_test",
"randtest",
"rc2test",
"rc4test",
"rmdtest",
"sha1test",
"sha256test",
"sha512test",
"shatest",
"ssltest",
"timingsafe",
"utf8test",
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"2.1.6.": (
"http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.1.6.tar.gz"
)
},
local="libressl.tar.gz",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(remote="https://github.com/POV-Ray/povray", local="povray.git"),
HTTP(
remote={
"1.59.0": "http://sourceforge.net/projects/boost/files/boost/1.59.0/"
"boost_1_59_0.tar.bz2"
},
local="boost.tar.bz2",
),
HTTP(
remote={"2016-05-povray": "http://lairosiel.de/dist/2016-05-povray.tar.gz"},
local="inputs.tar.gz",
),
]


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

_bootstrap("--with-toolset=clang", '--prefix="{0}"'.format(boost_prefix))


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

_bootstrap("--with-toolset=clang", '--prefix="{0}"'.format(boost_prefix))


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"3.4.3": ("https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz")
},
local="python.tar.xz",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="git://rasdaman.org/rasdaman.git",
local="rasdaman.git",
limit=5,
refspec="HEAD",
),
Git(
remote="https://github.com/OSGeo/gdal",
local="gdal.git",
limit=5,
refspec="HEAD",
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"2.2.2": ("http://cache.ruby-lang.org/pub/ruby/2.2.2/ruby-2.2.2.tar.gz")
},
local="ruby.tar.gz",
),
HTTP(
remote={
"2016-11-ruby-inputs.tar.gz": "http://lairosiel.de/dist/2016-11-ruby-inputs.tar.gz"
},
local="inputs.tar.gz",
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"16.02": "http://downloads.sourceforge.net/"
"project/p7zip/p7zip/16.02/p7zip_16.02_src_all.tar.bz2"
},
local="p7zip.tar.bz2",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"3080900": "http://www.sqlite.org/2015/sqlite-amalgamation-3080900.zip"
},
local="sqlite.zip",
),
Git(
remote="https://github.com/google/leveldb",
local="leveldb.src",
refspec="HEAD",
limit=5,
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"0.9.26": (
"http://download-mirror.savannah.gnu.org/releases/"
"tinycc/tcc-0.9.26.tar.bz2"
)
},
local="tcc.tar.bz2",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://code.videolan.org/videolan/x264.git",
local="x264.git",
refspec="HEAD",
limit=5,
),
HTTP(
remote={"tbbt-small": "http://lairosiel.de/dist/tbbt-small.y4m"},
local="tbbt-small.y4m",
),
HTTP(
remote={"sintel": "http://lairosiel.de/dist/Sintel.2010.720p.raw"},
local="sintel.raw",
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={"5.2.1": "http://tukaani.org/xz/xz-5.2.1.tar.gz"}, local="xz.tar.gz"
),
HTTP(
remote={"1.0": "http://lairosiel.de/dist/compression.tar.gz"},
local="compression.tar.gz",
),
]


⚠️ [ruff] <F401> reported by reviewdog 🐶
.autoportage imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.bzip2 imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.crafty imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.eix imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.gentoo imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.gzip imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.info imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.lammps imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.postgresql imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.sevenz imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.x264 imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <F401> reported by reviewdog 🐶
.xz imported but unused; consider removing, adding to __all__, or using a redundant alias


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

"Auto{0}{1}".format(domain, name), domain + "_" + name, domain


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"Auto{0}{1}".format(domain, name), domain + "_" + name, domain


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

testfiles = ["text.html", "chicken.jpg", "control", "input.source", "liberty.jpg"]


⚠️ [ruff] <UP034> reported by reviewdog 🐶
Avoid extraneous parentheses

crafty_test1 = bb.watch((cat["test1.sh"] | crafty))


⚠️ [ruff] <UP034> reported by reviewdog 🐶
Avoid extraneous parentheses

crafty_test2 = bb.watch((cat["test2.sh"] | crafty))


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

package_atom = "{domain}/{name}".format(domain=self.domain, name=self.name)


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

lines = """
export PATH="{0}:${{PATH}}"
export LD_LIBRARY_PATH="{1}:${{LD_LIBRARY_PATH}}"
""".format(path.list_to_path(paths), path.list_to_path(libs))


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

lines = """
export PATH="{0}:${{PATH}}"
export LD_LIBRARY_PATH="{1}:${{LD_LIBRARY_PATH}}"
""".format(path.list_to_path(paths), path.list_to_path(libs))


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

testfiles = ["text.html", "chicken.jpg", "control", "input.source", "liberty.jpg"]


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

package_atom = "{0}/{1}".format(parts[0], parts[1])


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

package_atom = "{0}/{1}".format(parts[0], parts[1])


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

inputfiles = {
"tbbt-small.y4m": [],
"Sintel.2010.720p.raw": ["--input-res", "1280x720"],
}


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

testfiles = ["text.html", "chicken.jpg", "control", "input.source", "liberty.jpg"]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

NAME_FILTERS = [
r"(?P<name>.+)\.simple",
r"(?P<name>.+)-(dbl|flt)",
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(remote="http://llvm.org/git/lnt", local="lnt.git", refspec="HEAD", limit=5),
Git(
remote="http://llvm.org/git/test-suite",
local="test-suite",
refspec="HEAD",
limit=5,
),
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(remote="http://llvm.org/git/lnt", local="lnt.git", refspec="HEAD", limit=5),
Git(
remote="http://llvm.org/git/test-suite",
local="test-suite",
refspec="HEAD",
limit=5,
),
Git(
remote="https://github.com/POV-Ray/povray",
local="povray.git",
refspec="HEAD",
limit=5,
),
]


⚠️ [ruff] <PIE794> reported by reviewdog 🐶
Class field DOMAIN is defined multiple times


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
Git(
remote="https://github.com/simbuerg/polybench-c-4.2-1.git",
local="polybench.git",
limit=5,
refspec="HEAD",
)
]


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(
remote={
"4.2": (
"http://downloads.sourceforge.net/project/"
"polybench/polybench-c-4.2.tar.gz"
)
},
local="polybench.tar.gz",
)
]


⚠️ [ruff] <SIM117> reported by reviewdog 🐶
Use a single with statement with multiple contexts instead of nested with statements

with open(stderr_raw, "r") as stderr:
with open(stderr_filtered, "w") as stderr_filt:


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [TestSource("1", "2", "3"), CAWTestSource(("1", "caw_0"), ("3", "caw_0"))]


⚠️ [ruff] <DTZ005> reported by reviewdog 🐶
datetime.datetime.now() called without a tz argument

"experiment_description": {"default": str(datetime.now()), "export": False},


⚠️ [ruff] <F601> reported by reviewdog 🐶
Dictionary key literal "input" repeated

"input": {"default": "container.tar.bz2", "desc": "Input container file/folder."},


⚠️ [ruff] <F601> reported by reviewdog 🐶
Dictionary key literal "output" repeated

"output": {"default": "container-out.tar.bz2", "desc": "Output container file."},


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use type instead of tp.Type for type annotation

self, project_cls: tp.Type["Project"], _primary: Variant, *variants: Variant


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

Sources = tp.List["FetchableSource"]


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use type instead of tp.Type for type annotation

project_cls: tp.Type["Project"],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use type instead of tp.Type for type annotation

project_cls: tp.Type["Project"], context: Revision, *sources: ContextAwareSource


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use set instead of tp.Set for type annotation

_fetched_cache: tp.Set["Git"] = set()


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

result: StepResult, error_status: tp.Optional[tp.List[StepResult]] = None


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

result: StepResult, error_status: tp.Optional[tp.List[StepResult]] = None


⚠️ [ruff] <UP037> reported by reviewdog 🐶
Remove quotes from type annotation

def wrapper(self: "Step", indent: int) -> str: ...


⚠️ [ruff] <UP037> reported by reviewdog 🐶
Remove quotes from type annotation

def wrapper(self: "Step") -> str: ...


⚠️ [ruff] <B010> reported by reviewdog 🐶
Do not call setattr with a constant attribute value. It is not any safer than normal property access.

setattr(
cls, "__call__", log_before_after(cls.NAME, cls.DESCRIPTION)(cls.__call__)
)


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

self, actions: tp.Optional[tp.MutableSequence[StepTy_co]] = None


⚠️ [ruff] <UP037> reported by reviewdog 🐶
Remove quotes from type annotation

self, project: "benchbuild.project.Project", check_empty: bool = False


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

workload: tp.Optional[WorkloadTy] = None,


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

"uchroot needs an entry for user '{0}' in '/etc/subuid'.".format(username)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"uchroot needs an entry for user '{0}' in '/etc/subuid'.".format(username)


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

"uchroot needs an entry for user '{0}' in '/etc/subgid'.".format(username)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"uchroot needs an entry for user '{0}' in '/etc/subgid'.".format(username)


⚠️ [ruff] <SIM201> reported by reviewdog 🐶
Use platform.system() != "Linux" instead of not platform.system() == "Linux"

if not platform.system() == "Linux":


⚠️ [ruff] <DTZ004> reported by reviewdog 🐶
datetime.datetime.utcfromtimestamp() used

_version = datetime.utcfromtimestamp(int(_version)).strftime("%Y-%m-%d")


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

return "http://distfiles.gentoo.org/releases/amd64/autobuilds/{0}".format(
self.src_file
)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

return "http://distfiles.gentoo.org/releases/amd64/autobuilds/{0}".format(
self.src_file
)


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

"-c", "tar --list -f './{0}' | grep --silent '.erlent'".format(name)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"-c", "tar --list -f './{0}' | grep --silent '.erlent'".format(name)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"The directory {dirname} does not exist yet. Should I create it?".format(
dirname=dirpath
),


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use type instead of tp.Type for type annotation

cls: tp.Type[RequirementSubType],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use tuple instead of tp.Tuple for type annotation

timelimit: tp.Tuple[int, int, int, int] = attr.ib(converter=_convert_to_time_tuple)


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

def __init__(self, id_start: str, id_end: str, comment: tp.Optional[str] = None):


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

good: tp.List["pygit2.Commit"],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

bad: tp.List["pygit2.Commit"],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

) -> tp.List["pygit2.Commit"]:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

stack: tp.List["pygit2.Commit"] = [commit]


⚠️ [ruff] <UP037> reported by reviewdog 🐶
Remove quotes from type annotation

stack: tp.List["pygit2.Commit"] = [commit]


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

blocked: tp.Dict["pygit2.Commit", CommitState] = {}


⚠️ [ruff] <UP037> reported by reviewdog 🐶
Remove quotes from type annotation

blocked: tp.Dict["pygit2.Commit", CommitState] = {}


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

comment: tp.Optional[str] = None,


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use tuple instead of tp.Tuple for type annotation

def is_blocked_revision_impl(rev_id: str) -> tp.Tuple[bool, tp.Optional[str]]:


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

def is_blocked_revision_impl(rev_id: str) -> tp.Tuple[bool, tp.Optional[str]]:


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

return t.indent("{{\n{:s}\n}}".format(ret), level * idt)


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

error_messages: tp.Optional[tp.Dict[Exception, str]] = None,


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

error_messages: tp.Optional[tp.Dict[Exception, str]] = None,


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

return ("<Run: {0} status={1} run={2}>").format(
self.project_name, self.status, self.id
)


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

return ("<Run: {0} status={1} run={2}>").format(
self.project_name, self.status, self.id
)


⚠️ [ruff] <SIM115> reported by reviewdog 🐶
Use a context manager for opening files

r"(?m)^Cpus_allowed:\s*(.*)$", open("/proc/self/status").read()


⚠️ [ruff] <FURB161> reported by reviewdog 🐶
Use of bin(int(match.group(1).replace(",", ""), 16)).count('1')

res = bin(int(match.group(1).replace(",", ""), 16)).count("1")


⚠️ [ruff] <SIM115> reported by reviewdog 🐶
Use a context manager for opening files

res = open("/proc/cpuinfo").read().count("processor\t:")


⚠️ [ruff] <TRY002> reported by reviewdog 🐶
Create your own exception

raise Exception("Can not determine number of CPUs on this system")


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

def load_rec(inode: tp.Dict[str, tp.Any], config: Configuration) -> None:


⚠️ [ruff] <UP031> reported by reviewdog 🐶
Use format specifiers instead of percent format

return dumper.represent_scalar("!create-if-needed", "%s" % data)


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

env_var_name: tp.Optional[str] = None,


⚠️ [ruff] <UP031> reported by reviewdog 🐶
Use format specifiers instead of percent format

return dumper.represent_scalar("!uuid", "%s" % data)


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

tp.cast(tp.List[Requirement], []),


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

retry_retcodes: tp.Optional[tp.List[int]] = None,


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

retry_retcodes: tp.Optional[tp.List[int]] = None,


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

def clean_env(uchroot_cmd: BoundCommand, varnames: tp.List[str]) -> BoundCommand:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

def __mounts__(prefix: str, _mounts: tp.List) -> tp.Tuple[tp.List[str], tp.List[str]]:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use tuple instead of tp.Tuple for type annotation

def __mounts__(prefix: str, _mounts: tp.List) -> tp.Tuple[tp.List[str], tp.List[str]]:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

def __mounts__(prefix: str, _mounts: tp.List) -> tp.Tuple[tp.List[str], tp.List[str]]:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

def __mounts__(prefix: str, _mounts: tp.List) -> tp.Tuple[tp.List[str], tp.List[str]]:


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

uchroot_mounts: tp.List[str],


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

num_commits: int = 2, git_submodule: tp.Optional[git.Repo] = None


⚠️ [ruff] <C408> reported by reviewdog 🐶
Unnecessary dict() call (rewrite as a literal)

layer = model.RunLayer("cmd", ("a", "b", "c"), dict(a="a", b="b", c="c"))


⚠️ [ruff] <C408> reported by reviewdog 🐶
Unnecessary dict() call (rewrite as a literal)

layer = model.UpdateEnv(dict(a="a", b="b", c="c"))


⚠️ [ruff] <C408> reported by reviewdog 🐶
Unnecessary dict() call (rewrite as a literal)

model.RunLayer("cmd", ("a", "b", "c"), dict(a="a", b="b", c="c")),


⚠️ [ruff] <C408> reported by reviewdog 🐶
Unnecessary dict() call (rewrite as a literal)

model.UpdateEnv(dict(a="a", b="b", c="c")),


⚠️ [ruff] <UP007> reported by reviewdog 🐶
Use X | Y for type annotations

remote: tp.Union[str, tp.Dict[str, str]],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

remote: tp.Union[str, tp.Dict[str, str]],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

test_versions: tp.List[str],


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [mksource(f"VersionSource_{i}") for i in range(num_sources)]


⚠️ [ruff] <UP007> reported by reviewdog 🐶
Use X | Y for type annotations

remote: tp.Union[str, tp.Dict[str, str]],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

remote: tp.Union[str, tp.Dict[str, str]],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

known_versions: tp.List[str],


⚠️ [ruff] <UP007> reported by reviewdog 🐶
Use X | Y for type annotations

remote: tp.Union[str, tp.Dict[str, str]],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use dict instead of tp.Dict for type annotation

remote: tp.Union[str, tp.Dict[str, str]],


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use list instead of tp.List for type annotation

test_versions: tp.List[str],


⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

SOURCE = [
HTTP(local="src-a", remote={"v1a": "-", "v2a": "-", "v3": "-"}),
HTTP(local="src-b", remote={"v1b": "-", "v2b": "-", "v3": "-"}),
]


⚠️ [ruff] <F841> reported by reviewdog 🐶
Local variable spv is assigned to but never used

spv = SetProjectVersion(prj, RevisionStr("does-not-exist"))


⚠️ [ruff] <UP045> reported by reviewdog 🐶
Use X | None for type annotations

name: tp.Optional[str] = None,


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use tuple instead of tp.Tuple for type annotation

bases: tp.Tuple[type, ...] = (Experiment,),


⚠️ [ruff] <UP006> reported by reviewdog 🐶
Use type instead of tp.Type for type annotation

) -> tp.Type[Experiment]:


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

"name", pkg, msg="{0} lacks 'name' attribute".format(str(pkg))


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

"name", pkg, msg="{0} lacks 'name' attribute".format(str(pkg))


⚠️ [ruff] <UP030> reported by reviewdog 🐶
Use implicit references for positional format fields

self.assertIn("env", pkg, msg="{0} lacks 'env' attribute".format(str(pkg)))


⚠️ [ruff] <UP032> reported by reviewdog 🐶
Use f-string instead of format call

self.assertIn("env", pkg, msg="{0} lacks 'env' attribute".format(str(pkg)))

Comment on lines 15 to 24
SOURCE = [
HTTP(remote={
'3.1': 'http://www.cs.virginia.edu/'
'~kw5na/lava/Rodinia/Packages/Current/3.1/'
'rodinia_3.1.tar.bz2'
},
local='rodinia.tar.bz2')
HTTP(
remote={
"3.1": "http://www.cs.virginia.edu/"
"~kw5na/lava/Rodinia/Packages/Current/3.1/"
"rodinia_3.1.tar.bz2"
},
local="rodinia.tar.bz2",
)
]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

Comment on lines 73 to 77
CONFIG = {
"dir": "openmp/backprop",
"src": {
NAME: [
"backprop_kernel.c", "imagenet.c", "facetrain.c", "backprop.c"
]
},
"flags": ["-fopenmp", "-lm"]
"src": {NAME: ["backprop_kernel.c", "imagenet.c", "facetrain.c", "backprop.c"]},
"flags": ["-fopenmp", "-lm"],
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

Comment on lines 82 to 86
CONFIG = {
"dir": "openmp/bfs",
"src": {
NAME: ["bfs.cpp"]
},
"flags": ["-fopenmp", "-UOPEN"]
"src": {NAME: ["bfs.cpp"]},
"flags": ["-fopenmp", "-UOPEN"],
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

Comment on lines 95 to 107
CONFIG = {
"dir": "openmp/b+tree",
"src": {
"b+tree.out": [
"./main.c", "./kernel/kernel_cpu.c", "./kernel/kernel_cpu_2.c",
"./util/timer/timer.c", "./util/num/num.c"
"./main.c",
"./kernel/kernel_cpu.c",
"./kernel/kernel_cpu_2.c",
"./util/timer/timer.c",
"./util/num/num.c",
]
},
"flags": ["-fopenmp", "-lm"]
"flags": ["-fopenmp", "-lm"],
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

Comment on lines 121 to 125
CONFIG = {
"dir": "openmp/heartwall",
"src": {
NAME: ["./AVI/avimod.c", "./AVI/avilib.c", "./main.c"]
},
"flags": ["-I./AVI", "-fopenmp", "-lm"]
"src": {NAME: ["./AVI/avimod.c", "./AVI/avilib.c", "./main.c"]},
"flags": ["-I./AVI", "-fopenmp", "-lm"],
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

Comment on lines 17 to 22
SOURCE = [
HTTP(
remote={'3.1.3': 'http://ffmpeg.org/releases/ffmpeg-3.1.3.tar.bz2'},
local='ffmpeg.tar.bz2'
remote={"3.1.3": "http://ffmpeg.org/releases/ffmpeg-3.1.3.tar.bz2"},
local="ffmpeg.tar.bz2",
)
]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

Comment on lines 17 to 26
SOURCE = [
HTTP(
remote={'1.6': 'http://ftpmirror.gnu.org/gzip/gzip-1.6.tar.xz'},
local='gzip.tar.xz'
remote={"1.6": "http://ftpmirror.gnu.org/gzip/gzip-1.6.tar.xz"},
local="gzip.tar.xz",
),
HTTP(
remote={'1.0': 'http://lairosiel.de/dist/compression.tar.gz'},
local='compression.tar.gz'
)
remote={"1.0": "http://lairosiel.de/dist/compression.tar.gz"},
local="compression.tar.gz",
),
]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

Comment on lines 21 to 28
SOURCE = [
Git(
remote='https://github.com/mozilla/gecko-dev.git',
local='gecko-dev.git',
remote="https://github.com/mozilla/gecko-dev.git",
local="gecko-dev.git",
limit=5,
refspec='HEAD'
refspec="HEAD",
)
]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

Comment on lines 15 to 22
SOURCE = [
Git(
remote='https://github.com/lammps/lammps',
local='lammps.git',
remote="https://github.com/lammps/lammps",
local="lammps.git",
limit=5,
refspec='HEAD'
refspec="HEAD",
)
]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

Comment on lines 17 to 24
SOURCE = [
Git(
remote='https://github.com/xianyi/OpenBLAS',
local='OpenBLAS',
remote="https://github.com/xianyi/OpenBLAS",
local="OpenBLAS",
limit=5,
refspec='HEAD'
refspec="HEAD",
)
]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [ruff] <RUF012> reported by reviewdog 🐶
Mutable default value for class attribute

@codecov

codecov Bot commented Jul 26, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 56.55620% with 603 lines in your changes missing coverage. Please review.
✅ Project coverage is 50.55%. Comparing base (3fd7ca2) to head (465f24e).
⚠️ Report is 28 commits behind head on master.

Files with missing lines Patch % Lines
benchbuild/projects/gentoo/gentoo.py 10.00% 36 Missing ⚠️
benchbuild/container.py 0.00% 24 Missing ⚠️
benchbuild/utils/schema.py 0.00% 18 Missing ⚠️
benchbuild/projects/benchbuild/lapack.py 33.33% 16 Missing ⚠️
benchbuild/cli/project.py 34.78% 15 Missing ⚠️
benchbuild/project.py 65.90% 12 Missing and 3 partials ⚠️
benchbuild/projects/benchbuild/povray.py 25.00% 15 Missing ⚠️
benchbuild/utils/settings.py 71.69% 13 Missing and 2 partials ⚠️
benchbuild/utils/bootstrap.py 46.15% 13 Missing and 1 partial ⚠️
benchbuild/projects/benchbuild/sqlite3.py 23.52% 13 Missing ⚠️
... and 79 more
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #571      +/-   ##
==========================================
- Coverage   52.53%   50.55%   -1.99%     
==========================================
  Files         120      120              
  Lines        8318     8304      -14     
  Branches     1064      720     -344     
==========================================
- Hits         4370     4198     -172     
- Misses       3763     3904     +141     
- Partials      185      202      +17     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant