Commit 367fa039 authored by Jan-Timo Hesse's avatar Jan-Timo Hesse
Browse files

added install_frontmatter_requirements

parent 71d88fe3
from importlib import util from importlib import util
import os import os
import re import re
import sys
import subprocess
from config import TOOLS_DIR, FUNCTIONS_DIR from config import TOOLS_DIR, FUNCTIONS_DIR
...@@ -52,6 +54,7 @@ def load_toolkit_module_by_id(toolkit_id): ...@@ -52,6 +54,7 @@ def load_toolkit_module_by_id(toolkit_id):
frontmatter = extract_frontmatter(toolkit_path) frontmatter = extract_frontmatter(toolkit_path)
try: try:
install_frontmatter_requirements(frontmatter.get("requirements", ""))
spec.loader.exec_module(module) spec.loader.exec_module(module)
print(f"Loaded module: {module.__name__}") print(f"Loaded module: {module.__name__}")
if hasattr(module, "Tools"): if hasattr(module, "Tools"):
...@@ -73,6 +76,7 @@ def load_function_module_by_id(function_id): ...@@ -73,6 +76,7 @@ def load_function_module_by_id(function_id):
frontmatter = extract_frontmatter(function_path) frontmatter = extract_frontmatter(function_path)
try: try:
install_frontmatter_requirements(frontmatter.get("requirements", ""))
spec.loader.exec_module(module) spec.loader.exec_module(module)
print(f"Loaded module: {module.__name__}") print(f"Loaded module: {module.__name__}")
if hasattr(module, "Pipe"): if hasattr(module, "Pipe"):
...@@ -88,3 +92,12 @@ def load_function_module_by_id(function_id): ...@@ -88,3 +92,12 @@ def load_function_module_by_id(function_id):
# Move the file to the error folder # Move the file to the error folder
os.rename(function_path, f"{function_path}.error") os.rename(function_path, f"{function_path}.error")
raise e raise e
def install_frontmatter_requirements(requirements):
if requirements:
req_list = [req.strip() for req in requirements.split(',')]
for req in req_list:
print(f"Installing requirement: {req}")
subprocess.check_call([sys.executable, "-m", "pip", "install", req])
else:
print("No requirements found in frontmatter.")
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment