|
|
|
@@ -2,6 +2,8 @@ import json |
|
|
|
import re |
|
|
|
from abc import ABC, abstractmethod |
|
|
|
from base64 import b64encode |
|
|
|
from collections.abc import Mapping |
|
|
|
from typing import Any |
|
|
|
|
|
|
|
|
|
|
|
class TemplateTransformer(ABC): |
|
|
|
@@ -10,7 +12,7 @@ class TemplateTransformer(ABC): |
|
|
|
_result_tag: str = "<<RESULT>>" |
|
|
|
|
|
|
|
@classmethod |
|
|
|
def transform_caller(cls, code: str, inputs: dict) -> tuple[str, str]: |
|
|
|
def transform_caller(cls, code: str, inputs: Mapping[str, Any]) -> tuple[str, str]: |
|
|
|
""" |
|
|
|
Transform code to python runner |
|
|
|
:param code: code |
|
|
|
@@ -48,13 +50,13 @@ class TemplateTransformer(ABC): |
|
|
|
pass |
|
|
|
|
|
|
|
@classmethod |
|
|
|
def serialize_inputs(cls, inputs: dict) -> str: |
|
|
|
def serialize_inputs(cls, inputs: Mapping[str, Any]) -> str: |
|
|
|
inputs_json_str = json.dumps(inputs, ensure_ascii=False).encode() |
|
|
|
input_base64_encoded = b64encode(inputs_json_str).decode("utf-8") |
|
|
|
return input_base64_encoded |
|
|
|
|
|
|
|
@classmethod |
|
|
|
def assemble_runner_script(cls, code: str, inputs: dict) -> str: |
|
|
|
def assemble_runner_script(cls, code: str, inputs: Mapping[str, Any]) -> str: |
|
|
|
# assemble runner script |
|
|
|
script = cls.get_runner_script() |
|
|
|
script = script.replace(cls._code_placeholder, code) |