Skip to content

Commit 400a891

Browse files
authored
Merge pull request #1255 from MorningStarTM/feature/1112-add-overload
Add overloads for buffer handling
2 parents 75f7b38 + 0cfc3f9 commit 400a891

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

src/power_grid_model/_core/buffer_handling.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,19 @@
77
"""
88

99
from dataclasses import dataclass
10-
from typing import cast
10+
from typing import cast, overload
1111

1212
import numpy as np
1313

1414
from power_grid_model._core.data_types import (
1515
AttributeType,
1616
ComponentData,
17+
DenseBatchArray,
18+
DenseBatchColumnarData,
1719
DenseBatchData,
1820
IndexPointer,
21+
SingleArray,
22+
SingleColumnarData,
1923
SingleComponentData,
2024
SparseBatchArray,
2125
SparseBatchData,
@@ -88,6 +92,10 @@ def _get_raw_data_view(data: np.ndarray, dtype: np.dtype) -> VoidPtr:
8892
return np.ascontiguousarray(data, dtype=dtype).ctypes.data_as(VoidPtr)
8993

9094

95+
@overload
96+
def _get_raw_component_data_view(data: np.ndarray, schema: ComponentMetaData) -> VoidPtr: ...
97+
@overload
98+
def _get_raw_component_data_view(data: dict[AttributeType, np.ndarray], schema: ComponentMetaData) -> None: ...
9199
def _get_raw_component_data_view(
92100
data: np.ndarray | dict[AttributeType, np.ndarray], schema: ComponentMetaData
93101
) -> VoidPtr | None:
@@ -486,7 +494,13 @@ def _create_sparse_buffer(properties: BufferProperties, schema: ComponentMetaDat
486494
return cast(SparseBatchData, {"data": data, "indptr": indptr})
487495

488496

489-
def _create_contents_buffer(shape, dtype, columns: list[AttributeType] | None) -> SingleComponentData | DenseBatchData:
497+
@overload
498+
def _create_contents_buffer(shape, dtype, columns: None) -> SingleArray | DenseBatchArray: ...
499+
@overload
500+
def _create_contents_buffer(
501+
shape, dtype, columns: list[AttributeType]
502+
) -> SingleColumnarData | DenseBatchColumnarData: ...
503+
def _create_contents_buffer(shape, dtype, columns):
490504
if columns is None:
491505
return np.empty(shape=shape, dtype=dtype)
492506

0 commit comments

Comments
 (0)