(
function: Callable[..., object],
*,
args: Sequence[object],
kwargs: Mapping[str, object] | None,
)
| 790 | |
| 791 | |
| 792 | def _serialize_python_callable( |
| 793 | function: Callable[..., object], |
| 794 | *, |
| 795 | args: Sequence[object], |
| 796 | kwargs: Mapping[str, object] | None, |
| 797 | ) -> str: |
| 798 | try: |
| 799 | import cloudpickle |
| 800 | except ImportError as exc: # pragma: no cover - import error path |
| 801 | raise SandboxError("cloudpickle is required for exec_python") from exc |
| 802 | |
| 803 | payload = cloudpickle.dumps((function, tuple(args), dict(kwargs or {}))) |
| 804 | return base64.b64encode(payload).decode("ascii") |
| 805 | |
| 806 | |
| 807 | def _sandbox_ref(sandbox: openshell_pb2.Sandbox) -> SandboxRef: |
no test coverage detected