diff options
Diffstat (limited to 'src/smp/macro_processor.py')
-rw-r--r-- | src/smp/macro_processor.py | 37 |
1 files changed, 15 insertions, 22 deletions
diff --git a/src/smp/macro_processor.py b/src/smp/macro_processor.py index 0e62494..d2a2f94 100644 --- a/src/smp/macro_processor.py +++ b/src/smp/macro_processor.py @@ -114,7 +114,7 @@ class MacroProcessor: # meaning they will skip steps that are slow. env[f"{self.prefix}draft"] = False env[f"{self.prefix}metadata_prefix"] = "METADATA_" - env[f"{self.prefix}smp_debug"] = "1" + env[f"{self.prefix}smp_debug"] = "4" def define_macro_string(self, macro_name, macro_value): self.define_macro(macro_name, str(macro_value)) @@ -122,25 +122,19 @@ class MacroProcessor: def define_macro(self, macro_name, macro_value): self.macros[macro_name] = macro_value - def _define_macro_with_prefix(self, macro_name, macro_value, sub_prefix: str = ""): - self.macros[f"{self.prefix}{sub_prefix}{macro_name}"] = macro_value + def _define_macro_builtin(self, macro_name, macro_value, sub_prefix: str = ""): + self.define_macro(f"{self.prefix}{sub_prefix}{macro_name}", macro_value) - def _get_macro_with_prefix(self, macro_name, sub_prefix: str = "", default=None): + def _get_macro_builtin(self, macro_name, sub_prefix: str = "", default=None): return self.macros.get(f"{self.prefix}{sub_prefix}{macro_name}", default) def _get_metadata(self, macro_name, default=None): - return self._get_macro_with_prefix( - macro_name, - sub_prefix=self._get_macro_with_prefix("metadata_prefix"), - default=default, - ) + sub_prefix = self._get_macro_builtin("metadata_prefix") + return self.macros.get(f"{sub_prefix}{macro_name}", default) def _define_metadata(self, macro_name, macro_value): - return self._define_macro_with_prefix( - macro_name, - macro_value, - sub_prefix=self._get_macro_with_prefix("metadata_prefix"), - ) + sub_prefix = (self._get_macro_builtin("metadata_prefix"),) + self.define_macro(f"{sub_prefix}{macro_name}", macro_value) def log_warning(self, message): """ @@ -247,7 +241,7 @@ class MacroProcessor: def _debug_on(self, level): try: - if level > int(self._get_macro_with_prefix("smp_debug")): + if level > int(self._get_macro_builtin("smp_debug")): return False except: return False @@ -492,7 +486,7 @@ class MacroProcessor: requested_keys = self._get_metadata("keep_states", []) for key in self.macros.keys(): if ( - key.startswith(self._get_macro_with_prefix("metadata_prefix")) + key.startswith(self._get_macro_builtin("metadata_prefix")) and key not in requested_keys ): requested_keys.append(key) @@ -501,9 +495,8 @@ class MacroProcessor: requested_keys = [str(requested_keys)] needs_recompilation = ( - f"{self._get_macro_with_prefix('metadata_prefix')}keep_states" - in self.macros - ) or ("all_tagged_by" in [x[0] for x in self.macro_invocations]) + f"{self._get_macro_builtin('metadata_prefix')}keep_states" in self.macros + ) or (f"{self.prefix}all_tagged_by" in [x[0] for x in self.macro_invocations]) target_filename = self._get_metadata("target_filename") @@ -513,7 +506,7 @@ class MacroProcessor: "stored_data": { k: v for k, v in self.macros.items() if k in requested_keys }, - "extension": self._get_macro_with_prefix("target_file_extension"), + "extension": self._get_macro_builtin("target_file_extension"), "source_path": self.source_file_path, "needs_recompilation": needs_recompilation, "target_filename": target_filename, @@ -529,9 +522,9 @@ class MacroProcessorState: def __init__(self): self.global_state = dict() - def macro_processor(self, macro_processor=None): + def macro_processor(self, macro_processor=None, prefix=""): if macro_processor is None: - macro_processor = MacroProcessor() + macro_processor = MacroProcessor(prefix) macro_processor.py_global_env["macro_processor_state"] = self.global_state return macro_processor |