Skip to main content

🐍 | Python library for RunPod API and serverless worker SDK.

Project description

RunPod | Python Library

PyPI Package   Downloads

CI | End-to-End RunPod Python Tests

CI | Code Quality   CI | Unit Tests   CI | CodeQL

Welcome to the official Python library for RunPod API & SDK.

Table of Contents

💻 | Installation

# 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.

⚡ | Serverless Worker (SDK)

This python package can also be used to create a serverless worker that can be deployed to RunPod as a custom endpoint API.

Quick Start

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.

Local Test Worker

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

📚 | API Language Library (GraphQL Wrapper)

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"

Endpoints

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 )

GPU Cloud (Pods)

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)

📁 | Directory

.
├── 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

🤝 | Community and Contributing

We welcome both pull requests and issues on GitHub. Bug fixes and new features are encouraged, but please read our contributing guide first.

Discord Banner 2

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

myrunpoddev-1.7.16.tar.gz (4.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

myrunpoddev-1.7.16-py3-none-any.whl (4.0 MB view details)

Uploaded Python 3

File details

Details for the file myrunpoddev-1.7.16.tar.gz.

File metadata

  • Download URL: myrunpoddev-1.7.16.tar.gz
  • Upload date:
  • Size: 4.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for myrunpoddev-1.7.16.tar.gz
Algorithm Hash digest
SHA256 33150876a91cac2222f9c820e1b3e1772c5dae3c30c5bc0e1dc523d269f9267e
MD5 7868b2dde315264f5a5efa23c202cfc6
BLAKE2b-256 eacd0ce0e5b24aac7f1b88502bc7bf9ba3cc1c5c09180228c59588ff6a51ca3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for myrunpoddev-1.7.16.tar.gz:

Publisher: CD-publish_to_pypi.yml on promeG/myrunpoddev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myrunpoddev-1.7.16-py3-none-any.whl.

File metadata

  • Download URL: myrunpoddev-1.7.16-py3-none-any.whl
  • Upload date:
  • Size: 4.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for myrunpoddev-1.7.16-py3-none-any.whl
Algorithm Hash digest
SHA256 8340a19e364e0143aedb9cbd3a371e9b1257acd680da65a90a01f799ed8ffb2e
MD5 eef9433310ee8e8e79f4af62bafbee5c
BLAKE2b-256 2012c34982e1eb20e4330f577c170a96c4696e8ab42e6a7b6578b66c91c05ba7

See more details on using hashes here.

Provenance

The following attestation bundles were made for myrunpoddev-1.7.16-py3-none-any.whl:

Publisher: CD-publish_to_pypi.yml on promeG/myrunpoddev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page