From ed4c1a49597a3710081107cbe61bec4737f6375a Mon Sep 17 00:00:00 2001 From: Christian-B Date: Mon, 5 Oct 2026 11:43:56 +0100 Subject: [PATCH 1/5] use relative imports --- spalloc_client/__init__.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spalloc_client/__init__.py b/spalloc_client/__init__.py index 66210b5a3..aae7001a3 100644 --- a/spalloc_client/__init__.py +++ b/spalloc_client/__init__.py @@ -14,16 +14,16 @@ from spalloc_client._version import __version__ # noqa: F401 +from .job import Job, JobDestroyedError, StateChangeTimeoutError + # Alias useful objects -from spalloc_client.protocol_client import ( +from .protocol_client import ( ProtocolClient, ProtocolError, ProtocolTimeoutError, SpallocServerException, ) -from spalloc_client.states import JobState - -from .job import Job, JobDestroyedError, StateChangeTimeoutError +from .states import JobState __all__ = [ "Job", "JobDestroyedError", "JobState", "ProtocolClient", From 3097089112544844adcfddb02c592fa1e7f769be Mon Sep 17 00:00:00 2001 From: Christian-B Date: Mon, 5 Oct 2026 11:44:29 +0100 Subject: [PATCH 2/5] import from file not directory --- spalloc_client/scripts/support.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spalloc_client/scripts/support.py b/spalloc_client/scripts/support.py index 275336f60..f3558fe9a 100644 --- a/spalloc_client/scripts/support.py +++ b/spalloc_client/scripts/support.py @@ -18,7 +18,7 @@ from spinn_utilities.abstract_base import AbstractBase, abstractmethod -from spalloc_client import ( +from spalloc_client.protocol_client import ( ProtocolClient, ProtocolError, ProtocolTimeoutError, From d1535627f715b97a57ccb281f2f75702fca745ec Mon Sep 17 00:00:00 2001 From: Christian-B Date: Tue, 6 Oct 2026 17:33:35 +0100 Subject: [PATCH 3/5] test for init imports --- tests/test_import_checker.py | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tests/test_import_checker.py diff --git a/tests/test_import_checker.py b/tests/test_import_checker.py new file mode 100644 index 000000000..a5427abe1 --- /dev/null +++ b/tests/test_import_checker.py @@ -0,0 +1,37 @@ +# Copyright (c) 2017 The University of Manchester +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +import sys +import unittest + +from spinn_utilities.config_setup import unittest_setup +from spinn_utilities.testing.import_checker import DirChecker + + +class TestImportChecker(unittest.TestCase): + + def setUp(self) -> None: + unittest_setup() + + def test_imports(self) -> None: + class_file = sys.modules[self.__module__].__file__ + assert class_file is not None + abs_class_file = os.path.abspath(class_file) + unittest_dir = os.path.dirname(abs_class_file) + repo_dir = os.path.dirname(unittest_dir) + code_dir = os.path.join(repo_dir, "spalloc_client") + checker = DirChecker(code_dir) + self.assertEqual(checker.check_dir(), 0, + "Checking for imports from init files") From 5d0271c1ad625fabc5c50d94c66d6a4ee61c9839 Mon Sep 17 00:00:00 2001 From: Christian-B Date: Tue, 6 Oct 2026 17:33:49 +0100 Subject: [PATCH 4/5] import from files not inits --- spalloc_client/scripts/alloc.py | 8 ++++---- spalloc_client/scripts/job.py | 4 +++- spalloc_client/scripts/machine.py | 3 ++- spalloc_client/scripts/ps.py | 4 +++- spalloc_client/scripts/where_is.py | 3 ++- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/spalloc_client/scripts/alloc.py b/spalloc_client/scripts/alloc.py index 110832c6c..133c2adbd 100644 --- a/spalloc_client/scripts/alloc.py +++ b/spalloc_client/scripts/alloc.py @@ -117,15 +117,15 @@ from spinn_utilities.log import FormatAdapter -from spalloc_client import ( - Job, - JobState, +from spalloc_client._version import __version__ +from spalloc_client.job import Job +from spalloc_client.protocol_client import ( ProtocolError, ProtocolTimeoutError, SpallocServerException, - __version__, ) from spalloc_client.spalloc_config import SpallocConfig +from spalloc_client.states import JobState from spalloc_client.term import Terminal, render_definitions # pylint: disable=invalid-name diff --git a/spalloc_client/scripts/job.py b/spalloc_client/scripts/job.py index 333604397..01e268a79 100644 --- a/spalloc_client/scripts/job.py +++ b/spalloc_client/scripts/job.py @@ -81,10 +81,12 @@ from spinn_utilities.overrides import overrides from spinn_utilities.typing.json import JsonObject -from spalloc_client import JobState, ProtocolClient, __version__ from spalloc_client._utils import render_timestamp +from spalloc_client._version import __version__ +from spalloc_client.protocol_client import ProtocolClient from spalloc_client.scripts.support import Script, Terminate from spalloc_client.spalloc_config import SpallocConfig +from spalloc_client.states import JobState from spalloc_client.term import ( DEFAULT_BOARD_EDGES, Terminal, diff --git a/spalloc_client/scripts/machine.py b/spalloc_client/scripts/machine.py index 5ad305982..e33ca7704 100644 --- a/spalloc_client/scripts/machine.py +++ b/spalloc_client/scripts/machine.py @@ -38,7 +38,8 @@ from spinn_utilities.overrides import overrides from spinn_utilities.typing.json import JsonObject, JsonObjectArray -from spalloc_client import ProtocolClient, __version__ +from spalloc_client._version import __version__ +from spalloc_client.protocol_client import ProtocolClient from spalloc_client.scripts.support import Script, Terminate from spalloc_client.spalloc_config import SpallocConfig from spalloc_client.term import ( diff --git a/spalloc_client/scripts/ps.py b/spalloc_client/scripts/ps.py index c79560c6d..8cefe4325 100644 --- a/spalloc_client/scripts/ps.py +++ b/spalloc_client/scripts/ps.py @@ -32,8 +32,10 @@ from spinn_utilities.overrides import overrides from spinn_utilities.typing.json import JsonObjectArray -from spalloc_client import JobState, ProtocolClient, __version__ from spalloc_client._utils import render_timestamp +from spalloc_client._version import __version__ +from spalloc_client.job import JobState +from spalloc_client.protocol_client import ProtocolClient from spalloc_client.spalloc_config import SpallocConfig from spalloc_client.term import TableColumn, TableType, Terminal, render_table diff --git a/spalloc_client/scripts/where_is.py b/spalloc_client/scripts/where_is.py index d795254e1..72afb8fa0 100644 --- a/spalloc_client/scripts/where_is.py +++ b/spalloc_client/scripts/where_is.py @@ -70,7 +70,8 @@ from spinn_utilities.overrides import overrides -from spalloc_client import ProtocolClient, __version__ +from spalloc_client._version import __version__ +from spalloc_client.protocol_client import ProtocolClient from spalloc_client.scripts.support import Script, Terminate from spalloc_client.spalloc_config import SpallocConfig from spalloc_client.term import render_definitions From a7ab39fc4ce3a3a3f5861c903146e6f474194238 Mon Sep 17 00:00:00 2001 From: Christian-B Date: Mon, 12 Oct 2026 14:46:21 +0100 Subject: [PATCH 5/5] ImportChecker --- tests/test_import_checker.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_import_checker.py b/tests/test_import_checker.py index a5427abe1..2972de192 100644 --- a/tests/test_import_checker.py +++ b/tests/test_import_checker.py @@ -17,7 +17,7 @@ import unittest from spinn_utilities.config_setup import unittest_setup -from spinn_utilities.testing.import_checker import DirChecker +from spinn_utilities.testing.import_checker import ImportChecker class TestImportChecker(unittest.TestCase): @@ -32,6 +32,6 @@ def test_imports(self) -> None: unittest_dir = os.path.dirname(abs_class_file) repo_dir = os.path.dirname(unittest_dir) code_dir = os.path.join(repo_dir, "spalloc_client") - checker = DirChecker(code_dir) + checker = ImportChecker(code_dir) self.assertEqual(checker.check_dir(), 0, "Checking for imports from init files")