Skip to content

Commit 05ba82d

Browse files
committed
Fixed code generation: it does not have a dependency on the package code anymore
1 parent 42c0870 commit 05ba82d

3 files changed

Lines changed: 271 additions & 270 deletions

File tree

code_generation/mini_lambda_methods_generation.py

Lines changed: 33 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@
1313
from autoclass import autoclass
1414
from 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 **

code_generation/mini_lambda_template.mako

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
# ----
22
# This file is generated by mini_lambda_methods_generation.py - do not modify it !
33
# ----
4-
from mini_lambda.base import StackableFunctionEvaluator, evaluate, get_repr, PRECEDENCE_SUBSCRIPTION_SLICING_CALL_ATTRREF
4+
from mini_lambda.base import StackableFunctionEvaluator, evaluate, get_repr
5+
from mini_lambda.base import PRECEDENCE_ADD_SUB, PRECEDENCE_MUL_DIV_ETC, PRECEDENCE_COMPARISON, \
6+
PRECEDENCE_EXPONENTIATION, PRECEDENCE_SHIFTS, PRECEDENCE_POS_NEG_BITWISE_NOT, \
7+
PRECEDENCE_SUBSCRIPTION_SLICING_CALL_ATTRREF
58
from sys import getsizeof
69

710

0 commit comments

Comments
 (0)