diff --git a/.github/workflows/validate_release_tag.py b/.github/workflows/validate_release_tag.py index 7b39fab..26e292f 100644 --- a/.github/workflows/validate_release_tag.py +++ b/.github/workflows/validate_release_tag.py @@ -33,9 +33,9 @@ def get_version_from_module(content: str) -> str: parser = argparse.ArgumentParser() parser.add_argument("GITHUB_REF", help="The GITHUB_REF environmental variable") args = parser.parse_args() - assert args.GITHUB_REF.startswith( - "refs/tags/v" - ), f'GITHUB_REF should start with "refs/tags/v": {args.GITHUB_REF}' + assert args.GITHUB_REF.startswith("refs/tags/v"), ( + f'GITHUB_REF should start with "refs/tags/v": {args.GITHUB_REF}' + ) tag_version = args.GITHUB_REF[11:] package_version = get_version_from_module( Path("aiida_hyperqueue/__init__.py").read_text(encoding="utf-8") diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7ba7eda..72ea4a6 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,7 +5,7 @@ default_language_version: repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v5.0.0 + rev: v6.0.0 hooks: - id: end-of-file-fixer - id: mixed-line-ending @@ -13,7 +13,7 @@ repos: - id: check-json - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.8.6 + rev: v0.16.1 hooks: - id: ruff-format - id: ruff diff --git a/aiida_hyperqueue/cli/alloc.py b/aiida_hyperqueue/cli/alloc.py index ee25c45..5411644 100644 --- a/aiida_hyperqueue/cli/alloc.py +++ b/aiida_hyperqueue/cli/alloc.py @@ -1,5 +1,4 @@ import click - from aiida.cmdline.params import arguments, options from aiida.cmdline.utils import echo @@ -59,8 +58,8 @@ def cmd_add( with computer.get_transport() as transport: retval, _, stderr = transport.exec_command_wait( - f'hq alloc add slurm --backlog {backlog} --time-limit {time_limit} --name ahq {hyper} ' - f'--workers-per-alloc {workers_per_alloc} -- {" ".join(slurm_options)}' + f"hq alloc add slurm --backlog {backlog} --time-limit {time_limit} --name ahq {hyper} " + f"--workers-per-alloc {workers_per_alloc} -- {' '.join(slurm_options)}" ) if retval != 0: diff --git a/aiida_hyperqueue/cli/install.py b/aiida_hyperqueue/cli/install.py index 956c8d1..4882ce4 100644 --- a/aiida_hyperqueue/cli/install.py +++ b/aiida_hyperqueue/cli/install.py @@ -4,7 +4,6 @@ import click import requests - from aiida import orm from aiida.cmdline.utils import echo @@ -66,8 +65,7 @@ def cmd_install( tar_path = temp_dir / "hq.tar.gz" with open(tar_path, "wb") as f: - for chunk in response.iter_content(chunk_size=8192): - f.write(chunk) + f.writelines(response.iter_content(chunk_size=8192)) with tarfile.open(tar_path, "r") as tar: tar.extractall(path=temp_dir) diff --git a/aiida_hyperqueue/cli/params/options.py b/aiida_hyperqueue/cli/params/options.py index 7fba411..9cbd384 100644 --- a/aiida_hyperqueue/cli/params/options.py +++ b/aiida_hyperqueue/cli/params/options.py @@ -3,7 +3,6 @@ import functools import click - from aiida.cmdline.params import options as core_options from aiida.cmdline.params import types as core_types diff --git a/aiida_hyperqueue/cli/root.py b/aiida_hyperqueue/cli/root.py index d277015..c7f9ef8 100644 --- a/aiida_hyperqueue/cli/root.py +++ b/aiida_hyperqueue/cli/root.py @@ -3,7 +3,6 @@ """ import click - from aiida.cmdline.groups.verdi import VerdiCommandGroup from .params import options diff --git a/aiida_hyperqueue/cli/server.py b/aiida_hyperqueue/cli/server.py index 0d3cdf8..45d04e1 100644 --- a/aiida_hyperqueue/cli/server.py +++ b/aiida_hyperqueue/cli/server.py @@ -1,5 +1,4 @@ import click - from aiida.cmdline.utils import echo from .params import arguments diff --git a/aiida_hyperqueue/scheduler.py b/aiida_hyperqueue/scheduler.py index e1feca4..ddbaef3 100644 --- a/aiida_hyperqueue/scheduler.py +++ b/aiida_hyperqueue/scheduler.py @@ -215,7 +215,7 @@ def _parse_submit_output(self, retval: int, stdout: str, stderr: str) -> str: ) def _get_joblist_command( - self, jobs: t.Optional[list] = None, user: t.Optional[str] = None + self, jobs: list | None = None, user: str | None = None ) -> str: """Return the ``hq`` command for listing the active jobs. @@ -255,7 +255,7 @@ def _parse_joblist_output(self, retval: int, stdout: str, stderr: str) -> list: hq_job_dict["id"] ) # must be str, if it is a int job will not waiting job_info.title = hq_job_dict["name"] - stats: t.List[str] = [ + stats: list[str] = [ stat for stat, v in hq_job_dict["task_stats"].items() if v > 0 ] if hq_job_dict["task_count"] != 1 or len(stats) != 1: diff --git a/docs/source/conf.py b/docs/source/conf.py index 325fb46..6a7c6f1 100755 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -12,11 +12,11 @@ import time -import aiida_hyperqueue - from aiida import load_profile from aiida.storage.sqlite_temp import SqliteTempBackend +import aiida_hyperqueue + # -- AiiDA-related setup -------------------------------------------------- temp_profile = SqliteTempBackend.create_profile("temp-profile") load_profile(temp_profile, allow_switch=True) @@ -71,9 +71,7 @@ else f"{copyright_first_year}-{current_year}" ) # pylint: disable=redefined-builtin -copyright = "{}, {}. All rights reserved".format( - copyright_year_string, copyright_owners -) +copyright = f"{copyright_year_string}, {copyright_owners}. All rights reserved" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the diff --git a/tests/conftest.py b/tests/conftest.py index 8a20c34..dd88a43 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -4,9 +4,9 @@ import signal import subprocess import time +from collections.abc import Iterable from dataclasses import dataclass from pathlib import Path -from collections.abc import Iterable import pytest @@ -103,9 +103,7 @@ def check_running_processes(self): for p in self.processes: if p.final_check and p.process.poll() is not None: raise Exception( - "Process {0} crashed (log in {1}/{0}.out)".format( - p.name, self.work_path - ) + f"Process {p.name} crashed (log in {self.work_path}/{p.name}.out)" ) def kill_all(self): diff --git a/tests/test_cli_alloc.py b/tests/test_cli_alloc.py index 2d7b4ed..b348bbd 100644 --- a/tests/test_cli_alloc.py +++ b/tests/test_cli_alloc.py @@ -1,7 +1,6 @@ import pytest -from click.testing import CliRunner - from aiida.transports.transport import Transport as TransportClass +from click.testing import CliRunner @pytest.fixture diff --git a/tests/test_cli_install.py b/tests/test_cli_install.py index 8a8c371..f7522b1 100644 --- a/tests/test_cli_install.py +++ b/tests/test_cli_install.py @@ -1,7 +1,8 @@ import pytest -from aiida_hyperqueue.cli import cmd_install from click.testing import CliRunner +from aiida_hyperqueue.cli import cmd_install + @pytest.fixture def runner(): diff --git a/tests/test_cli_server.py b/tests/test_cli_server.py index 8155d07..546cac1 100644 --- a/tests/test_cli_server.py +++ b/tests/test_cli_server.py @@ -1,10 +1,10 @@ import time import pytest -from aiida_hyperqueue.cli import cmd_info, cmd_start, cmd_stop +from aiida.transports.transport import Transport as TransportClass from click.testing import CliRunner -from aiida.transports.transport import Transport as TransportClass +from aiida_hyperqueue.cli import cmd_info, cmd_start, cmd_stop from .conftest import HqEnv, get_hq_binary diff --git a/tests/test_scheduler.py b/tests/test_scheduler.py index afe0c6d..4940fd3 100644 --- a/tests/test_scheduler.py +++ b/tests/test_scheduler.py @@ -4,12 +4,12 @@ from pathlib import Path import pytest -from aiida_hyperqueue.scheduler import HyperQueueJobResource, HyperQueueScheduler - from aiida.common.datastructures import CodeRunMode from aiida.schedulers import JobState from aiida.schedulers.datastructures import JobTemplate, JobTemplateCodeInfo +from aiida_hyperqueue.scheduler import HyperQueueJobResource, HyperQueueScheduler + from .conftest import HqEnv from .utils import wait_for_job_state