1313from autoclass import autoclass
1414from enforce import runtime_validation
1515
16- from mini_lambda .base import PRECEDENCE_ADD_SUB , PRECEDENCE_MUL_DIV_ETC , PRECEDENCE_COMPARISON , \
17- PRECEDENCE_EXPONENTIATION , PRECEDENCE_SHIFTS , PRECEDENCE_POS_NEG_BITWISE_NOT
18-
1916
2017@runtime_validation
2118@autoclass
@@ -25,7 +22,7 @@ def __init__(self, method_name: str,
2522 unbound_method : Optional [Any ] = None ,
2623 pair_operator : Optional [str ] = None , is_operator_left : bool = True ,
2724 uni_operator : Optional [str ] = None ,
28- precedence_level : Optional [int ] = None
25+ precedence_level : Optional [str ] = None
2926 ):
3027 """
3128 A descriptor for a method to override in _InputEvaluatorGenerated.
@@ -41,8 +38,8 @@ def __init__(self, method_name: str,
4138 :param pair_operator: for pairwise operators e.g. a * b
4239 :param is_operator_left:
4340 :param uni_operator: for self-operator e.g. -x
44- :param precedence_level: the precedence level of the operation. High numbers have higher priority than lower.
45- See https://docs.python.org/3/reference/expressions.html#operator-precedence
41+ :param precedence_level: the precedence level of the operation. This is the string representation of the
42+ constant in mini_lambda base.py
4643 """
4744 pass
4845
@@ -186,12 +183,12 @@ def define_what_needs_to_be_written() -> Tuple[Set[Override], Set[OverExc]]:
186183 # ** Comparable Objects **
187184 # .__lt__, .__le__, .__eq__, .__ne__, .__gt__, .__ge__
188185 # to_override.update(__get_all_magic_methods(Set))
189- to_override .update ({Override ('__lt__' , pair_operator = '<' , precedence_level = PRECEDENCE_COMPARISON ),
190- Override ('__le__' , pair_operator = '<=' , precedence_level = PRECEDENCE_COMPARISON ),
191- Override ('__eq__' , pair_operator = '==' , precedence_level = PRECEDENCE_COMPARISON ),
192- Override ('__ne__' , pair_operator = '!=' , precedence_level = PRECEDENCE_COMPARISON ),
193- Override ('__gt__' , pair_operator = '>' , precedence_level = PRECEDENCE_COMPARISON ),
194- Override ('__ge__' , pair_operator = '>=' , precedence_level = PRECEDENCE_COMPARISON )})
186+ to_override .update ({Override ('__lt__' , pair_operator = '<' , precedence_level = ' PRECEDENCE_COMPARISON' ),
187+ Override ('__le__' , pair_operator = '<=' , precedence_level = ' PRECEDENCE_COMPARISON' ),
188+ Override ('__eq__' , pair_operator = '==' , precedence_level = ' PRECEDENCE_COMPARISON' ),
189+ Override ('__ne__' , pair_operator = '!=' , precedence_level = ' PRECEDENCE_COMPARISON' ),
190+ Override ('__gt__' , pair_operator = '>' , precedence_level = ' PRECEDENCE_COMPARISON' ),
191+ Override ('__ge__' , pair_operator = '>=' , precedence_level = ' PRECEDENCE_COMPARISON' )})
195192
196193 # ** Hashable Object **
197194 # .__hash__
@@ -258,34 +255,34 @@ def define_what_needs_to_be_written() -> Tuple[Set[Override], Set[OverExc]]:
258255 # .__lshift__, .__rshift__, __rlshift__, __rrshift__
259256 # .__neg__, .__pos__, .__abs__, .__invert__
260257 # to_override.update(__get_all_magic_methods(Integral))
261- to_override .update ({Override ('__add__' , pair_operator = '+' , precedence_level = PRECEDENCE_ADD_SUB ),
262- Override ('__radd__' , pair_operator = '+' , is_operator_left = False , precedence_level = PRECEDENCE_ADD_SUB ),
263- Override ('__sub__' , pair_operator = '-' , precedence_level = PRECEDENCE_ADD_SUB ),
264- Override ('__rsub__' , pair_operator = '-' , is_operator_left = False , precedence_level = PRECEDENCE_ADD_SUB ),
265- Override ('__mul__' , pair_operator = '*' , precedence_level = PRECEDENCE_MUL_DIV_ETC ),
266- Override ('__rmul__' , pair_operator = '*' , is_operator_left = False , precedence_level = PRECEDENCE_MUL_DIV_ETC ),
267- Override ('__truediv__' , pair_operator = '/' , precedence_level = PRECEDENCE_MUL_DIV_ETC ),
268- Override ('__rtruediv__' , pair_operator = '/' , is_operator_left = False , precedence_level = PRECEDENCE_MUL_DIV_ETC ),
269- Override ('__mod__' , pair_operator = '%' , precedence_level = PRECEDENCE_MUL_DIV_ETC ),
270- Override ('__rmod__' , pair_operator = '%' , is_operator_left = False , precedence_level = PRECEDENCE_MUL_DIV_ETC ),
258+ to_override .update ({Override ('__add__' , pair_operator = '+' , precedence_level = ' PRECEDENCE_ADD_SUB' ),
259+ Override ('__radd__' , pair_operator = '+' , is_operator_left = False , precedence_level = ' PRECEDENCE_ADD_SUB' ),
260+ Override ('__sub__' , pair_operator = '-' , precedence_level = ' PRECEDENCE_ADD_SUB' ),
261+ Override ('__rsub__' , pair_operator = '-' , is_operator_left = False , precedence_level = ' PRECEDENCE_ADD_SUB' ),
262+ Override ('__mul__' , pair_operator = '*' , precedence_level = ' PRECEDENCE_MUL_DIV_ETC' ),
263+ Override ('__rmul__' , pair_operator = '*' , is_operator_left = False , precedence_level = ' PRECEDENCE_MUL_DIV_ETC' ),
264+ Override ('__truediv__' , pair_operator = '/' , precedence_level = ' PRECEDENCE_MUL_DIV_ETC' ),
265+ Override ('__rtruediv__' , pair_operator = '/' , is_operator_left = False , precedence_level = ' PRECEDENCE_MUL_DIV_ETC' ),
266+ Override ('__mod__' , pair_operator = '%' , precedence_level = ' PRECEDENCE_MUL_DIV_ETC' ),
267+ Override ('__rmod__' , pair_operator = '%' , is_operator_left = False , precedence_level = ' PRECEDENCE_MUL_DIV_ETC' ),
271268 Override ('__divmod__' ),
272269 Override ('__rdivmod__' ),
273- Override ('__pow__' , pair_operator = '**' , precedence_level = PRECEDENCE_EXPONENTIATION ),
274- Override ('__rpow__' , pair_operator = '**' , is_operator_left = False , precedence_level = PRECEDENCE_EXPONENTIATION ),
275- Override ('__matmul__' , pair_operator = '@' , precedence_level = PRECEDENCE_MUL_DIV_ETC ),
270+ Override ('__pow__' , pair_operator = '**' , precedence_level = ' PRECEDENCE_EXPONENTIATION' ),
271+ Override ('__rpow__' , pair_operator = '**' , is_operator_left = False , precedence_level = ' PRECEDENCE_EXPONENTIATION' ),
272+ Override ('__matmul__' , pair_operator = '@' , precedence_level = ' PRECEDENCE_MUL_DIV_ETC' ),
276273 # Override('__rmatmul__', operator='@', is_operator_left=False),
277- Override ('__floordiv__' , pair_operator = '//' , precedence_level = PRECEDENCE_MUL_DIV_ETC ),
278- Override ('__rfloordiv__' , pair_operator = '//' , is_operator_left = False , precedence_level = PRECEDENCE_MUL_DIV_ETC ),
279- Override ('__lshift__' , pair_operator = '<<' , precedence_level = PRECEDENCE_SHIFTS ),
280- Override ('__rlshift__' , pair_operator = '<<' , is_operator_left = False , precedence_level = PRECEDENCE_SHIFTS ),
281- Override ('__rshift__' , pair_operator = '>>' , precedence_level = PRECEDENCE_SHIFTS ),
282- Override ('__rrshift__' , pair_operator = '>>' , is_operator_left = False , precedence_level = PRECEDENCE_SHIFTS ),
283- Override ('__rshift__' , pair_operator = '>>' , precedence_level = PRECEDENCE_SHIFTS ),
284- Override ('__rshift__' , pair_operator = '>>' , precedence_level = PRECEDENCE_SHIFTS ),
285- Override ('__neg__' , uni_operator = '-' , precedence_level = PRECEDENCE_POS_NEG_BITWISE_NOT ),
286- Override ('__pos__' , uni_operator = '+' , precedence_level = PRECEDENCE_POS_NEG_BITWISE_NOT ),
274+ Override ('__floordiv__' , pair_operator = '//' , precedence_level = ' PRECEDENCE_MUL_DIV_ETC' ),
275+ Override ('__rfloordiv__' , pair_operator = '//' , is_operator_left = False , precedence_level = ' PRECEDENCE_MUL_DIV_ETC' ),
276+ Override ('__lshift__' , pair_operator = '<<' , precedence_level = ' PRECEDENCE_SHIFTS' ),
277+ Override ('__rlshift__' , pair_operator = '<<' , is_operator_left = False , precedence_level = ' PRECEDENCE_SHIFTS' ),
278+ Override ('__rshift__' , pair_operator = '>>' , precedence_level = ' PRECEDENCE_SHIFTS' ),
279+ Override ('__rrshift__' , pair_operator = '>>' , is_operator_left = False , precedence_level = ' PRECEDENCE_SHIFTS' ),
280+ Override ('__rshift__' , pair_operator = '>>' , precedence_level = ' PRECEDENCE_SHIFTS' ),
281+ Override ('__rshift__' , pair_operator = '>>' , precedence_level = ' PRECEDENCE_SHIFTS' ),
282+ Override ('__neg__' , uni_operator = '-' , precedence_level = ' PRECEDENCE_POS_NEG_BITWISE_NOT' ),
283+ Override ('__pos__' , uni_operator = '+' , precedence_level = ' PRECEDENCE_POS_NEG_BITWISE_NOT' ),
287284 Override ('__abs__' , unbound_method = abs ),
288- Override ('__invert__' , uni_operator = '~' , precedence_level = PRECEDENCE_POS_NEG_BITWISE_NOT ),
285+ Override ('__invert__' , uni_operator = '~' , precedence_level = ' PRECEDENCE_POS_NEG_BITWISE_NOT' ),
289286 })
290287
291288 # ** Boolean types **
0 commit comments