About
cobra-array is a backend-agnostic array utility library that unifies array conversion, context control, and cross-library operations across NumPy/PyTorch-style ecosystems.
- Python: 3.9+
- Runtime deps:
array-api-compat(>= 1.11.2)
Features
- 🚀 Ackend-agnostic API: Work with different array backends through one consistent interface.
- 🚀 Context-driven unification: Automatically align namespace, dtype, and device via context managers and decorators.
- 🚀 Compatibility wrappers:
CompatArrayandCompatNamespaceprovide a clean, consistent layer over native backend behavior.
Installation
Install from PyPI
pip install cobra-array
Quick Start
-
Basic conversions:
import numpy as np from cobra_array.convert import to_numpy, to_tensor, to_list data = [[1, 2], [3, 4]] arr_np = to_numpy(data, dtype=np.float32) # numpy.ndarray float32 arr_torch = to_tensor(data, device="cpu") back_to_list = to_list(arr_np) # [[1.0, 2.0], [3.0, 4.0]]
-
Context-based conversion:
import numpy as np from cobra_array import array_context, as_context, context_spec with array_context(xp="numpy", dtype=np.float32, device="cpu"): x = as_context([1, 2, 3]) y = as_context(np.array([4, 5])) spec = context_spec()
-
Auto-unify function arguments:
import numpy as np from cobra_array import unify_args @unify_args(ref=0, unify_dtype=True, unify_device=True, arraylike_only=True) def add_and_mean(a, b): c = a + b return c.mean() out = add_and_mean(np.array([1, 2, 3]), [4, 5, 6])
-
Default backend strategy:
from cobra_array.default import as_default, default_spec spec = default_spec() x = as_default([1, 2, 3], unify_dtype=True, unify_device=True)
Requirements
- Python >= 3.9
array-api-compat>= 1.11.2
License
See LICENSE in the repository.
Links
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cobra_array-0.2.2.tar.gz
(49.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cobra_array-0.2.2.tar.gz.
File metadata
- Download URL: cobra_array-0.2.2.tar.gz
- Upload date:
- Size: 49.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43bbed2a27442e0fb435f5f341ef2153654a8e96552464b00687bb100468d510
|
|
| MD5 |
c11cb09411fa23fd6a1c24c69f5af90d
|
|
| BLAKE2b-256 |
20af2feff5ce69841d9330cbe2f4386a01d2a72683c4374fca55d63d690dea16
|
File details
Details for the file cobra_array-0.2.2-py3-none-any.whl.
File metadata
- Download URL: cobra_array-0.2.2-py3-none-any.whl
- Upload date:
- Size: 49.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6f8a60503fa6eae5f62482ef2980c128854034b8e24ada77362e704c24ef176
|
|
| MD5 |
9790aa3b9ae2adb5a2cabe3a17e65b77
|
|
| BLAKE2b-256 |
0229660067c0027fce1a818f2187116c056e75e38053c46c4c548e03deae52e5
|