Skip to content

Commit 661e5f0

Browse files
committed
Code generation has now always the same output (deterministic order of generated methods)
1 parent b45e3c5 commit 661e5f0

File tree

1 file changed

+49
-50
lines changed

1 file changed

+49
-50
lines changed

code_generation/mini_lambda_methods_generation.py

Lines changed: 49 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -174,21 +174,21 @@ def define_what_needs_to_be_written() -> Tuple[Set[Override], Set[OverExc]]:
174174
# ** Representable Object **
175175
# .__repr__, .__str__, .__bytes__, .__format__,
176176
# __sizeof__
177-
to_override_with_exception.update({OverExc('__str__', unbound_method=str),
178-
OverExc('__repr__', unbound_method=repr),
179-
OverExc('__bytes__', unbound_method=bytes),
180-
OverExc('__format__', unbound_method=format),
181-
OverExc('__sizeof__', unbound_method=getsizeof)})
177+
to_override_with_exception.add(OverExc('__str__', unbound_method=str))
178+
to_override_with_exception.add(OverExc('__repr__', unbound_method=repr))
179+
to_override_with_exception.add(OverExc('__bytes__', unbound_method=bytes))
180+
to_override_with_exception.add(OverExc('__format__', unbound_method=format))
181+
to_override_with_exception.add(OverExc('__sizeof__', unbound_method=getsizeof))
182182

183183
# ** Comparable Objects **
184184
# .__lt__, .__le__, .__eq__, .__ne__, .__gt__, .__ge__
185185
# to_override.update(__get_all_magic_methods(Set))
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')})
186+
to_override.add(Override('__lt__', pair_operator='<', precedence_level='PRECEDENCE_COMPARISON'))
187+
to_override.add(Override('__le__', pair_operator='<=', precedence_level='PRECEDENCE_COMPARISON'))
188+
to_override.add(Override('__eq__', pair_operator='==', precedence_level='PRECEDENCE_COMPARISON'))
189+
to_override.add(Override('__ne__', pair_operator='!=', precedence_level='PRECEDENCE_COMPARISON'))
190+
to_override.add(Override('__gt__', pair_operator='>', precedence_level='PRECEDENCE_COMPARISON'))
191+
to_override.add(Override('__ge__', pair_operator='>=', precedence_level='PRECEDENCE_COMPARISON'))
192192

193193
# ** Hashable Object **
194194
# .__hash__
@@ -244,8 +244,8 @@ def define_what_needs_to_be_written() -> Tuple[Set[Override], Set[OverExc]]:
244244
# ** Subscriptable / Mapping Container **
245245
# .__getitem__, .__missing__, .__setitem__, .__delitem__,
246246
# to_override.update(__get_all_magic_methods(Mapping))
247-
to_override.update({Override('__getitem__'),
248-
Override('__missing__')})
247+
to_override.add(Override('__getitem__'))
248+
to_override.add(Override('__missing__'))
249249
to_skip.update({'__setitem__', '__delitem__'})
250250

