From 89bef78e4cde034472b17522f9f22eae1a010093 Mon Sep 17 00:00:00 2001 From: aidankhogg Date: Wed, 15 Jul 2026 10:17:10 +0100 Subject: [PATCH] Clean up compute architecture API --- .../src/computecommons/compute/__init__.py | 14 ++++++++++- .../computecommons/compute/architechture.py | 3 --- .../computecommons/compute/architecture.py | 14 ++++++++--- .../internetworking/tests/test_compute.py | 24 +++++++++++++++---- 4 files changed, 44 insertions(+), 11 deletions(-) delete mode 100644 builds/packages/base/internetworking/src/computecommons/compute/architechture.py diff --git a/builds/packages/base/internetworking/src/computecommons/compute/__init__.py b/builds/packages/base/internetworking/src/computecommons/compute/__init__.py index a0c406a..260e5df 100644 --- a/builds/packages/base/internetworking/src/computecommons/compute/__init__.py +++ b/builds/packages/base/internetworking/src/computecommons/compute/__init__.py @@ -1,5 +1,17 @@ +from computecommons.compute.architecture import ( + ARCHITECTURE_ALIASES, + CPUArchitecture, + normalize_architecture, +) from computecommons.compute.cpu import CPUInfo from computecommons.compute.machine import Machine from computecommons.compute.memory import MemoryInfo -__all__ = ["CPUInfo", "Machine", "MemoryInfo"] +__all__ = [ + "ARCHITECTURE_ALIASES", + "CPUArchitecture", + "CPUInfo", + "Machine", + "MemoryInfo", + "normalize_architecture", +] diff --git a/builds/packages/base/internetworking/src/computecommons/compute/architechture.py b/builds/packages/base/internetworking/src/computecommons/compute/architechture.py deleted file mode 100644 index 076d10d..0000000 --- a/builds/packages/base/internetworking/src/computecommons/compute/architechture.py +++ /dev/null @@ -1,3 +0,0 @@ -"""Deprecated compatibility shim for :mod:`computecommons.compute.architecture`.""" - -from .architecture import * # noqa: F403 diff --git a/builds/packages/base/internetworking/src/computecommons/compute/architecture.py b/builds/packages/base/internetworking/src/computecommons/compute/architecture.py index daa512c..2d2bac3 100644 --- a/builds/packages/base/internetworking/src/computecommons/compute/architecture.py +++ b/builds/packages/base/internetworking/src/computecommons/compute/architecture.py @@ -1,4 +1,12 @@ -"""Future module reserved for the computecommons v0.1 API surface.""" +"""Architecture helpers exposed from the compute package. -# TODO(P2): Define stable value objects here as the related API area matures. -# TODO(P3): Add package exports after names are accepted into the public API. +The canonical architecture enum lives in :mod:`computecommons.enums.compute`, and +normalization data lives in :mod:`computecommons.static.architectures`. This module +provides the compute-package import path for that accepted public API without +introducing duplicate value objects. +""" + +from computecommons.enums import CPUArchitecture +from computecommons.static import ARCHITECTURE_ALIASES, normalize_architecture + +__all__ = ["ARCHITECTURE_ALIASES", "CPUArchitecture", "normalize_architecture"] diff --git a/builds/packages/base/internetworking/tests/test_compute.py b/builds/packages/base/internetworking/tests/test_compute.py index 90ec866..0358674 100644 --- a/builds/packages/base/internetworking/tests/test_compute.py +++ b/builds/packages/base/internetworking/tests/test_compute.py @@ -1,6 +1,6 @@ import pytest -from computecommons.compute import CPUInfo, Machine, MemoryInfo +from computecommons.compute import CPUInfo, Machine, MemoryInfo, normalize_architecture from computecommons.enums import CPUArchitecture from computecommons.units import ByteSize @@ -19,10 +19,26 @@ def test_available_memory_cannot_exceed_total() -> None: MemoryInfo(total=ByteSize(10), available=ByteSize(11)) -def test_architecture_module_imports() -> None: - import computecommons.compute.architecture +def test_architecture_api_reexports_canonical_helpers() -> None: + from computecommons.compute import CPUArchitecture as PackageCPUArchitecture + from computecommons.compute.architecture import ( + ARCHITECTURE_ALIASES, + ) + from computecommons.compute.architecture import ( + CPUArchitecture as ModuleCPUArchitecture, + ) + from computecommons.compute.architecture import ( + normalize_architecture as module_normalize_architecture, + ) + from computecommons.static import normalize_architecture as static_normalize_architecture + + assert ModuleCPUArchitecture is CPUArchitecture + assert PackageCPUArchitecture is CPUArchitecture + assert module_normalize_architecture is static_normalize_architecture + assert normalize_architecture("AMD64") is CPUArchitecture.X86_64 + assert ARCHITECTURE_ALIASES["amd64"] is CPUArchitecture.X86_64 + - assert computecommons.compute.architecture is not None def test_compute_import_paths_export_same_models() -> None: from computecommons.compute import CPUInfo as PackageCPUInfo from computecommons.compute import Machine as PackageMachine