fix loading filters.py using importlib

Regression from: ceab382e02
Ref: https://docs.python.org/3/library/importlib.html#importing-a-source-file-directly

Fixes https://github.com/saimn/sigal/issues/451
This commit is contained in:
Viktor Szakats
2022-01-07 18:11:01 +00:00
parent 22c025e2b0
commit 7aee5537fb

View File

@@ -93,7 +93,10 @@ class AbstractWriter:
# handle optional filters.py
filters_py = os.path.join(self.theme, "filters.py")
if os.path.exists(filters_py):
mod = importlib.import_module(filters_py)
module_spec = importlib.util.spec_from_file_location('filters', filters_py)
mod = importlib.util.module_from_spec(module_spec)
sys.modules['filters'] = mod
module_spec.loader.exec_module(mod)
for name in dir(mod):
if isinstance(getattr(mod, name), types.FunctionType):
env.filters[name] = getattr(mod, name)