YepCode Run - A powerful serverless runtime and SDK for executing code in secure sandboxes
Project description
What is YepCode Run?
YepCode Run is a powerful serverless runtime that enables secure code execution in isolated sandboxes. With our comprehensive SDK and platform, you can effortlessly build, manage, and monitor your script executions. Get started quickly using our JavaScript SDK or Python SDK.
Powered by YepCode Cloud, our enterprise-grade platform delivers seamless script execution capabilities for AI agents, data processing pipelines, API integrations, and automation workflows. Focus on your code while we handle the infrastructure.
Quick start
1. Installation
pip install yepcode-run
2. Get your YepCode API token
-
Sign up to YepCode Cloud
-
Get your API token from your workspace under:
Settings>API credentials -
Use your API token securely in one of these ways:
# Option 1: Set as environment variable (Recommended) # .env file YEPCODE_API_TOKEN=your_token_here # Option 2: Provide directly to the constructor (Not recommended for production) runner = YepCodeRun(YepCodeApiConfig(api_token='your_token_here'))
3. Execute your code
from yepcode_run import YepCodeRun, YepCodeApiConfig
runner = YepCodeRun(
YepCodeApiConfig(api_token='your-api-token')
)
# Execute code with full options
execution = runner.run(
"""def main():
message = "Hello, YepCode!"
print(message)
return {"message": message}""",
{
"language": "python", # Optional - auto-detected if not specified
"onLog": lambda log: print(f"{log.timestamp} {log.level}: {log.message}"),
"onFinish": lambda return_value: print("Finished:", return_value),
"onError": lambda error: print("Error:", error)
}
)
# Wait for execution to complete
execution.wait_for_done()
# Retrieve an existing execution
existing_execution = runner.get_execution('execution-id')
4. Manage Environment Variables
You may use environment variables in your code with process.env (JavaScript) or os.getenv (Python), and you may manage this environment variables in the YepCode platform (docs here), or using this YepCodeEnv class:
from yepcode_run import YepCodeEnv, YepCodeApiConfig
env = YepCodeEnv(
YepCodeApiConfig(api_token='your-api-token')
)
# Set environment variables
env.set_env_var('API_KEY', 'secret-value') # Sensitive by default
env.set_env_var('DEBUG', 'true', False) # Non-sensitive variable
# Get all environment variables
variables = env.get_env_vars()
# Returns: [TeamVariable(key='API_KEY', value='secret-value'), TeamVariable(key='DEBUG', value='true')]
# Delete an environment variable
env.del_env_var('API_KEY')
5. Direct API access
You can also directly access the full YepCode API using the YepCodeApi class:
from yepcode_run import YepCodeApi, YepCodeApiConfig
api = YepCodeApi(
YepCodeApiConfig(api_token='your-api-token')
)
# Get all processes
processes = api.get_processes()
SDK API Reference
YepCodeRun
The main class for executing code in YepCode's runtime environment.
Methods
run(code: str, options: Optional[Dict[str, Any]] = None) -> Execution
Executes code in YepCode's runtime environment.
Parameters:
code: Source code to execute (string)options: Execution options (optional){ "language": Optional[str], # 'javascript' or 'python' "onLog": Optional[Callable], # Log event handler "onFinish": Optional[Callable], # Success completion handler "onError": Optional[Callable], # Error handler "removeOnDone": Optional[bool], # Auto-cleanup after execution "parameters": Optional[Any], # Execution parameters "manifest": Optional[Dict], # Custom process manifest "timeout": Optional[int] # Execution timeout in ms }
Returns: Execution
get_execution(execution_id: str) -> Execution
Retrieves an existing execution by ID.
Parameters:
execution_id: Unique identifier for the execution
Returns: Execution
Execution class
Represents a code execution instance.
Properties:
class Execution:
id: str # Unique identifier
logs: List[Log] # Array of execution logs
process_id: Optional[str] # ID of the associated process
status: Optional[ExecutionStatus] # Current execution status
return_value: Any # Execution result
error: Optional[str] # Error message
timeline: Optional[List[TimelineEvent]] # Execution timeline events
parameters: Any # Execution input parameters
comment: Optional[str] # Execution comment
Methods:
is_done() -> bool
Returns whether the execution has completed.
Returns: bool
wait_for_done() -> None
Waits for the execution to complete.
Returns: None
kill() -> None
Terminates the execution.
Returns: None
rerun() -> Execution
Creates a new execution with the same configuration.
Returns: Execution
YepCodeEnv
Manages environment variables for your YepCode workspace.
Methods
get_env_vars() -> List[TeamVariable]
Returns all environment variables.
Returns: List[TeamVariable]
class TeamVariable:
key: str
value: str
is_sensitive: bool
set_env_var(key: str, value: str, is_sensitive: bool = True) -> None
Sets an environment variable.
Parameters:
key: Variable namevalue: Variable valueis_sensitive: Whether the variable contains sensitive data (defaults to true)
Returns: None
del_env_var(key: str) -> None
Deletes an environment variable.
Parameters:
key: Variable name to delete
Returns: None
YepCodeApi
Provides direct access to the YepCode API.
Methods
get_processes() -> List[Process]
Returns all available processes.
Returns: List[Process]
class Process:
id: str
name: str
description: Optional[str]
created_at: str
License
All rights reserved by YepCode. This package is part of the YepCode Platform and is subject to the YepCode Terms of Service.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yepcode_run-1.2.0.tar.gz.
File metadata
- Download URL: yepcode_run-1.2.0.tar.gz
- Upload date:
- Size: 15.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.12.10 Linux/6.11.0-1014-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
922f52ff000d9f83ee3e9566b6aa57c84b65ccef363f15a8d37fa13df75d494a
|
|
| MD5 |
9aef6e23c8dd6f1072f7dbf2cca3107a
|
|
| BLAKE2b-256 |
b9303d5d6a40416a80df6b9b346288925d5e8f241a9c97d5a8568916c02ddd38
|
File details
Details for the file yepcode_run-1.2.0-py3-none-any.whl.
File metadata
- Download URL: yepcode_run-1.2.0-py3-none-any.whl
- Upload date:
- Size: 17.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.12.10 Linux/6.11.0-1014-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc1333f707ae524f3a894b65bb57add49f29cc038ed10f058b3017e410615ed6
|
|
| MD5 |
57407f89f81d6fd7cdfdb4b222f615ba
|
|
| BLAKE2b-256 |
9ea24d545a82aa15db3f56085f53908ed7ac35f4d8c33ddf20285d79b46248b4
|