Skip to content

Commit

Permalink
OOP aggregations funcitons,
Browse files Browse the repository at this point in the history
Combining two aggregation functions
  • Loading branch information
wgalka committed Aug 9, 2023
1 parent c936fd0 commit d061e19
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions aggregationslib/aggregations.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import math

import numpy as np
import re


class A_ar:
Expand Down Expand Up @@ -355,3 +356,27 @@ def __call__(self, array):
if np.ndim(array) != 1:
raise ValueError("y must be 1 dimensional array")
return self.__p * self.__agg1(array) + (1 - self.__p) * self.__agg2(array)

def __str__(self):
pattern = r'A_(.*?)\('
params_pattern = r'((.*?)\)'

agg1 = re.search(pattern, self.__agg1.__str__).group(1)
agg1_param = re.search(params_pattern, self.__agg1.__str__).group(1)

agg2 = re.search(pattern, self.__agg2.__str__).group(1)
agg2_param = re.search(params_pattern, self.__agg2.__str__).group(1)

return f"A_{agg1}{agg2}({agg1_param}, {agg2_param})"

def __repr__(self):
pattern = r'A_(.*?)\('
params_pattern = r'((.*?)\)'

agg1 = re.search(pattern, self.__agg1.__repr__).group(1)
agg1_param = re.search(params_pattern, self.__agg1.__repr__).group(1)

agg2 = re.search(pattern, self.__agg2.__repr__).group(1)
agg2_param = re.search(params_pattern, self.__agg2.__repr__).group(1)

return f"A_{agg1}{agg2}({agg1_param}, {agg2_param})"

0 comments on commit d061e19

Please sign in to comment.