From 8dbbe6e26ae18c860d1a5be9ba27ab2ac9683e3c Mon Sep 17 00:00:00 2001 From: mmatera Date: Mon, 7 Nov 2022 10:42:08 -0300 Subject: [PATCH] improving clarity in Builtin.contribute --- mathics/builtin/base.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/mathics/builtin/base.py b/mathics/builtin/base.py index 57a8473eb..b6faf3aac 100644 --- a/mathics/builtin/base.py +++ b/mathics/builtin/base.py @@ -283,15 +283,16 @@ def check_options(options_to_check, evaluation): rules.append( BuiltinRule(name, pattern, function, check_options, system=True) ) - for pattern, replace in self.rules.items(): - if not isinstance(pattern, BaseElement): - pattern = pattern % {"name": name} - pattern = parse_builtin_rule(pattern, definition_class) - replace = replace % {"name": name} - # FIXME: Should system=True be system=not is_pymodule ? - rules.append(Rule(pattern, parse_builtin_rule(replace), system=True)) + for pattern_str, replace_str in self.rules.items(): + pattern_str = pattern_str % {"name": name} + pattern = parse_builtin_rule(pattern_str, definition_class) + replace_str = replace_str % {"name": name} + rules.append( + Rule(pattern, parse_builtin_rule(replace_str), system=not is_pymodule) + ) box_rules = [] + # FIXME: Why a special case for System`MakeBoxes? Remove this if name != "System`MakeBoxes": new_rules = [] for rule in rules: