Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Welcome to the official Python library for RunPod API & SDK.
# Install the latest release version
pip install runpod
# or
# Install the latest development version (main branch)
pip install git+https://github.com/runpod/runpod-python.git
Python 3.8 or higher is required to use the latest version of this package.
This python package can also be used to create a serverless worker that can be deployed to RunPod as a custom endpoint API.
Create a python script in your project that contains your model definition and the RunPod worker start code. Run this python code as your default container start command:
# my_worker.py
import runpod
def is_even(job):
job_input = job["input"]
the_number = job_input["number"]
if not isinstance(the_number, int):
return {"error": "Silly human, you need to pass an integer."}
if the_number % 2 == 0:
return True
return False
runpod.serverless.start({"handler": is_even})
Make sure that this file is ran when your container starts. This can be accomplished by calling it in the docker command when you set up a template at runpod.io/console/serverless/user/templates or by setting it as the default command in your Dockerfile.
See our blog post for creating a basic Serverless API, or view the details docs for more information.
You can also test your worker locally before deploying it to RunPod. This is useful for debugging and testing.
python my_worker.py --rp_serve_api
When interacting with the RunPod API you can use this library to make requests to the API.
import runpod
runpod.api_key = "your_runpod_api_key_found_under_settings"
You can interact with RunPod endpoints via a run
or run_sync
method.
endpoint = runpod.Endpoint("ENDPOINT_ID")
run_request = endpoint.run(
{"your_model_input_key": "your_model_input_value"}
)
# Check the status of the endpoint run request
print(run_request.status())
# Get the output of the endpoint run request, blocking until the endpoint run is complete.
print(run_request.output())
endpoint = runpod.Endpoint("ENDPOINT_ID")
run_request = endpoint.run_sync(
{"your_model_input_key": "your_model_input_value"}
)
# Returns the job results if completed within 90 seconds, otherwise, returns the job status.
print(run_request )
import runpod
runpod.api_key = "your_runpod_api_key_found_under_settings"
# Get all my pods
pods = runpod.get_pods()
# Get a specific pod
pod = runpod.get_pod(pod.id)
# Create a pod
pod = runpod.create_pod("test", "runpod/stack", "NVIDIA GeForce RTX 3070")
# Stop the pod
runpod.stop_pod(pod.id)
# Resume the pod
runpod.resume_pod(pod.id)
# Terminate the pod
runpod.terminate_pod(pod.id)
.
├── docs # Documentation
├── examples # Examples
├── runpod # Package source code
│ ├── api_wrapper # Language library - API (GraphQL)
│ ├── cli # Command Line Interface Functions
│ ├── endpoint # Language library - Endpoints
│ └── serverless # SDK - Serverless Worker
└── tests # Package tests
We welcome both pull requests and issues on GitHub. Bug fixes and new features are encouraged, but please read our contributing guide first.
FAQs
🐍 | Python library for RunPod API and serverless worker SDK.
We found that runpod demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.