Metadata-Version: 2.1
Name: arrayclasses
Version: 0.1.2
Summary: Analogue to dataclass that uses a numpy-backed array to store values.
Home-page: https://github.com/Ivorforce/python-arrayclass
License: MIT
Keywords: numpy,dataclass
Author: Lukas Tenbrink
Author-email: lukas.tenbrink@gmail.com
Requires-Python: >=3.9,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: numpy (>=1.24.3,<2.0.0)
Project-URL: Repository, https://github.com/Ivorforce/python-arrayclass
Description-Content-Type: text/markdown

# arrayclass

A small `@dataclass`-like decorator for python classes. The class will store its values in a single contiguous [numpy](https://numpy.org) array. It can also be converted to and from plain numpy arrays.

## Installation

`poetry add dataclasses` or `pip install dataclasses`

## Usage

```py
import arrayclasses

@arrayclasses.arrayclass
class State:
    x: float
    y: tuple[float, float]
    z: float

# Object creation
state = State(x=5, y=(0, 1), z=0)
print(np.x)  # Prints 5.0
print(np.y)  # Prints np.array([0.0, 1.0])
state.y = 2.0
print(np.y)  # Prints np.array([2.0, 2.0])

# Array conversion.
state = arrayclasses.from_array((5, 0, 1, 0))
print(np.array(state))  # prints np.array([5.0, 0.0, 1.0, 0.0])
```

