@@ -85,7 +85,6 @@ class TableFun(BaseFun):
8585 def minmax (self , input : Issue ) -> tuple [float , float ]:
8686 return self ._minmax (input )
8787
88- @lru_cache
8988 def _minmax (self , input : Issue ) -> tuple [float , float ]:
9089 return nonmonotonic_minmax (input , self )
9190
@@ -111,13 +110,11 @@ def xml(self, indx: int, issue: Issue, bias=0.0) -> str:
111110 if issue .is_float ()
112111 else "discrete"
113112 )
114- output = f'<issue index="{ indx + 1 } " etype="{ dtype } " type="{ dtype } " vtype="{ vtype } " name="{ issue_name } ">\n '
113+ output = f'<issue index="{ indx + 1 } " etype="{ dtype } " type="{ dtype } " vtype="{ vtype } " name="{ issue_name } ">\n '
115114 vals = issue .all
116115 for i , issue_value in enumerate (vals ):
117116 uu = self (issue_value ) + bias
118- output += (
119- f' <item index="{ i + 1 } " value="{ issue_value } " evaluation="{ uu } " />\n '
120- )
117+ output += f' <item index="{ i + 1 } " value="{ issue_value } " evaluation="{ uu } " />\n '
121118 output += "</issue>\n "
122119 return output
123120
@@ -147,7 +144,7 @@ def xml(self, indx: int, issue: Issue, bias=0.0) -> str:
147144 issue_name = issue .name
148145 if issue .is_continuous ():
149146 output = f'<issue index="{ indx + 1 } " etype="real" type="real" vtype="real" name="{ issue_name } ">\n '
150- output += f' <evaluator ftype="linear" parameter0="{ bias + self .bias } " parameter1="{ self .slope } "></evaluator>\n '
147+ output += f' <evaluator ftype="linear" parameter0="{ bias + self .bias } " parameter1="{ self .slope } "></evaluator>\n '
151148 # elif isinstance(issue, ContiguousIssue) and issue.cardinality > 50_000:
152149 # output = f'<issue index="{indx + 1}" etype="real" type="integer" vtype="integer" name="{issue_name}">\n'
153150 # output += f' <evaluator ftype="linear" parameter0="{bias+self.bias}" parameter1="{self.slope}"></evaluator>\n'
@@ -329,10 +326,10 @@ def xml(self, indx: int, issue: Issue, bias) -> str:
329326 issue_name = issue .name
330327 if issue .is_continuous ():
331328 output = f'<issue index="{ indx + 1 } " etype="real" type="real" vtype="real" name="{ issue_name } ">\n '
332- output += f' <evaluator ftype="quadratic" parameter0="{ bias + self .bias } " parameter1="{ self .a1 } parameter2={ self .a2 } "></evaluator>\n '
329+ output += f' <evaluator ftype="quadratic" parameter0="{ bias + self .bias } " parameter1="{ self .a1 } parameter2={ self .a2 } "></evaluator>\n '
333330 elif isinstance (issue , ContiguousIssue ):
334331 output = f'<issue index="{ indx + 1 } " etype="integer" type="integer" vtype="integer" name="{ issue_name } ">\n '
335- output += f' <evaluator ftype="quadratic" parameter0="{ bias + self .bias } " parameter1="{ self .a1 } parameter2={ self .a2 } "></evaluator>\n '
332+ output += f' <evaluator ftype="quadratic" parameter0="{ bias + self .bias } " parameter1="{ self .a1 } parameter2={ self .a2 } "></evaluator>\n '
336333 else :
337334 vals = list (issue .all )
338335 return TableFun (dict (zip (vals , [self (_ ) for _ in vals ]))).xml (
@@ -372,14 +369,18 @@ def xml(self, indx: int, issue: Issue, bias) -> str:
372369 issue_name = issue .name
373370 if issue .is_continuous ():
374371 output = f'<issue index="{ indx + 1 } " etype="real" type="real" vtype="real" name="{ issue_name } ">\n '
375- output += f' <evaluator ftype="poynomial" parameter0="{ bias + self .bias } "'
372+ output += (
373+ f' <evaluator ftype="poynomial" parameter0="{ bias + self .bias } "'
374+ )
376375 for i , x in enumerate (self .coefficients ):
377376 output += f'parameter{ i } ="{ x } "'
378377
379378 output += "></evaluator>\n "
380379 elif isinstance (issue , ContiguousIssue ):
381380 output = f'<issue index="{ indx + 1 } " etype="integer" type="integer" vtype="integer" name="{ issue_name } ">\n '
382- output += f' <evaluator ftype="poynomial" parameter0="{ bias + self .bias } "'
381+ output += (
382+ f' <evaluator ftype="poynomial" parameter0="{ bias + self .bias } "'
383+ )
383384 for i , x in enumerate (self .coefficients ):
384385 output += f'parameter{ i } ="{ x } "'
385386
@@ -478,10 +479,10 @@ def xml(self, indx: int, issue: Issue, bias) -> str:
478479 issue_name = issue .name
479480 if issue .is_continuous ():
480481 output = f'<issue index="{ indx + 1 } " etype="real" type="real" vtype="real" name="{ issue_name } ">\n '
481- output += f' <evaluator ftype="exponential" parameter0="{ bias + self .bias } " parameter1="{ self .tau } parameter2={ self .base } "></evaluator>\n '
482+ output += f' <evaluator ftype="exponential" parameter0="{ bias + self .bias } " parameter1="{ self .tau } parameter2={ self .base } "></evaluator>\n '
482483 elif isinstance (issue , ContiguousIssue ):
483484 output = f'<issue index="{ indx + 1 } " etype="integer" type="integer" vtype="integer" name="{ issue_name } ">\n '
484- output += f' <evaluator ftype="exponential" parameter0="{ bias + self .bias } " parameter1="{ self .tau } parameter2={ self .base } "></evaluator>\n '
485+ output += f' <evaluator ftype="exponential" parameter0="{ bias + self .bias } " parameter1="{ self .tau } parameter2={ self .base } "></evaluator>\n '
485486 else :
486487 vals = list (issue .all )
487488 return TableFun (dict (zip (vals , [self (_ ) for _ in vals ]))).xml (
@@ -530,10 +531,10 @@ def xml(self, indx: int, issue: Issue, bias) -> str:
530531 issue_name = issue .name
531532 if issue .is_continuous ():
532533 output = f'<issue index="{ indx + 1 } " etype="real" type="real" vtype="real" name="{ issue_name } ">\n '
533- output += f' <evaluator ftype="cos" parameter0="{ bias + self .bias } " parameter1="{ self .amplitude } parameter2={ self .multiplier } parameter3={ self .phase } "></evaluator>\n '
534+ output += f' <evaluator ftype="cos" parameter0="{ bias + self .bias } " parameter1="{ self .amplitude } parameter2={ self .multiplier } parameter3={ self .phase } "></evaluator>\n '
534535 elif isinstance (issue , ContiguousIssue ):
535536 output = f'<issue index="{ indx + 1 } " etype="integer" type="integer" vtype="integer" name="{ issue_name } ">\n '
536- output += f' <evaluator ftype="cos" parameter0="{ bias + self .bias } " parameter1="{ self .amplitude } parameter2={ self .multiplier } parameter3={ self .phase } "></evaluator>\n '
537+ output += f' <evaluator ftype="cos" parameter0="{ bias + self .bias } " parameter1="{ self .amplitude } parameter2={ self .multiplier } parameter3={ self .phase } "></evaluator>\n '
537538 else :
538539 vals = list (issue .all )
539540 return TableFun (dict (zip (vals , [self (_ ) for _ in vals ]))).xml (
@@ -582,10 +583,10 @@ def xml(self, indx: int, issue: Issue, bias) -> str:
582583 issue_name = issue .name
583584 if issue .is_continuous ():
584585 output = f'<issue index="{ indx + 1 } " etype="real" type="real" vtype="real" name="{ issue_name } ">\n '
585- output += f' <evaluator ftype="sin" parameter0="{ bias + self .bias } " parameter1="{ self .amplitude } parameter2={ self .multiplier } parameter3={ self .phase } "></evaluator>\n '
586+ output += f' <evaluator ftype="sin" parameter0="{ bias + self .bias } " parameter1="{ self .amplitude } parameter2={ self .multiplier } parameter3={ self .phase } "></evaluator>\n '
586587 elif isinstance (issue , ContiguousIssue ):
587588 output = f'<issue index="{ indx + 1 } " etype="integer" type="integer" vtype="integer" name="{ issue_name } ">\n '
588- output += f' <evaluator ftype="sin" parameter0="{ bias + self .bias } " parameter1="{ self .amplitude } parameter2={ self .multiplier } parameter3={ self .phase } "></evaluator>\n '
589+ output += f' <evaluator ftype="sin" parameter0="{ bias + self .bias } " parameter1="{ self .amplitude } parameter2={ self .multiplier } parameter3={ self .phase } "></evaluator>\n '
589590 else :
590591 vals = list (issue .all )
591592 return TableFun (dict (zip (vals , [self (_ ) for _ in vals ]))).xml (
@@ -629,10 +630,10 @@ def xml(self, indx: int, issue: Issue, bias) -> str:
629630 issue_name = issue .name
630631 if issue .is_continuous ():
631632 output = f'<issue index="{ indx + 1 } " etype="real" type="real" vtype="real" name="{ issue_name } ">\n '
632- output += f' <evaluator ftype="log" parameter0="{ bias + self .bias } " parameter1="{ self .tau } parameter2={ self .base } paramter3={ self .scale } "></evaluator>\n '
633+ output += f' <evaluator ftype="log" parameter0="{ bias + self .bias } " parameter1="{ self .tau } parameter2={ self .base } paramter3={ self .scale } "></evaluator>\n '
633634 elif isinstance (issue , ContiguousIssue ):
634635 output = f'<issue index="{ indx + 1 } " etype="integer" type="integer" vtype="integer" name="{ issue_name } ">\n '
635- output += f' <evaluator ftype="log" parameter0="{ bias + self .bias } " parameter1="{ self .tau } parameter2={ self .base } parameter3={ self .scale } "></evaluator>\n '
636+ output += f' <evaluator ftype="log" parameter0="{ bias + self .bias } " parameter1="{ self .tau } parameter2={ self .base } parameter3={ self .scale } "></evaluator>\n '
636637 else :
637638 vals = list (issue .all )
638639 return TableFun (dict (zip (vals , [self (_ ) for _ in vals ]))).xml (
@@ -807,4 +808,4 @@ def make_fun_from_xml(item) -> tuple[BaseFun, str]:
807808 return TriangularFun (start = strt , end = end , middle = middle ), "triangular"
808809 else :
809810 # todo: implement all other functions defined in value_fun.py
810- raise ValueError (f' Unknown ftype { item .attrib [" ftype" ] } ' )
811+ raise ValueError (f" Unknown ftype { item .attrib [' ftype' ] } " )
0 commit comments