aboutsummaryrefslogtreecommitdiff
path: root/src/smp/macro_processor.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/smp/macro_processor.py')
-rw-r--r--src/smp/macro_processor.py37
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