Skip to content

Commit 509d1d2

Browse files
authored
bugfix: Fixed multiplication with numpy constants (#494)
1 parent 397152d commit 509d1d2

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

doc/release_notes.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Release Notes
44
.. Upcoming Version
55
.. ----------------
66
.. * Improved constraint equality check in `linopy.testing.assert_conequal` to less strict optionally
7+
.. * Minor bugfix for multiplying variables with numpy type constants
78
89
Version 0.5.6
910
--------------

linopy/common.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,9 @@ def as_dataarray(
254254
arr = pandas_to_dataarray(arr, coords=coords, dims=dims, **kwargs)
255255
elif isinstance(arr, np.ndarray):
256256
arr = numpy_to_dataarray(arr, coords=coords, dims=dims, **kwargs)
257-
elif isinstance(arr, np.number | int | float | str | bool | list):
257+
elif isinstance(arr, np.number):
258+
arr = DataArray(float(arr), coords=coords, dims=dims, **kwargs)
259+
elif isinstance(arr, int | float | str | bool | list):
258260
arr = DataArray(arr, coords=coords, dims=dims, **kwargs)
259261

260262
elif not isinstance(arr, DataArray):

test/test_common.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,14 @@ def test_as_dataarray_with_number() -> None:
369369
assert list(da.coords["dim1"].values) == ["a"]
370370

371371

372+
def test_as_dataarray_with_np_number() -> None:
373+
num = np.float64(1)
374+
da = as_dataarray(num, dims=["dim1"], coords=[["a"]])
375+
assert isinstance(da, DataArray)
376+
assert da.dims == ("dim1",)
377+
assert list(da.coords["dim1"].values) == ["a"]
378+
379+
372380
def test_as_dataarray_with_number_default_dims_coords() -> None:
373381
num = 1
374382
da = as_dataarray(num)

0 commit comments

Comments
 (0)