251251
# ** Numeric types **
@@ -255,53 +255,52 @@ def define_what_needs_to_be_written() -> Tuple[Set[Override], Set[OverExc]]:
255255
# .__lshift__, .__rshift__, __rlshift__, __rrshift__
256256
# .__neg__, .__pos__, .__abs__, .__invert__
257257
# to_override.update(__get_all_magic_methods(Integral))
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'),
268-
Override('__divmod__'),
269-
Override('__rdivmod__'),
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'),
273-
# Override('__rmatmul__', operator='@', is_operator_left=False),
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'),
284-
Override('__abs__', unbound_method=abs),
285-
Override('__invert__', uni_operator='~', precedence_level='PRECEDENCE_POS_NEG_BITWISE_NOT'),
286-
})
258+
to_override.add(Override('__add__', pair_operator='+', precedence_level='PRECEDENCE_ADD_SUB'))
259+
to_override.add(Override('__radd__', pair_operator='+', is_operator_left=False, precedence_level='PRECEDENCE_ADD_SUB'))
260+
to_override.add(Override('__sub__', pair_operator='-', precedence_level='PRECEDENCE_ADD_SUB'))
261+
to_override.add(Override('__rsub__', pair_operator='-', is_operator_left=False, precedence_level='PRECEDENCE_ADD_SUB'))
262+
to_override.add(Override('__mul__', pair_operator='*', precedence_level='PRECEDENCE_MUL_DIV_ETC'))
263+
to_override.add(Override('__rmul__', pair_operator='*', is_operator_left=False, precedence_level='PRECEDENCE_MUL_DIV_ETC'))
264+
to_override.add(Override('__truediv__', pair_operator='/', precedence_level='PRECEDENCE_MUL_DIV_ETC'))
265+
to_override.add(Override('__rtruediv__', pair_operator='/', is_operator_left=False, precedence_level='PRECEDENCE_MUL_DIV_ETC'))
266+
to_override.add(Override('__mod__', pair_operator='%', precedence_level='PRECEDENCE_MUL_DIV_ETC'))
267+
to_override.add(Override('__rmod__', pair_operator='%', is_operator_left=False, precedence_level='PRECEDENCE_MUL_DIV_ETC'))
268+
to_override.add(Override('__divmod__'))
269+
to_override.add(Override('__rdivmod__'))
270+
to_override.add(Override('__pow__', pair_operator='**', precedence_level='PRECEDENCE_EXPONENTIATION'))
271+
to_override.add(Override('__rpow__', pair_operator='**', is_operator_left=False, precedence_level='PRECEDENCE_EXPONENTIATION'))
272+
to_override.add(Override('__matmul__', pair_operator='@', precedence_level='PRECEDENCE_MUL_DIV_ETC'))
273+
# Override('__rmatmul__', operator='@', is_operator_left=False),
274+
to_override.add(Override('__floordiv__', pair_operator='//', precedence_level='PRECEDENCE_MUL_DIV_ETC'))
275+
to_override.add(Override('__rfloordiv__', pair_operator='//', is_operator_left=False, precedence_level='PRECEDENCE_MUL_DIV_ETC'))
276+
to_override.add(Override('__lshift__', pair_operator='<<', precedence_level='PRECEDENCE_SHIFTS'))
277+
to_override.add(Override('__rlshift__', pair_operator='<<', is_operator_left=False, precedence_level='PRECEDENCE_SHIFTS'))
278+
to_override.add(Override('__rshift__', pair_operator='>>', precedence_level='PRECEDENCE_SHIFTS'))
279+
to_override.add(Override('__rrshift__', pair_operator='>>', is_operator_left=False, precedence_level='PRECEDENCE_SHIFTS'))
280+
to_override.add(Override('__rshift__', pair_operator='>>', precedence_level='PRECEDENCE_SHIFTS'))
281+
to_override.add(Override('__rshift__', pair_operator='>>', precedence_level='PRECEDENCE_SHIFTS'))
282+
to_override.add(Override('__neg__', uni_operator='-', precedence_level='PRECEDENCE_POS_NEG_BITWISE_NOT'))
283+
to_override.add(Override('__pos__', uni_operator='+', precedence_level='PRECEDENCE_POS_NEG_BITWISE_NOT'))
284+
to_override.add(Override('__abs__', unbound_method=abs))
285+
to_override.add(Override('__invert__', uni_operator='~', precedence_level='PRECEDENCE_POS_NEG_BITWISE_NOT'))
287286

288287
# ** Boolean types **
289288
# .__and__, .__xor__, .__or__, __rand__, __rxor__, __ror__
290289
to_skip.update({'__and__', '__xor__', '__or__', '__rand__', '__rxor__', '__ror__'})
291290

292291
# ** Type conversion **
293292
# __int__, __long__, __float__, __complex__, __oct__, __hex__, __index__, __trunc__, __coerce__
294-
to_override.update({Override('__trunc__'),
295-
Override('__coerce__')})
293+
to_override.add(Override('__trunc__'))
294+
to_override.add(Override('__coerce__'))
296295
to_skip.update({'__index__'})
297-
to_override_with_exception.update({OverExc('__int__', unbound_method=int),
296+
to_override_with_exception.add(OverExc('__int__', unbound_method=int))
298297
# OverExc('__long__', unbound_method=long),
299-
OverExc('__float__', unbound_method=float),
300-
OverExc('__complex__', unbound_method=complex),
301-
OverExc('__oct__', unbound_method=oct),
302-
OverExc('__hex__', unbound_method=hex),
298+
to_override_with_exception.add(OverExc('__float__', unbound_method=float))
299+
to_override_with_exception.add(OverExc('__complex__', unbound_method=complex))
300+
to_override_with_exception.add(OverExc('__oct__', unbound_method=oct))
301+
to_override_with_exception.add(OverExc('__hex__', unbound_method=hex))
303302
# ('Index', '__index__', None)
304-
})
303+
305304
# ** Pickle **
306305
# __reduce__, __reduce_ex__
307306
to_skip.update({'__reduce__', '__reduce_ex__'})

0 commit comments

Comments
 (0)