arraybridge 0.3.1__tar.gz → 0.3.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {arraybridge-0.3.1 → arraybridge-0.3.2}/PKG-INFO +2 -1
- {arraybridge-0.3.1 → arraybridge-0.3.2}/pyproject.toml +6 -2
- {arraybridge-0.3.1 → arraybridge-0.3.2}/src/arraybridge/__init__.py +1 -1
- {arraybridge-0.3.1 → arraybridge-0.3.2}/src/arraybridge/decorators.py +3 -2
- {arraybridge-0.3.1 → arraybridge-0.3.2}/tests/test_decorators.py +8 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/.github/workflows/ci.yml +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/.github/workflows/coverage-pages.yml +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/.github/workflows/gpu-tests.yml +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/.github/workflows/publish.yml +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/.gitignore +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/.readthedocs.yml +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/ADDING_NEW_FRAMEWORKS.md +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/CONTRIBUTING.md +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/LICENSE +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/README.md +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/TESTING.md +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/Makefile +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/archive/CI_ARTIFACT_UPDATE.md +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/archive/CI_CUPY_FIX.md +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/archive/CI_IMPROVEMENTS.md +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/archive/CONFLICT_VISUALIZATION.md +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/archive/COVERAGE_AUDIT_PLAN.md +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/archive/DEPLOYMENT_SUMMARY.md +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/archive/GPU_TESTING_SETUP.md +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/archive/MERGE_CONFLICT_RESOLUTION.md +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/archive/MIGRATION_SUMMARY.md +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/archive/QUICK_FIX_GUIDE.txt +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/archive/README.md +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/archive/RESOLVED_FILES.md +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/ci-cd.md +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/.gitignore +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/Makefile +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/README.md +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/advanced_topics.rst +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/api_reference.rst +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/ci-cd.rst +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/conf.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/contributing.rst +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/converters.rst +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/decorators.rst +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/examples/basic_conversion.rst +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/examples/decorators.rst +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/examples/index.rst +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/examples/multi_framework.rst +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/gpu_features.rst +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/index.rst +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/installation.rst +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/quickstart.rst +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/stack_utils.rst +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/docs/source/user_guide.rst +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/paper.bib +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/paper.md +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/scripts/release.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/scripts/update_version.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/scripts/verify_release_ready.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/src/arraybridge/array_geometry.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/src/arraybridge/array_operations.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/src/arraybridge/array_payload.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/src/arraybridge/converters.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/src/arraybridge/converters_registry.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/src/arraybridge/dtype_scaling.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/src/arraybridge/exceptions.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/src/arraybridge/framework_config.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/src/arraybridge/framework_ops.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/src/arraybridge/gpu_cleanup.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/src/arraybridge/oom_recovery.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/src/arraybridge/slice_processing.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/src/arraybridge/stack_utils.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/src/arraybridge/types.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/src/arraybridge/utils.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/tests/__init__.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/tests/conftest.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/tests/test_array_geometry.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/tests/test_converters.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/tests/test_converters_registry.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/tests/test_dtype_scaling.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/tests/test_exceptions.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/tests/test_framework_config.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/tests/test_gpu_cleanup.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/tests/test_integration.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/tests/test_oom_recovery.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/tests/test_registry_integration.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/tests/test_slice_processing.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/tests/test_stack_utils.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/tests/test_types.py +0 -0
- {arraybridge-0.3.1 → arraybridge-0.3.2}/tests/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: arraybridge
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.2
|
|
4
4
|
Summary: Unified API for NumPy, CuPy, PyTorch, TensorFlow, JAX, and pyclesperanto with automatic memory type conversion
|
|
5
5
|
Project-URL: Homepage, https://github.com/OpenHCSDev/arraybridge
|
|
6
6
|
Project-URL: Documentation, https://arraybridge.readthedocs.io
|
|
@@ -23,6 +23,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
23
23
|
Requires-Python: >=3.10
|
|
24
24
|
Requires-Dist: metaclass-registry>=0.1.5
|
|
25
25
|
Requires-Dist: numpy>=1.20
|
|
26
|
+
Requires-Dist: python-introspect>=0.1.11
|
|
26
27
|
Provides-Extra: all
|
|
27
28
|
Requires-Dist: cupy>=10.0; extra == 'all'
|
|
28
29
|
Requires-Dist: jax>=0.3; extra == 'all'
|
|
@@ -5,7 +5,7 @@ build-backend = "hatchling.build"
|
|
|
5
5
|
|
|
6
6
|
[project]
|
|
7
7
|
name = "arraybridge"
|
|
8
|
-
version = "0.3.
|
|
8
|
+
version = "0.3.2"
|
|
9
9
|
description = "Unified API for NumPy, CuPy, PyTorch, TensorFlow, JAX, and pyclesperanto with automatic memory type conversion"
|
|
10
10
|
authors = [{name = "Tristan Simas", email = "tristan.simas@mail.mcgill.ca"}]
|
|
11
11
|
license = {text = "MIT"}
|
|
@@ -25,7 +25,11 @@ classifiers = [
|
|
|
25
25
|
]
|
|
26
26
|
keywords = ["numpy", "cupy", "pytorch", "tensorflow", "jax", "gpu", "array", "tensor", "conversion"]
|
|
27
27
|
|
|
28
|
-
dependencies = [
|
|
28
|
+
dependencies = [
|
|
29
|
+
"numpy>=1.20",
|
|
30
|
+
"metaclass-registry>=0.1.5",
|
|
31
|
+
"python-introspect>=0.1.11",
|
|
32
|
+
]
|
|
29
33
|
|
|
30
34
|
[project.optional-dependencies]
|
|
31
35
|
cupy = ["cupy>=10.0"]
|
|
@@ -5,7 +5,7 @@ This package provides automatic memory type conversion, declarative decorators,
|
|
|
5
5
|
and unified utilities for working with multiple array/tensor frameworks.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
-
__version__ = "0.3.
|
|
8
|
+
__version__ = "0.3.2"
|
|
9
9
|
|
|
10
10
|
from . import decorators as _decorators
|
|
11
11
|
from .array_geometry import ArrayGeometry
|
|
@@ -23,6 +23,7 @@ from typing import Any, ClassVar, TypeVar, cast
|
|
|
23
23
|
|
|
24
24
|
import numpy as np
|
|
25
25
|
from metaclass_registry import AutoRegisterMeta, RegistryFamily, RegistryKeyAttribute
|
|
26
|
+
from python_introspect import RuntimeParameterDeclarationABC
|
|
26
27
|
|
|
27
28
|
from arraybridge.array_payload import ArrayPayload
|
|
28
29
|
from arraybridge.oom_recovery import _execute_with_oom_recovery
|
|
@@ -60,7 +61,7 @@ class DtypeConversion(Enum):
|
|
|
60
61
|
return dtype_map.get(self, None)
|
|
61
62
|
|
|
62
63
|
|
|
63
|
-
class DtypeConversionConfig(
|
|
64
|
+
class DtypeConversionConfig(RuntimeParameterDeclarationABC):
|
|
64
65
|
"""Nominal dtype conversion config surface consumed by decorators."""
|
|
65
66
|
|
|
66
67
|
@property
|
|
@@ -90,7 +91,7 @@ class DtypeConversionConfig(ABC):
|
|
|
90
91
|
)
|
|
91
92
|
|
|
92
93
|
|
|
93
|
-
class SliceBySliceRuntimeParameter:
|
|
94
|
+
class SliceBySliceRuntimeParameter(RuntimeParameterDeclarationABC):
|
|
94
95
|
"""Nominal slice-by-slice execution parameter consumed by decorators."""
|
|
95
96
|
|
|
96
97
|
preserve_for_execution = True
|
|
@@ -6,6 +6,7 @@ from typing import Any
|
|
|
6
6
|
|
|
7
7
|
import numpy as np
|
|
8
8
|
import pytest
|
|
9
|
+
from python_introspect import RuntimeParameterDeclarationABC
|
|
9
10
|
|
|
10
11
|
from arraybridge import ArrayPayload
|
|
11
12
|
from arraybridge.decorators import (
|
|
@@ -33,6 +34,13 @@ class TestDtypeConversion:
|
|
|
33
34
|
assert DtypeConversion.UINT8.value == "uint8"
|
|
34
35
|
assert DtypeConversion.UINT16.value == "uint16"
|
|
35
36
|
assert DtypeConversion.INT16.value == "int16"
|
|
37
|
+
|
|
38
|
+
def test_runtime_parameters_are_nominal_declarations(self):
|
|
39
|
+
assert issubclass(DtypeConversionConfig, RuntimeParameterDeclarationABC)
|
|
40
|
+
assert issubclass(
|
|
41
|
+
SliceBySliceRuntimeParameter,
|
|
42
|
+
RuntimeParameterDeclarationABC,
|
|
43
|
+
)
|
|
36
44
|
assert DtypeConversion.INT32.value == "int32"
|
|
37
45
|
assert DtypeConversion.FLOAT32.value == "float32"
|
|
38
46
|
assert DtypeConversion.FLOAT64.value == "float64"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|