diff --git a/CHANGELOG.md b/CHANGELOG.md index be73bec..d91ccde 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## Version 0.6.2 + +- The operation for obtaining the list of working nodes at job start is now retried potentially decreasing the number of failures on unstable systems (like Metacentrum). + ## Version 0.6.1 - `qq cd -h` now properly prints help. diff --git a/README.md b/README.md index 4d6c4d4..5c01eda 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,6 @@ **qq** is a lightweight wrapper for batch scheduling systems, designed to provide a consistent and simplified interface across different schedulers. qq makes it easier to submit, monitor, and manage jobs without needing to learn the details of each backend. -Read the [qq manual](https://ladme.github.io/qq-manual) for more information. +Read the [qq manual](https://vachalab.github.io/qq-manual) for more information. **Designed for the specific needs of the [RoVa Research Group](https://vacha.ceitec.cz/).** \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 092b3b8..001e7c0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,10 +36,10 @@ dependencies = [ dynamic = ["version"] [project.urls] -Homepage = "https://ladme.github.io/qq-manual" -Repository = "https://github.com/Ladme/qq" -Issues = "https://github.com/Ladme/qq/issues" -Documentation = "https://ladme.github.io/qq-manual" +Homepage = "https://vachalab.github.io/qq-manual" +Repository = "https://github.com/VachaLab/qq" +Issues = "https://github.com/VachaLab/qq/issues" +Documentation = "https://qq.readthedocs.io/" [dependency-groups] dev = [ diff --git a/scripts/qq_scripts/gmx-eta b/scripts/qq_scripts/gmx-eta index 9beddfa..7ac0510 100755 --- a/scripts/qq_scripts/gmx-eta +++ b/scripts/qq_scripts/gmx-eta @@ -1,7 +1,7 @@ #!/usr/bin/env -S uv run --script # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Get the estimated time of a Gromacs simulation finishing. @@ -16,7 +16,7 @@ Requires `uv`: https://docs.astral.sh/uv # ] # # [tool.uv.sources] -# qq = { git = "https://github.com/Ladme/qq.git", tag = "v0.6.1" } +# qq = { git = "https://github.com/Ladme/qq.git", tag = "v0.6.2" } # /// import argparse diff --git a/scripts/qq_scripts/multi-check b/scripts/qq_scripts/multi-check index dc61b8e..fe0d403 100755 --- a/scripts/qq_scripts/multi-check +++ b/scripts/qq_scripts/multi-check @@ -1,7 +1,7 @@ #!/usr/bin/env -S uv run --script # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Check the state of qq jobs in multiple directories. @@ -16,7 +16,7 @@ Requires `uv`: https://docs.astral.sh/uv # ] # # [tool.uv.sources] -# qq = { git = "https://github.com/Ladme/qq.git", tag = "v0.6.1" } +# qq = { git = "https://github.com/Ladme/qq.git", tag = "v0.6.2" } # /// import argparse diff --git a/scripts/qq_scripts/multi-kill b/scripts/qq_scripts/multi-kill index 939ec37..f34732e 100755 --- a/scripts/qq_scripts/multi-kill +++ b/scripts/qq_scripts/multi-kill @@ -1,7 +1,7 @@ #!/usr/bin/env -S uv run --script # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Kill qq jobs in multiple directories. @@ -16,7 +16,7 @@ Requires `uv`: https://docs.astral.sh/uv # ] # # [tool.uv.sources] -# qq = { git = "https://github.com/Ladme/qq.git", tag = "v0.6.1" } +# qq = { git = "https://github.com/Ladme/qq.git", tag = "v0.6.2" } # /// import argparse diff --git a/scripts/qq_scripts/multi-submit b/scripts/qq_scripts/multi-submit index e11c630..76e5632 100755 --- a/scripts/qq_scripts/multi-submit +++ b/scripts/qq_scripts/multi-submit @@ -1,7 +1,7 @@ #!/usr/bin/env -S uv run --script # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Submit qq jobs from multiple directories. @@ -16,7 +16,7 @@ Requires `uv`: https://docs.astral.sh/uv # ] # # [tool.uv.sources] -# qq = { git = "https://github.com/Ladme/qq.git", tag = "v0.6.1" } +# qq = { git = "https://github.com/Ladme/qq.git", tag = "v0.6.2" } # /// import argparse diff --git a/src/main.py b/src/main.py index 5651bfd..aa85685 100644 --- a/src/main.py +++ b/src/main.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from qq_lib import cli diff --git a/src/qq_lib/__init__.py b/src/qq_lib/__init__.py index fb11b8a..dfc6cfb 100644 --- a/src/qq_lib/__init__.py +++ b/src/qq_lib/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Core implementation of the qq command-line tool. diff --git a/src/qq_lib/archive/__init__.py b/src/qq_lib/archive/__init__.py index 9e54b0e..1480bee 100644 --- a/src/qq_lib/archive/__init__.py +++ b/src/qq_lib/archive/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Utilities for archiving and retrieving job-related files. diff --git a/src/qq_lib/archive/archiver.py b/src/qq_lib/archive/archiver.py index 2f0777a..55a74b1 100644 --- a/src/qq_lib/archive/archiver.py +++ b/src/qq_lib/archive/archiver.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import re import socket diff --git a/src/qq_lib/batch/__init__.py b/src/qq_lib/batch/__init__.py index 607ded0..e254456 100644 --- a/src/qq_lib/batch/__init__.py +++ b/src/qq_lib/batch/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Batch-system support for qq. diff --git a/src/qq_lib/batch/interface/__init__.py b/src/qq_lib/batch/interface/__init__.py index 145f1ad..33d0d84 100644 --- a/src/qq_lib/batch/interface/__init__.py +++ b/src/qq_lib/batch/interface/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Abstractions for integrating qq with HPC batch scheduling systems. diff --git a/src/qq_lib/batch/interface/interface.py b/src/qq_lib/batch/interface/interface.py index 03c6ac1..5a36c7d 100644 --- a/src/qq_lib/batch/interface/interface.py +++ b/src/qq_lib/batch/interface/interface.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import socket diff --git a/src/qq_lib/batch/interface/job.py b/src/qq_lib/batch/interface/job.py index 1116ccc..d630617 100644 --- a/src/qq_lib/batch/interface/job.py +++ b/src/qq_lib/batch/interface/job.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from abc import ABC, abstractmethod diff --git a/src/qq_lib/batch/interface/meta.py b/src/qq_lib/batch/interface/meta.py index c8c5db5..320fa05 100644 --- a/src/qq_lib/batch/interface/meta.py +++ b/src/qq_lib/batch/interface/meta.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import os diff --git a/src/qq_lib/batch/interface/node.py b/src/qq_lib/batch/interface/node.py index cef8930..770d50b 100644 --- a/src/qq_lib/batch/interface/node.py +++ b/src/qq_lib/batch/interface/node.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from abc import ABC, abstractmethod diff --git a/src/qq_lib/batch/interface/queue.py b/src/qq_lib/batch/interface/queue.py index ee4695f..0431086 100644 --- a/src/qq_lib/batch/interface/queue.py +++ b/src/qq_lib/batch/interface/queue.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from abc import ABC, abstractmethod from datetime import timedelta diff --git a/src/qq_lib/batch/pbs/__init__.py b/src/qq_lib/batch/pbs/__init__.py index 0851b76..14197f5 100644 --- a/src/qq_lib/batch/pbs/__init__.py +++ b/src/qq_lib/batch/pbs/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ PBS backend for qq: job submission, monitoring, and cluster-resource access. diff --git a/src/qq_lib/batch/pbs/common.py b/src/qq_lib/batch/pbs/common.py index 844d5ad..31cae95 100644 --- a/src/qq_lib/batch/pbs/common.py +++ b/src/qq_lib/batch/pbs/common.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import re diff --git a/src/qq_lib/batch/pbs/job.py b/src/qq_lib/batch/pbs/job.py index 071da87..efdbcc2 100644 --- a/src/qq_lib/batch/pbs/job.py +++ b/src/qq_lib/batch/pbs/job.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import re import subprocess diff --git a/src/qq_lib/batch/pbs/node.py b/src/qq_lib/batch/pbs/node.py index 90a683d..505a950 100644 --- a/src/qq_lib/batch/pbs/node.py +++ b/src/qq_lib/batch/pbs/node.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import subprocess from typing import Self diff --git a/src/qq_lib/batch/pbs/pbs.py b/src/qq_lib/batch/pbs/pbs.py index ee69ac1..cb212ec 100644 --- a/src/qq_lib/batch/pbs/pbs.py +++ b/src/qq_lib/batch/pbs/pbs.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import os diff --git a/src/qq_lib/batch/pbs/queue.py b/src/qq_lib/batch/pbs/queue.py index 32c2216..4fd86a6 100644 --- a/src/qq_lib/batch/pbs/queue.py +++ b/src/qq_lib/batch/pbs/queue.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import socket import subprocess diff --git a/src/qq_lib/batch/slurm/__init__.py b/src/qq_lib/batch/slurm/__init__.py index 758c404..cebb1de 100644 --- a/src/qq_lib/batch/slurm/__init__.py +++ b/src/qq_lib/batch/slurm/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Slurm backend for qq: job submission, monitoring, and cluster-resource access. diff --git a/src/qq_lib/batch/slurm/common.py b/src/qq_lib/batch/slurm/common.py index 3361cbf..cc9b905 100644 --- a/src/qq_lib/batch/slurm/common.py +++ b/src/qq_lib/batch/slurm/common.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from dataclasses import fields diff --git a/src/qq_lib/batch/slurm/job.py b/src/qq_lib/batch/slurm/job.py index b264df7..f340690 100644 --- a/src/qq_lib/batch/slurm/job.py +++ b/src/qq_lib/batch/slurm/job.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import re import subprocess diff --git a/src/qq_lib/batch/slurm/node.py b/src/qq_lib/batch/slurm/node.py index 7c1c5d5..1d84616 100644 --- a/src/qq_lib/batch/slurm/node.py +++ b/src/qq_lib/batch/slurm/node.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import subprocess from typing import Self diff --git a/src/qq_lib/batch/slurm/queue.py b/src/qq_lib/batch/slurm/queue.py index 93a35cb..58b2a2b 100644 --- a/src/qq_lib/batch/slurm/queue.py +++ b/src/qq_lib/batch/slurm/queue.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import subprocess from datetime import timedelta diff --git a/src/qq_lib/batch/slurm/slurm.py b/src/qq_lib/batch/slurm/slurm.py index 7cb27e9..a4e5ee7 100644 --- a/src/qq_lib/batch/slurm/slurm.py +++ b/src/qq_lib/batch/slurm/slurm.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import os import shutil diff --git a/src/qq_lib/batch/slurmit4i/__init__.py b/src/qq_lib/batch/slurmit4i/__init__.py index 64d71b5..5d8c511 100644 --- a/src/qq_lib/batch/slurmit4i/__init__.py +++ b/src/qq_lib/batch/slurmit4i/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ SlurmIT4I backend for qq: job submission, monitoring, and IT4I-specific diff --git a/src/qq_lib/batch/slurmit4i/slurm.py b/src/qq_lib/batch/slurmit4i/slurm.py index 72c0536..7573402 100644 --- a/src/qq_lib/batch/slurmit4i/slurm.py +++ b/src/qq_lib/batch/slurmit4i/slurm.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import getpass import os diff --git a/src/qq_lib/batch/slurmlumi/__init__.py b/src/qq_lib/batch/slurmlumi/__init__.py index 8b7cf9e..c6c9c2a 100644 --- a/src/qq_lib/batch/slurmlumi/__init__.py +++ b/src/qq_lib/batch/slurmlumi/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ SlurmLumi backend for qq: job submission, monitoring, and LUMI-specific diff --git a/src/qq_lib/batch/slurmlumi/slurm.py b/src/qq_lib/batch/slurmlumi/slurm.py index aff9dd1..192f950 100644 --- a/src/qq_lib/batch/slurmlumi/slurm.py +++ b/src/qq_lib/batch/slurmlumi/slurm.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import getpass import os diff --git a/src/qq_lib/cd/__init__.py b/src/qq_lib/cd/__init__.py index 62177a5..79ad294 100644 --- a/src/qq_lib/cd/__init__.py +++ b/src/qq_lib/cd/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Utilities for locating and retrieving the input directory of a job. diff --git a/src/qq_lib/cd/cder.py b/src/qq_lib/cd/cder.py index cc86e46..d98ab42 100644 --- a/src/qq_lib/cd/cder.py +++ b/src/qq_lib/cd/cder.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from pathlib import Path diff --git a/src/qq_lib/cd/cli.py b/src/qq_lib/cd/cli.py index d0b3cb2..aba1006 100644 --- a/src/qq_lib/cd/cli.py +++ b/src/qq_lib/cd/cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import sys diff --git a/src/qq_lib/clear/__init__.py b/src/qq_lib/clear/__init__.py index 28a7497..e01ed46 100644 --- a/src/qq_lib/clear/__init__.py +++ b/src/qq_lib/clear/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Utilities for detecting and removing qq runtime files. diff --git a/src/qq_lib/clear/clearer.py b/src/qq_lib/clear/clearer.py index 0c08692..1d01960 100644 --- a/src/qq_lib/clear/clearer.py +++ b/src/qq_lib/clear/clearer.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from collections.abc import Iterable diff --git a/src/qq_lib/clear/cli.py b/src/qq_lib/clear/cli.py index e837e67..ca9e35b 100644 --- a/src/qq_lib/clear/cli.py +++ b/src/qq_lib/clear/cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import sys from pathlib import Path diff --git a/src/qq_lib/core/__init__.py b/src/qq_lib/core/__init__.py index aa2d10f..f58c34f 100644 --- a/src/qq_lib/core/__init__.py +++ b/src/qq_lib/core/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Core infrastructure for qq. diff --git a/src/qq_lib/core/click_format.py b/src/qq_lib/core/click_format.py index d331351..5c5787a 100644 --- a/src/qq_lib/core/click_format.py +++ b/src/qq_lib/core/click_format.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ GNU-style help formatting for Click commands. diff --git a/src/qq_lib/core/common.py b/src/qq_lib/core/common.py index 36a7de4..d81dfc2 100644 --- a/src/qq_lib/core/common.py +++ b/src/qq_lib/core/common.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ General utility functions for the qq library. diff --git a/src/qq_lib/core/config.py b/src/qq_lib/core/config.py index 0a77a06..d92b02f 100644 --- a/src/qq_lib/core/config.py +++ b/src/qq_lib/core/config.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Configuration system for qq. diff --git a/src/qq_lib/core/error.py b/src/qq_lib/core/error.py index 2a11c30..86d6b4a 100644 --- a/src/qq_lib/core/error.py +++ b/src/qq_lib/core/error.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Exception types used throughout qq. diff --git a/src/qq_lib/core/error_handlers.py b/src/qq_lib/core/error_handlers.py index 2ad4437..ea0eba6 100644 --- a/src/qq_lib/core/error_handlers.py +++ b/src/qq_lib/core/error_handlers.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Error-handling utilities for qq operations. diff --git a/src/qq_lib/core/field_coupling.py b/src/qq_lib/core/field_coupling.py index b9f8a12..df6398d 100644 --- a/src/qq_lib/core/field_coupling.py +++ b/src/qq_lib/core/field_coupling.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Utilities for defining and enforcing coupled fields in dataclasses. diff --git a/src/qq_lib/core/logger.py b/src/qq_lib/core/logger.py index 77aa832..52d9b26 100644 --- a/src/qq_lib/core/logger.py +++ b/src/qq_lib/core/logger.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Unified logging utilities for qq. diff --git a/src/qq_lib/core/navigator.py b/src/qq_lib/core/navigator.py index e714da5..6a948bf 100644 --- a/src/qq_lib/core/navigator.py +++ b/src/qq_lib/core/navigator.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Navigation utilities for qq job directories. diff --git a/src/qq_lib/core/operator.py b/src/qq_lib/core/operator.py index 4212059..fd548ac 100644 --- a/src/qq_lib/core/operator.py +++ b/src/qq_lib/core/operator.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Base functionality for qq job operations. diff --git a/src/qq_lib/core/repeater.py b/src/qq_lib/core/repeater.py index 27bc8e2..f0a29df 100644 --- a/src/qq_lib/core/repeater.py +++ b/src/qq_lib/core/repeater.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Utility for repeated execution with per-item error handling. diff --git a/src/qq_lib/core/retryer.py b/src/qq_lib/core/retryer.py index 385c037..2f0db40 100644 --- a/src/qq_lib/core/retryer.py +++ b/src/qq_lib/core/retryer.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Utility for retrying operations with configurable backoff. diff --git a/src/qq_lib/go/__init__.py b/src/qq_lib/go/__init__.py index eeb9861..4ef4940 100644 --- a/src/qq_lib/go/__init__.py +++ b/src/qq_lib/go/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Navigation utilities for entering a qq job's working directory. diff --git a/src/qq_lib/go/cli.py b/src/qq_lib/go/cli.py index 1ec806b..6e64913 100644 --- a/src/qq_lib/go/cli.py +++ b/src/qq_lib/go/cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import sys from pathlib import Path diff --git a/src/qq_lib/go/goer.py b/src/qq_lib/go/goer.py index c799acb..3ae7b10 100644 --- a/src/qq_lib/go/goer.py +++ b/src/qq_lib/go/goer.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from time import sleep diff --git a/src/qq_lib/info/__init__.py b/src/qq_lib/info/__init__.py index 019e2ba..ef53edb 100644 --- a/src/qq_lib/info/__init__.py +++ b/src/qq_lib/info/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Facilities for loading, interpreting, and presenting qq job information. diff --git a/src/qq_lib/info/cli.py b/src/qq_lib/info/cli.py index 3c9dc72..5226cb1 100644 --- a/src/qq_lib/info/cli.py +++ b/src/qq_lib/info/cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import sys from pathlib import Path diff --git a/src/qq_lib/info/informer.py b/src/qq_lib/info/informer.py index 18d9773..3237785 100644 --- a/src/qq_lib/info/informer.py +++ b/src/qq_lib/info/informer.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from datetime import datetime from pathlib import Path diff --git a/src/qq_lib/info/presenter.py b/src/qq_lib/info/presenter.py index 0ced40e..b7149a1 100644 --- a/src/qq_lib/info/presenter.py +++ b/src/qq_lib/info/presenter.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from datetime import datetime diff --git a/src/qq_lib/jobs/__init__.py b/src/qq_lib/jobs/__init__.py index 5714423..0c14d83 100644 --- a/src/qq_lib/jobs/__init__.py +++ b/src/qq_lib/jobs/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Presentation utilities for batch-system job listings and statistics. diff --git a/src/qq_lib/jobs/cli.py b/src/qq_lib/jobs/cli.py index 2f9c940..6992948 100644 --- a/src/qq_lib/jobs/cli.py +++ b/src/qq_lib/jobs/cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import getpass diff --git a/src/qq_lib/jobs/presenter.py b/src/qq_lib/jobs/presenter.py index 37a7a72..0f76b3b 100644 --- a/src/qq_lib/jobs/presenter.py +++ b/src/qq_lib/jobs/presenter.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from dataclasses import dataclass, field from datetime import datetime, timedelta diff --git a/src/qq_lib/kill/__init__.py b/src/qq_lib/kill/__init__.py index b0dfaf8..449fd49 100644 --- a/src/qq_lib/kill/__init__.py +++ b/src/qq_lib/kill/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Termination utilities for qq jobs. diff --git a/src/qq_lib/kill/cli.py b/src/qq_lib/kill/cli.py index 22a589a..ae14276 100644 --- a/src/qq_lib/kill/cli.py +++ b/src/qq_lib/kill/cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import sys from pathlib import Path diff --git a/src/qq_lib/kill/killer.py b/src/qq_lib/kill/killer.py index b7723a8..9e85f63 100644 --- a/src/qq_lib/kill/killer.py +++ b/src/qq_lib/kill/killer.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import stat from datetime import datetime diff --git a/src/qq_lib/killall/__init__.py b/src/qq_lib/killall/__init__.py index fbb51e0..d24db1e 100644 --- a/src/qq_lib/killall/__init__.py +++ b/src/qq_lib/killall/__init__.py @@ -1,2 +1,2 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab diff --git a/src/qq_lib/killall/cli.py b/src/qq_lib/killall/cli.py index ca46361..ebbadbc 100644 --- a/src/qq_lib/killall/cli.py +++ b/src/qq_lib/killall/cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import getpass diff --git a/src/qq_lib/nodes/__init__.py b/src/qq_lib/nodes/__init__.py index 1f4b76f..8b09d26 100644 --- a/src/qq_lib/nodes/__init__.py +++ b/src/qq_lib/nodes/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Provides node presentation utilities. diff --git a/src/qq_lib/nodes/cli.py b/src/qq_lib/nodes/cli.py index 917d599..2ebe0ec 100644 --- a/src/qq_lib/nodes/cli.py +++ b/src/qq_lib/nodes/cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import getpass diff --git a/src/qq_lib/nodes/presenter.py b/src/qq_lib/nodes/presenter.py index 077fcc9..421e4d9 100644 --- a/src/qq_lib/nodes/presenter.py +++ b/src/qq_lib/nodes/presenter.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import re from collections import defaultdict diff --git a/src/qq_lib/properties/__init__.py b/src/qq_lib/properties/__init__.py index 0db5cd7..e549078 100644 --- a/src/qq_lib/properties/__init__.py +++ b/src/qq_lib/properties/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Properties and structured metadata for qq jobs. diff --git a/src/qq_lib/properties/depend.py b/src/qq_lib/properties/depend.py index 9df75cf..374d6d0 100644 --- a/src/qq_lib/properties/depend.py +++ b/src/qq_lib/properties/depend.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Representation and handling of qq job dependencies. diff --git a/src/qq_lib/properties/info.py b/src/qq_lib/properties/info.py index b425252..bca0771 100644 --- a/src/qq_lib/properties/info.py +++ b/src/qq_lib/properties/info.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Structured storage and serialization of qq job metadata. diff --git a/src/qq_lib/properties/job_type.py b/src/qq_lib/properties/job_type.py index 4de9081..1571123 100644 --- a/src/qq_lib/properties/job_type.py +++ b/src/qq_lib/properties/job_type.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Enumeration of supported qq job types. diff --git a/src/qq_lib/properties/loop.py b/src/qq_lib/properties/loop.py index 61ec65d..9e79b9a 100644 --- a/src/qq_lib/properties/loop.py +++ b/src/qq_lib/properties/loop.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Loop-job metadata and cycle-tracking utilities. diff --git a/src/qq_lib/properties/resources.py b/src/qq_lib/properties/resources.py index adb67b9..f54d55f 100644 --- a/src/qq_lib/properties/resources.py +++ b/src/qq_lib/properties/resources.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Structured representation of job resource requirements. diff --git a/src/qq_lib/properties/size.py b/src/qq_lib/properties/size.py index 0fcb374..72c2784 100644 --- a/src/qq_lib/properties/size.py +++ b/src/qq_lib/properties/size.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Utility class for representing and manipulating memory and storage sizes. diff --git a/src/qq_lib/properties/states.py b/src/qq_lib/properties/states.py index 544406f..e5a072f 100644 --- a/src/qq_lib/properties/states.py +++ b/src/qq_lib/properties/states.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ State models for qq jobs across different layers of the system. diff --git a/src/qq_lib/qq.py b/src/qq_lib/qq.py index b1e09d2..6e35228 100644 --- a/src/qq_lib/qq.py +++ b/src/qq_lib/qq.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import sys @@ -46,7 +46,7 @@ def cli(ctx: click.Context, version: bool): qq is a wrapper around batch scheduling systems, simplifying job submission and management. - For detailed information, visit: https://ladme.github.io/qq-manual. + For detailed information, visit: https://vachalab.github.io/qq-manual. """ if version: print(__version__) diff --git a/src/qq_lib/queues/__init__.py b/src/qq_lib/queues/__init__.py index 8d43a9e..4089c72 100644 --- a/src/qq_lib/queues/__init__.py +++ b/src/qq_lib/queues/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Presentation utilities for queues of the batch system. diff --git a/src/qq_lib/queues/cli.py b/src/qq_lib/queues/cli.py index 18b9fa5..c00d2c7 100644 --- a/src/qq_lib/queues/cli.py +++ b/src/qq_lib/queues/cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import getpass diff --git a/src/qq_lib/queues/presenter.py b/src/qq_lib/queues/presenter.py index c61644d..501648e 100644 --- a/src/qq_lib/queues/presenter.py +++ b/src/qq_lib/queues/presenter.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from rich.console import Console, Group from rich.panel import Panel diff --git a/src/qq_lib/run/__init__.py b/src/qq_lib/run/__init__.py index 104f06c..4e38f9c 100644 --- a/src/qq_lib/run/__init__.py +++ b/src/qq_lib/run/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Execution utilities for running qq jobs inside the batch environment. diff --git a/src/qq_lib/run/cli.py b/src/qq_lib/run/cli.py index 205a5fc..a16a80e 100644 --- a/src/qq_lib/run/cli.py +++ b/src/qq_lib/run/cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import os diff --git a/src/qq_lib/run/runner.py b/src/qq_lib/run/runner.py index 459e258..2efa66d 100644 --- a/src/qq_lib/run/runner.py +++ b/src/qq_lib/run/runner.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import os import shutil @@ -408,11 +408,11 @@ def _updateInfoRunning(self) -> None: self._reloadInfoAndEnsureValid() try: - nodes = self._informer.getNodes() - if not nodes: - raise QQError( - "Could not get the list of used nodes from the batch server" - ) + nodes = Retryer( + self._getNodes, + max_tries=CFG.runner.retry_tries, + wait_seconds=CFG.runner.retry_wait, + ).run() self._informer.setRunning( datetime.now(), @@ -433,6 +433,23 @@ def _updateInfoRunning(self) -> None: f"Could not update qqinfo file '{self._info_file}' at JOB START: {e}." ) from e + def _getNodes(self) -> list[str]: + """ + Get a list of nodes used to execute this job. The nodes are obtained by + querying the batch system. + + Returns: + list[str]: Names of nodes used to execute the job. + + Raises: + QQError: If the batch system is unable to provide information about the nodes after retries. + """ + nodes = self._informer.getNodes() + if not nodes: + raise QQError("Could not get the list of used nodes from the batch server") + + return nodes + def _updateInfoFinished(self) -> None: """ Update the qq info file to mark the job as successfully finished. diff --git a/src/qq_lib/shebang/__init__.py b/src/qq_lib/shebang/__init__.py index fbb51e0..d24db1e 100644 --- a/src/qq_lib/shebang/__init__.py +++ b/src/qq_lib/shebang/__init__.py @@ -1,2 +1,2 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab diff --git a/src/qq_lib/shebang/cli.py b/src/qq_lib/shebang/cli.py index 7a2a2f1..8723298 100644 --- a/src/qq_lib/shebang/cli.py +++ b/src/qq_lib/shebang/cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import re diff --git a/src/qq_lib/stat/__init__.py b/src/qq_lib/stat/__init__.py index fbb51e0..d24db1e 100644 --- a/src/qq_lib/stat/__init__.py +++ b/src/qq_lib/stat/__init__.py @@ -1,2 +1,2 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab diff --git a/src/qq_lib/stat/cli.py b/src/qq_lib/stat/cli.py index 7171d11..b69b86b 100644 --- a/src/qq_lib/stat/cli.py +++ b/src/qq_lib/stat/cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import sys diff --git a/src/qq_lib/submit/__init__.py b/src/qq_lib/submit/__init__.py index 7e54600..2b6fd76 100644 --- a/src/qq_lib/submit/__init__.py +++ b/src/qq_lib/submit/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Utilities for submitting qq jobs. diff --git a/src/qq_lib/submit/cli.py b/src/qq_lib/submit/cli.py index 0f8f41f..37753c3 100644 --- a/src/qq_lib/submit/cli.py +++ b/src/qq_lib/submit/cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import sys diff --git a/src/qq_lib/submit/factory.py b/src/qq_lib/submit/factory.py index 989d92d..c7aa87d 100644 --- a/src/qq_lib/submit/factory.py +++ b/src/qq_lib/submit/factory.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from dataclasses import fields from pathlib import Path diff --git a/src/qq_lib/submit/parser.py b/src/qq_lib/submit/parser.py index a4a60b1..3c225b6 100644 --- a/src/qq_lib/submit/parser.py +++ b/src/qq_lib/submit/parser.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import re from dataclasses import fields diff --git a/src/qq_lib/submit/submitter.py b/src/qq_lib/submit/submitter.py index 8e4a06b..6fa9c99 100644 --- a/src/qq_lib/submit/submitter.py +++ b/src/qq_lib/submit/submitter.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import getpass import os diff --git a/src/qq_lib/sync/__init__.py b/src/qq_lib/sync/__init__.py index 55b8f13..c458d7f 100644 --- a/src/qq_lib/sync/__init__.py +++ b/src/qq_lib/sync/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ File-synchronization utilities for retrieving data from a running or failed qq job. diff --git a/src/qq_lib/sync/cli.py b/src/qq_lib/sync/cli.py index 487132e..e8a3a00 100644 --- a/src/qq_lib/sync/cli.py +++ b/src/qq_lib/sync/cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import re import sys diff --git a/src/qq_lib/sync/syncer.py b/src/qq_lib/sync/syncer.py index 4c9f3bd..9db2143 100644 --- a/src/qq_lib/sync/syncer.py +++ b/src/qq_lib/sync/syncer.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from qq_lib.core.error import QQError, QQNotSuitableError from qq_lib.core.logger import get_logger diff --git a/src/qq_lib/wipe/__init__.py b/src/qq_lib/wipe/__init__.py index e03cf71..fd43704 100644 --- a/src/qq_lib/wipe/__init__.py +++ b/src/qq_lib/wipe/__init__.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab """ Utilities for removing the working directory of a qq job. diff --git a/src/qq_lib/wipe/cli.py b/src/qq_lib/wipe/cli.py index 86b3b3e..f5e3f36 100644 --- a/src/qq_lib/wipe/cli.py +++ b/src/qq_lib/wipe/cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import sys from pathlib import Path diff --git a/src/qq_lib/wipe/wiper.py b/src/qq_lib/wipe/wiper.py index 30a4a5f..0f26e53 100644 --- a/src/qq_lib/wipe/wiper.py +++ b/src/qq_lib/wipe/wiper.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from qq_lib.core.error import QQError, QQNotSuitableError diff --git a/tests/test_archive.py b/tests/test_archive.py index 7bbd4bd..2b92852 100644 --- a/tests/test_archive.py +++ b/tests/test_archive.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import re import socket diff --git a/tests/test_batch_interface.py b/tests/test_batch_interface.py index 4f4f837..649efeb 100644 --- a/tests/test_batch_interface.py +++ b/tests/test_batch_interface.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import os import subprocess diff --git a/tests/test_batch_pbs_common.py b/tests/test_batch_pbs_common.py index e73b1ba..28ab246 100644 --- a/tests/test_batch_pbs_common.py +++ b/tests/test_batch_pbs_common.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import pytest diff --git a/tests/test_batch_pbs_job.py b/tests/test_batch_pbs_job.py index 3252ada..7c58afc 100644 --- a/tests/test_batch_pbs_job.py +++ b/tests/test_batch_pbs_job.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab # ruff: noqa: W291 diff --git a/tests/test_batch_pbs_node.py b/tests/test_batch_pbs_node.py index b4a2fb8..4b328ea 100644 --- a/tests/test_batch_pbs_node.py +++ b/tests/test_batch_pbs_node.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import MagicMock, patch diff --git a/tests/test_batch_pbs_pbs.py b/tests/test_batch_pbs_pbs.py index 54a3e4b..8ab191d 100644 --- a/tests/test_batch_pbs_pbs.py +++ b/tests/test_batch_pbs_pbs.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab # ruff: noqa: W291 diff --git a/tests/test_batch_pbs_queue.py b/tests/test_batch_pbs_queue.py index 132c527..5cbfef2 100644 --- a/tests/test_batch_pbs_queue.py +++ b/tests/test_batch_pbs_queue.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from datetime import timedelta diff --git a/tests/test_batch_slurm_common.py b/tests/test_batch_slurm_common.py index f891b5d..f47fe2f 100644 --- a/tests/test_batch_slurm_common.py +++ b/tests/test_batch_slurm_common.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from dataclasses import fields diff --git a/tests/test_batch_slurm_job.py b/tests/test_batch_slurm_job.py index 72e1c10..1d406b9 100644 --- a/tests/test_batch_slurm_job.py +++ b/tests/test_batch_slurm_job.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from datetime import datetime, timedelta from pathlib import Path diff --git a/tests/test_batch_slurm_node.py b/tests/test_batch_slurm_node.py index 30ba5e4..536065d 100644 --- a/tests/test_batch_slurm_node.py +++ b/tests/test_batch_slurm_node.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import MagicMock, patch diff --git a/tests/test_batch_slurm_queue.py b/tests/test_batch_slurm_queue.py index 9ea2fb0..561e5f3 100644 --- a/tests/test_batch_slurm_queue.py +++ b/tests/test_batch_slurm_queue.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from datetime import timedelta diff --git a/tests/test_batch_slurm_slurm.py b/tests/test_batch_slurm_slurm.py index 24ae6e7..acd7a0c 100644 --- a/tests/test_batch_slurm_slurm.py +++ b/tests/test_batch_slurm_slurm.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from pathlib import Path diff --git a/tests/test_batch_slurmit4i_slurm.py b/tests/test_batch_slurmit4i_slurm.py index 2d1e555..74e3c34 100644 --- a/tests/test_batch_slurmit4i_slurm.py +++ b/tests/test_batch_slurmit4i_slurm.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import os diff --git a/tests/test_batch_slurmlumi_slurm.py b/tests/test_batch_slurmlumi_slurm.py index 4e465a7..eeb2a57 100644 --- a/tests/test_batch_slurmlumi_slurm.py +++ b/tests/test_batch_slurmlumi_slurm.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import getpass diff --git a/tests/test_cd_cder.py b/tests/test_cd_cder.py index 9c842ea..160ccf5 100644 --- a/tests/test_cd_cder.py +++ b/tests/test_cd_cder.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import patch diff --git a/tests/test_cd_cli.py b/tests/test_cd_cli.py index 5661f5b..a6a217e 100644 --- a/tests/test_cd_cli.py +++ b/tests/test_cd_cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import patch diff --git a/tests/test_clear.py b/tests/test_clear.py index bf06a25..2f8f2d8 100644 --- a/tests/test_clear.py +++ b/tests/test_clear.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from pathlib import Path diff --git a/tests/test_core_common.py b/tests/test_core_common.py index f3f12ec..02a6fbe 100644 --- a/tests/test_core_common.py +++ b/tests/test_core_common.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import re import tempfile diff --git a/tests/test_core_config.py b/tests/test_core_config.py index 74e2b58..88c9a8c 100644 --- a/tests/test_core_config.py +++ b/tests/test_core_config.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from dataclasses import dataclass, field diff --git a/tests/test_core_error_handlers.py b/tests/test_core_error_handlers.py index db9cb5a..cbf9fa6 100644 --- a/tests/test_core_error_handlers.py +++ b/tests/test_core_error_handlers.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import patch diff --git a/tests/test_core_field_coupling.py b/tests/test_core_field_coupling.py index 797f95d..6204ba3 100644 --- a/tests/test_core_field_coupling.py +++ b/tests/test_core_field_coupling.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from dataclasses import dataclass diff --git a/tests/test_core_logger.py b/tests/test_core_logger.py index 9e1e295..e71dfaf 100644 --- a/tests/test_core_logger.py +++ b/tests/test_core_logger.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import io import logging diff --git a/tests/test_core_navigator.py b/tests/test_core_navigator.py index cc68206..3223f60 100644 --- a/tests/test_core_navigator.py +++ b/tests/test_core_navigator.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import socket diff --git a/tests/test_core_operator.py b/tests/test_core_operator.py index 5a71edd..cdb7b43 100644 --- a/tests/test_core_operator.py +++ b/tests/test_core_operator.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import MagicMock, patch diff --git a/tests/test_core_repeater.py b/tests/test_core_repeater.py index 0772f0a..eebbd1f 100644 --- a/tests/test_core_repeater.py +++ b/tests/test_core_repeater.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import Mock diff --git a/tests/test_core_retryer.py b/tests/test_core_retryer.py index 794ed3a..8063bdc 100644 --- a/tests/test_core_retryer.py +++ b/tests/test_core_retryer.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import MagicMock, patch diff --git a/tests/test_go_cli.py b/tests/test_go_cli.py index 2e90d89..1d7ae3d 100644 --- a/tests/test_go_cli.py +++ b/tests/test_go_cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import MagicMock, patch diff --git a/tests/test_go_goer.py b/tests/test_go_goer.py index 937fbfb..7884801 100644 --- a/tests/test_go_goer.py +++ b/tests/test_go_goer.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from pathlib import Path diff --git a/tests/test_info_cli.py b/tests/test_info_cli.py index ad65cf7..0c7746d 100644 --- a/tests/test_info_cli.py +++ b/tests/test_info_cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import MagicMock, patch diff --git a/tests/test_info_informer.py b/tests/test_info_informer.py index 6cf4ea7..32aee38 100644 --- a/tests/test_info_informer.py +++ b/tests/test_info_informer.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from datetime import datetime from pathlib import Path diff --git a/tests/test_info_presenter.py b/tests/test_info_presenter.py index ba274f3..85c9974 100644 --- a/tests/test_info_presenter.py +++ b/tests/test_info_presenter.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from datetime import datetime, timedelta from pathlib import Path diff --git a/tests/test_jobs_cli.py b/tests/test_jobs_cli.py index 4accb95..d2417e8 100644 --- a/tests/test_jobs_cli.py +++ b/tests/test_jobs_cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import patch diff --git a/tests/test_jobs_presenter.py b/tests/test_jobs_presenter.py index 7641c0a..683a374 100644 --- a/tests/test_jobs_presenter.py +++ b/tests/test_jobs_presenter.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import io diff --git a/tests/test_kill_cli.py b/tests/test_kill_cli.py index 0a747bb..b8b8e18 100644 --- a/tests/test_kill_cli.py +++ b/tests/test_kill_cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import MagicMock, patch diff --git a/tests/test_kill_killer.py b/tests/test_kill_killer.py index 8842b63..d8de0c3 100644 --- a/tests/test_kill_killer.py +++ b/tests/test_kill_killer.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import stat import tempfile diff --git a/tests/test_killall_cli.py b/tests/test_killall_cli.py index 49ff826..9b0e4dd 100644 --- a/tests/test_killall_cli.py +++ b/tests/test_killall_cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import getpass diff --git a/tests/test_nodes_cli.py b/tests/test_nodes_cli.py index 6d39dfa..74dbc58 100644 --- a/tests/test_nodes_cli.py +++ b/tests/test_nodes_cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import MagicMock, patch diff --git a/tests/test_nodes_presenter.py b/tests/test_nodes_presenter.py index 1055fb9..610acb7 100644 --- a/tests/test_nodes_presenter.py +++ b/tests/test_nodes_presenter.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import sys diff --git a/tests/test_properties_depend.py b/tests/test_properties_depend.py index 7e73ced..3d24462 100644 --- a/tests/test_properties_depend.py +++ b/tests/test_properties_depend.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import pytest diff --git a/tests/test_properties_info.py b/tests/test_properties_info.py index 0b7c478..aa8d217 100644 --- a/tests/test_properties_info.py +++ b/tests/test_properties_info.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from datetime import datetime diff --git a/tests/test_properties_job_type.py b/tests/test_properties_job_type.py index 45476e5..4e0a9af 100644 --- a/tests/test_properties_job_type.py +++ b/tests/test_properties_job_type.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import pytest diff --git a/tests/test_properties_loop.py b/tests/test_properties_loop.py index f9d1f77..e747924 100644 --- a/tests/test_properties_loop.py +++ b/tests/test_properties_loop.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import shutil import tempfile diff --git a/tests/test_properties_resources.py b/tests/test_properties_resources.py index 03bced5..7933798 100644 --- a/tests/test_properties_resources.py +++ b/tests/test_properties_resources.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import pytest diff --git a/tests/test_properties_size.py b/tests/test_properties_size.py index 7ade120..2eda379 100644 --- a/tests/test_properties_size.py +++ b/tests/test_properties_size.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import pytest diff --git a/tests/test_properties_states.py b/tests/test_properties_states.py index 9315671..860860a 100644 --- a/tests/test_properties_states.py +++ b/tests/test_properties_states.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import pytest diff --git a/tests/test_queues_cli.py b/tests/test_queues_cli.py index 9c5cc20..9aa738f 100644 --- a/tests/test_queues_cli.py +++ b/tests/test_queues_cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import MagicMock, patch diff --git a/tests/test_queues_presenter.py b/tests/test_queues_presenter.py index e6339a5..f2228a4 100644 --- a/tests/test_queues_presenter.py +++ b/tests/test_queues_presenter.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import sys diff --git a/tests/test_run_cli.py b/tests/test_run_cli.py index e47f980..0154400 100644 --- a/tests/test_run_cli.py +++ b/tests/test_run_cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import MagicMock, patch diff --git a/tests/test_run_runner.py b/tests/test_run_runner.py index fea7c1d..e298f10 100644 --- a/tests/test_run_runner.py +++ b/tests/test_run_runner.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import os import shutil @@ -552,11 +552,34 @@ def test_runner_update_info_finished_logs_warning_on_failure(): mock_logger.warning.assert_called_once() +def test_runner_get_nodes_success(): + informer_mock = MagicMock() + informer_mock.getNodes.return_value = ["node1", "node2"] + + runner = Runner.__new__(Runner) + runner._informer = informer_mock + + assert runner._getNodes() == ["node1", "node2"] + + +def test_runner_get_nodes_raises_on_failure(): + informer_mock = MagicMock() + informer_mock.getNodes.return_value = None + + runner = Runner.__new__(Runner) + runner._informer = informer_mock + + with pytest.raises( + QQError, match="Could not get the list of used nodes from the batch server" + ): + runner._getNodes() + + def test_runner_update_info_running_success(): informer_mock = MagicMock() retryer_mock = MagicMock() - retryer_mock.run.return_value = None nodes = ["node1", "node2"] + retryer_mock.run.return_value = nodes informer_mock.getNodes.return_value = nodes runner = Runner.__new__(Runner) @@ -581,14 +604,19 @@ def test_runner_update_info_running_success(): informer_mock.setRunning.assert_called_once_with( now, "host", nodes, Path("/workdir") ) - retryer_cls.assert_called_once_with( - informer_mock.toFile, - runner._info_file, - host="random.host.org", - max_tries=CFG.runner.retry_tries, - wait_seconds=CFG.runner.retry_wait, - ) - retryer_mock.run.assert_called_once() + + node_call = retryer_cls.call_args_list[0] + assert node_call.kwargs["max_tries"] == CFG.runner.retry_tries + assert node_call.kwargs["wait_seconds"] == CFG.runner.retry_wait + assert node_call.args[0] == runner._getNodes + + write_call = retryer_cls.call_args_list[1] + assert write_call.kwargs["max_tries"] == CFG.runner.retry_tries + assert write_call.kwargs["wait_seconds"] == CFG.runner.retry_wait + assert write_call.kwargs["host"] == "random.host.org" + assert write_call.args[0] == informer_mock.toFile + assert write_call.args[1] == runner._info_file + mock_logger.debug.assert_called_once() @@ -605,6 +633,7 @@ def test_runner_update_info_running_raises_qqerror_on_failure(): with ( patch("qq_lib.run.runner.socket.gethostname", return_value="localhost"), + patch("qq_lib.run.runner.CFG.runner.retry_wait", return_value=0.1), pytest.raises(QQError, match="Could not update qqinfo file"), ): runner._updateInfoRunning() @@ -623,6 +652,7 @@ def test_runner_update_info_running_raises_on_empty_node_list(): with ( patch("qq_lib.run.runner.socket.gethostname", return_value="localhost"), + patch("qq_lib.run.runner.CFG.runner.retry_wait", return_value=0.1), pytest.raises( QQError, match="Could not get the list of used nodes from the batch server" ), diff --git a/tests/test_shebang_cli.py b/tests/test_shebang_cli.py index 1d27120..4f400f5 100644 --- a/tests/test_shebang_cli.py +++ b/tests/test_shebang_cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from pathlib import Path diff --git a/tests/test_stat_cli.py b/tests/test_stat_cli.py index f999667..1c5b6c4 100644 --- a/tests/test_stat_cli.py +++ b/tests/test_stat_cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import patch diff --git a/tests/test_submit_cli.py b/tests/test_submit_cli.py index 1fb5cfd..346d2d7 100644 --- a/tests/test_submit_cli.py +++ b/tests/test_submit_cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import MagicMock, patch diff --git a/tests/test_submit_factory.py b/tests/test_submit_factory.py index 6b9f22b..0d82d35 100644 --- a/tests/test_submit_factory.py +++ b/tests/test_submit_factory.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from pathlib import Path from unittest.mock import MagicMock, patch diff --git a/tests/test_submit_parser.py b/tests/test_submit_parser.py index d1d7392..906f1a0 100644 --- a/tests/test_submit_parser.py +++ b/tests/test_submit_parser.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import tempfile from dataclasses import fields diff --git a/tests/test_submit_submitter.py b/tests/test_submit_submitter.py index 43659e9..9ff6328 100644 --- a/tests/test_submit_submitter.py +++ b/tests/test_submit_submitter.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab import os diff --git a/tests/test_sync_cli.py b/tests/test_sync_cli.py index 8101198..0b8d935 100644 --- a/tests/test_sync_cli.py +++ b/tests/test_sync_cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import MagicMock, patch diff --git a/tests/test_sync_syncer.py b/tests/test_sync_syncer.py index 71eb6c1..b1f0867 100644 --- a/tests/test_sync_syncer.py +++ b/tests/test_sync_syncer.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from pathlib import Path diff --git a/tests/test_wipe_cli.py b/tests/test_wipe_cli.py index f606343..4a126f4 100644 --- a/tests/test_wipe_cli.py +++ b/tests/test_wipe_cli.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from unittest.mock import MagicMock, patch diff --git a/tests/test_wipe_wiper.py b/tests/test_wipe_wiper.py index 077f7b1..38d6bc4 100644 --- a/tests/test_wipe_wiper.py +++ b/tests/test_wipe_wiper.py @@ -1,5 +1,5 @@ # Released under MIT License. -# Copyright (c) 2025 Ladislav Bartos and Robert Vacha Lab +# Copyright (c) 2025-2026 Ladislav Bartos and Robert Vacha Lab from pathlib import Path