From f8d2c0144120f4afc01a2f4f6acede06dfdce01f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Cabrero-Holgueras?= Date: Fri, 24 May 2024 14:52:14 +0000 Subject: [PATCH 1/3] feat: added hstack and vstack as na.functions and len(NadaArray) --- nada_algebra/array.py | 19 +++++++++++++++++++ nada_algebra/funcs.py | 26 ++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/nada_algebra/array.py b/nada_algebra/array.py index 7112552..82299ec 100644 --- a/nada_algebra/array.py +++ b/nada_algebra/array.py @@ -435,7 +435,26 @@ def wrapper(*args, **kwargs): return attr def __setattr__(self, name, value): + """ + Overrides the default behavior of setting attributes. + + If the attribute name is "inner", it sets the attribute value directly. + Otherwise, it sets the attribute value on the inner object. + + Parameters: + name (str): The name of the attribute. + value: The value to set for the attribute. + """ if name == "inner": super().__setattr__(name, value) else: setattr(self.inner, name, value) + + def __len__(self): + """ + Overrides the default behavior of returning the length of the object. + + Returns: + int: The length of the inner numpy array. + """ + return len(self.inner) diff --git a/nada_algebra/funcs.py b/nada_algebra/funcs.py index 60bfef8..2d8f0a2 100644 --- a/nada_algebra/funcs.py +++ b/nada_algebra/funcs.py @@ -216,3 +216,29 @@ def output(arr: NadaArray, party: Party, prefix: str): list: A list of Output objects. """ return NadaArray.output_array(arr, party, prefix) + + +def vstack(arr_list: list[NadaArray]) -> NadaArray: + """ + Stack arrays in sequence vertically (row wise). + + Args: + arr_list (list): A list of NadaArray objects to stack. + + Returns: + NadaArray: The stacked NadaArray. + """ + return NadaArray(np.vstack(arr_list)) + + +def hstack(arr_list: list[NadaArray]) -> NadaArray: + """ + Stack arrays in sequence horizontally (column wise). + + Args: + arr_list (list): A list of NadaArray objects to stack. + + Returns: + NadaArray: The stacked NadaArray. + """ + return NadaArray(np.hstack(arr_list)) From 363b8476c7432a9861d20ebba8321c17b0708966 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Cabrero-Holgueras?= Date: Fri, 24 May 2024 14:52:32 +0000 Subject: [PATCH 2/3] chore: Bump version number for release --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index d1aae49..f435bba 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "nada-algebra" -version = "0.1.1" +version = "0.2.0" description = "" authors = ["José Cabrero-Holgueras "] readme = "README.md" From 8b0571e236e169d906153c6d014198184fb60b0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Cabrero-Holgueras?= Date: Tue, 28 May 2024 13:07:33 +0000 Subject: [PATCH 3/3] fix: comments --- nada_algebra/array.py | 10 +++++----- nada_algebra/funcs.py | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/nada_algebra/array.py b/nada_algebra/array.py index 82299ec..0387dc8 100644 --- a/nada_algebra/array.py +++ b/nada_algebra/array.py @@ -434,16 +434,16 @@ def wrapper(*args, **kwargs): return attr - def __setattr__(self, name, value): + def __setattr__(self, name: str, value: Any): """ Overrides the default behavior of setting attributes. If the attribute name is "inner", it sets the attribute value directly. Otherwise, it sets the attribute value on the inner object. - Parameters: - name (str): The name of the attribute. - value: The value to set for the attribute. + Args: + name (str): The name of the attribute. + value: The value to set for the attribute. """ if name == "inner": super().__setattr__(name, value) @@ -455,6 +455,6 @@ def __len__(self): Overrides the default behavior of returning the length of the object. Returns: - int: The length of the inner numpy array. + int: The length of the inner numpy array. """ return len(self.inner) diff --git a/nada_algebra/funcs.py b/nada_algebra/funcs.py index 2d8f0a2..96749b6 100644 --- a/nada_algebra/funcs.py +++ b/nada_algebra/funcs.py @@ -218,7 +218,7 @@ def output(arr: NadaArray, party: Party, prefix: str): return NadaArray.output_array(arr, party, prefix) -def vstack(arr_list: list[NadaArray]) -> NadaArray: +def vstack(arr_list: list) -> NadaArray: """ Stack arrays in sequence vertically (row wise). @@ -231,7 +231,7 @@ def vstack(arr_list: list[NadaArray]) -> NadaArray: return NadaArray(np.vstack(arr_list)) -def hstack(arr_list: list[NadaArray]) -> NadaArray: +def hstack(arr_list: list) -> NadaArray: """ Stack arrays in sequence horizontally (column wise).