aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/skaldpress/macros.py10
-rw-r--r--src/smp/macro_processor.py14
2 files changed, 11 insertions, 13 deletions
diff --git a/src/skaldpress/macros.py b/src/skaldpress/macros.py
index c341695..885f803 100644
--- a/src/skaldpress/macros.py
+++ b/src/skaldpress/macros.py
@@ -15,7 +15,7 @@ def sp_all_tagged_by(
"""
tagged_files = [
k
- for k, v in macro_processor.py_global_env["macro_processor_state"].items()
+ for k, v in macro_processor._get_macro_builtin("macro_processor_state").items()
if f"{macro_processor._get_macro_builtin('metadata_prefix')}tags"
in v["stored_data"]
and (
@@ -32,9 +32,9 @@ def sp_all_tagged_by(
if field is not None:
tagged_files.sort(
- key=lambda fname: macro_processor.py_global_env["macro_processor_state"][
- fname
- ]["stored_data"][
+ key=lambda fname: macro_processor._get_macro_builtin(
+ "macro_processor_state"
+ )[fname]["stored_data"][
f"{macro_processor._get_macro_builtin('metadata_prefix')}{field}"
],
reverse=(reversed != ""),
@@ -42,7 +42,7 @@ def sp_all_tagged_by(
out = ""
for filename in tagged_files:
- file = macro_processor.py_global_env["macro_processor_state"][filename]
+ file = macro_processor._get_macro_builtin("macro_processor_state")[filename]
smp_local = deepcopy(macro_processor)
from smp.builtins import smp_builtin_undefine
diff --git a/src/smp/macro_processor.py b/src/smp/macro_processor.py
index a595c36..f34f4f9 100644
--- a/src/smp/macro_processor.py
+++ b/src/smp/macro_processor.py
@@ -65,10 +65,7 @@ class MacroProcessor:
macros: dict[str, Any]
""" Macros which are @directives """
special_macros: dict[str, tuple[Any, Any]]
- """ Global environment for python execution """
- py_global_env: dict
""" Local environment for python execution """
- py_local_env_alt: dict
py_local_env_current: dict
""" All macro invocations that has happened """
macro_invocations: list[tuple[str, list[str]]]
@@ -86,7 +83,6 @@ class MacroProcessor:
self.macros = dict()
self.macro_invocations = list()
self.warnings = list()
- self.py_global_env = dict()
self.py_local_env_alt = dict()
self.py_local_env_current = self.macros
self.prefix = prefix
@@ -510,7 +506,7 @@ class MacroProcessor:
with redirect_stdout(f):
exec(
"".join(py_expr),
- self.py_global_env,
+ self.py_local_env_current,
self.py_local_env_current,
)
s = f.getvalue()
@@ -558,7 +554,7 @@ class MacroProcessor:
target_filename = self._get_metadata("target_filename")
- self.py_global_env["macro_processor_state"][self.source_file_path] = dict(
+ self._get_macro_builtin("macro_processor_state")[self.source_file_path] = dict(
{
# "content": "",
"stored_data": {
@@ -571,7 +567,7 @@ class MacroProcessor:
**xargs,
}
)
- return self.py_global_env["macro_processor_state"][self.source_file_path]
+ return self._get_macro_builtin("macro_processor_state")[self.source_file_path]
class MacroProcessorState:
@@ -584,7 +580,9 @@ class MacroProcessorState:
if macro_processor is None:
macro_processor = MacroProcessor(prefix)
- macro_processor.py_global_env["macro_processor_state"] = self.global_state
+ macro_processor._define_macro_builtin(
+ "macro_processor_state", self.global_state
+ )
return macro_processor
def print_state(self):