Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/tape_collection/cli_config.tape
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ Enter

Sleep 4s

Type "<Paste your RunPod API Key here>"
Type "<Paste your Runpod API Key here>"
2 changes: 1 addition & 1 deletion .github/workflows/CI-e2e.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Performs a full test of the package within production environment.

name: CI | End-to-End RunPod Python Tests
name: CI | End-to-End Runpod Python Tests

on:
push:
Expand Down
4 changes: 2 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,14 +54,14 @@

### Fixed

- Edge case when using RunPod Serverless Core that return `None` for function output.
- Edge case when using Runpod Serverless Core that return `None` for function output.
- Missing Job ID for logging.
- Concurrency modifier not adhering to the maximum concurrency.
- Improved in progress job tracking and counting.

### Added

- Expanded RunPod Serverless Core testing.
- Expanded Runpod Serverless Core testing.

---

Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2022 RunPod
Copyright (c) 2025 Runpod

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ runpod.api_key = "your_runpod_api_key_found_under_settings"

### Endpoints

You can interact with RunPod endpoints via a `run` or `run_sync` method.
You can interact with Runpod endpoints via a `run` or `run_sync` method.

```python
endpoint = runpod.Endpoint("ENDPOINT_ID")
Expand Down
4 changes: 2 additions & 2 deletions docs/cli/references/command_line_interface.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# RunPod CLI
# Runpod CLI

Note: This CLI is not the same as runpodctl and provides a different set of features.

Expand Down Expand Up @@ -27,7 +27,7 @@ runpod --help
```bash
$ runpod config
Profile [default]:
RunPod API Key [None]: YOUR_RUNPOD_API_KEY
Runpod API Key [None]: YOUR_RUNPOD_API_KEY
```

### Launch Pod
Expand Down
4 changes: 2 additions & 2 deletions docs/cli/references/projects.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Projects

A RunPod project is a single folder that contains all the files needed to create and run a serverless worker.
A Runpod project is a single folder that contains all the files needed to create and run a serverless worker.

## Convert existing worker to a project

Expand All @@ -10,4 +10,4 @@ You may need to update the default configuration within `runpod.toml` to match y

## Ignore Files and Folders

Create a `.runpodignore` file in the root of your project to ignore files and folders from being uploaded to the RunPod platform, the same file will also be used to ignore files that should not trigger an API server reload.
Create a `.runpodignore` file in the root of your project to ignore files and folders from being uploaded to the Runpod platform, the same file will also be used to ignore files that should not trigger an API server reload.
4 changes: 2 additions & 2 deletions docs/cli/references/runpod.toml.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Project File

Project files are stored as a `runpod.toml` file in the root of your project. This file contains all the information needed to run your project on the RunPod platform.
Project files are stored as a `runpod.toml` file in the root of your project. This file contains all the information needed to run your project on the Runpod platform.

## Example

```toml
# RunPod Project Configuration
# Runpod Project Configuration

title = "My Project"

Expand Down
6 changes: 3 additions & 3 deletions docs/cli/start_here.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# [BETA] | RunPod Python CLI Reference
# [BETA] | Runpod Python CLI Reference

Note: This CLI is not the same as runpodctl and provides a different set of features.

Expand All @@ -10,13 +10,13 @@ Note: This CLI is not the same as runpodctl and provides a different set of feat

![runpod config](demos/config.gif)

Store your RunPod API key by running `runpod config`. Optionally you can also call the command with your API key `runpod config YOUR_API_KEY` or include the `--profile` to save multiple keys (stored under "default" profile is not specified) Credentials are stored in `~/.runpod/config.toml`.
Store your Runpod API key by running `runpod config`. Optionally you can also call the command with your API key `runpod config YOUR_API_KEY` or include the `--profile` to save multiple keys (stored under "default" profile is not specified) Credentials are stored in `~/.runpod/config.toml`.

![runpod ssh add-key](demos/ssh.gif)

Add a SSH key to you account by running `runpod ssh add-key`. To specify and existing key pass in `--key` or `--key-file` to use a file. Keys are stored in `~/.runpod/ssh/`. If no key is specified a new one will be generated and stored.

## RunPod Project
## Runpod Project

A "project" is the start of a serverless worker. To get started call `runpod project new`, you will be asked a few questions about the project you are creating, a project folder will be created. You can now navigate into your repo and run `runpod project start`.

Expand Down
2 changes: 1 addition & 1 deletion docs/getting_Started.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Getting Started

The RunPod python library is a powerful library providing SDK functions, API access, and CLI commands for interacting with the RunPod platform.
The Runpod python library is a powerful library providing SDK functions, API access, and CLI commands for interacting with the Runpod platform.

## Credentials File

Expand Down
4 changes: 2 additions & 2 deletions docs/serverless/utils/rp_upload.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ BUCKET_ACCESS_KEY_ID = # S3 bucket access key id
BUCKET_SECRET_ACCESS_KEY = # S3 bucket secret access key
```

The credentials can be set in your Docker image using `ENV`, however, it is recommended to set them in the RunPod template using the `Environment Variables` property for security.
The credentials can be set in your Docker image using `ENV`, however, it is recommended to set them in the Runpod template using the `Environment Variables` property for security.

![RunPod Template Location](.docs/images/../../../../images/env_var_location.png)
![Runpod Template Location](.docs/images/../../../../images/env_var_location.png)

### Passed as a Dictionary

Expand Down
2 changes: 1 addition & 1 deletion docs/serverless/worker.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# The Serverless Worker

Both RunPod official endpoints as well as custom built endpoints function by means of a worker that fetches available jobs, passes them into a handler and then returns the output.
Both Runpod official endpoints as well as custom built endpoints function by means of a worker that fetches available jobs, passes them into a handler and then returns the output.

A worker entry point is a python file containing the command `runpod.serverless.start(config)`. An minimal worker file is shown below:

Expand Down
2 changes: 1 addition & 1 deletion examples/endpoints/run.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
Example of calling an endpoint using the RunPod Python Language Library.
Example of calling an endpoint using the Runpod Python Language Library.
"""

import runpod
Expand Down
2 changes: 1 addition & 1 deletion examples/endpoints/run_sync.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
Example of calling an endpoint using the RunPod Python Language Library.
Example of calling an endpoint using the Runpod Python Language Library.
"""

import runpod
Expand Down
2 changes: 1 addition & 1 deletion examples/graphql_wrapper.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""'
GraphQL wrapper for the RunPod API
GraphQL wrapper for the Runpod API
"""

import time
Expand Down
5 changes: 2 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
[project]
name = "runpod"
dynamic = ["version", "dependencies"]
description = "🐍 | Python library for RunPod API and serverless worker SDK."
description = "🐍 | Python library for Runpod API and serverless worker SDK."
readme = { file = "README.md", content-type = "text/markdown" }
requires-python = ">=3.8"
license = { text = "MIT License" }
authors = [
{ name = "RunPod", email = "engineer@runpod.io" },
{ name = "Justin Merrell", email = "justin.merrell@runpod.io" },
{ name = "Runpod", email = "engineer@runpod.io" },
]
keywords = [
"runpod",
Expand Down
2 changes: 1 addition & 1 deletion runpod/api/ctl_commands.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
RunPod | API Wrapper | CTL Commands
Runpod | API Wrapper | CTL Commands
"""

# pylint: disable=too-many-arguments,too-many-locals
Expand Down
2 changes: 1 addition & 1 deletion runpod/api/graphql.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
RunPod | API Wrapper | GraphQL
Runpod | API Wrapper | GraphQL
"""

import json
Expand Down
2 changes: 1 addition & 1 deletion runpod/api/mutations/container_register_auth.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
""" RunPod | API Wrapper | Mutations | Container Registry Auth """
""" Runpod | API Wrapper | Mutations | Container Registry Auth """


def generate_container_registry_auth(name: str, username: str, password: str):
Expand Down
2 changes: 1 addition & 1 deletion runpod/api/mutations/endpoints.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
""" RunPod | API Wrapper | Mutations | Endpoints """
""" Runpod | API Wrapper | Mutations | Endpoints """

# pylint: disable=too-many-arguments

Expand Down
2 changes: 1 addition & 1 deletion runpod/api/mutations/pods.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
RunPod | API Wrapper | Mutations | Pods
Runpod | API Wrapper | Mutations | Pods
"""

# pylint: disable=too-many-arguments, too-many-locals, too-many-branches
Expand Down
2 changes: 1 addition & 1 deletion runpod/api/mutations/templates.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
""" RunPod | API Wrapper | Mutations | Templates """
""" Runpod | API Wrapper | Mutations | Templates """

# pylint: disable=too-many-arguments, too-many-branches

Expand Down
2 changes: 1 addition & 1 deletion runpod/api/mutations/user.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
RunPod | API | Mutations | User
Runpod | API | Mutations | User
"""


Expand Down
2 changes: 1 addition & 1 deletion runpod/api/queries/gpus.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
RunPod | API | Queries | GPUs
Runpod | API | Queries | GPUs
"""

QUERY_GPU_TYPES = """
Expand Down
2 changes: 1 addition & 1 deletion runpod/api/queries/pods.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
RunPod | API Wrapper | Queries | GPUs
Runpod | API Wrapper | Queries | GPUs
"""

QUERY_POD = """
Expand Down
2 changes: 1 addition & 1 deletion runpod/api/queries/user.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
RunPod | API | Queries | User
Runpod | API | Queries | User

Query for user information.
"""
Expand Down
4 changes: 2 additions & 2 deletions runpod/cli/entry.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
RunPod | CLI | Entry
Runpod | CLI | Entry

The entry point for the CLI.
"""
Expand All @@ -15,7 +15,7 @@

@click.group()
def runpod_cli():
"""A collection of CLI functions for RunPod."""
"""A collection of CLI functions for Runpod."""


runpod_cli.add_command(config_wizard) # runpod config
Expand Down
8 changes: 4 additions & 4 deletions runpod/cli/groups/config/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@
from .functions import check_credentials, set_credentials


@click.command("config", help="Configures the RunPod CLI with the user's API key.")
@click.command("config", help="Configures the Runpod CLI with the user's API key.")
@click.argument("api-key", required=False, default=None)
@click.option(
"--profile", default="default", help="The profile to set the credentials for."
)
@click.option("--check", is_flag=True, help="Check if credentials are already set.")
def config_wizard(api_key, profile, check):
"""Starts the configuration wizard to set up the RunPod CLI.
"""Starts the configuration wizard to set up the Runpod CLI.
If credentials are already set, prompts the user to overwrite them.
"""
valid, error = check_credentials(profile)
Expand All @@ -34,10 +34,10 @@ def config_wizard(api_key, profile, check):
)

if api_key is None:
click.echo("Please enter your RunPod API Key.")
click.echo("Please enter your Runpod API Key.")
click.echo("You can find it at https://www.runpod.io/console/user/settings")
api_key = click.prompt(
" > RunPod API Key", hide_input=False, confirmation_prompt=False
" > Runpod API Key", hide_input=False, confirmation_prompt=False
)

set_credentials(api_key, profile, overwrite=True)
Expand Down
2 changes: 1 addition & 1 deletion runpod/cli/groups/exec/commands.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
RunPod | CLI | Exec | Commands
Runpod | CLI | Exec | Commands
"""

import click
Expand Down
2 changes: 1 addition & 1 deletion runpod/cli/groups/exec/functions.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
RunPod | CLI | Exec | Functions
Runpod | CLI | Exec | Functions
"""

from runpod.cli.utils import ssh_cmd
Expand Down
10 changes: 5 additions & 5 deletions runpod/cli/groups/pod/commands.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
RunPod | CLI | Pod | Commands
Runpod | CLI | Pod | Commands
"""

import os
Expand Down Expand Up @@ -91,13 +91,13 @@ def sync_pods(source_pod_id, dest_pod_id, source_workspace, dest_workspace):
📋 PREREQUISITES:

1. SSH Key Setup:
• You must have an SSH key configured in your RunPod account
• You must have an SSH key configured in your Runpod account
• If you don't have one, create it with: runpod ssh add-key
• List your keys with: runpod ssh list-keys

2. Pod Configuration:
• Both pods must have SSH access enabled
• For running pods using official RunPod templates, you may need to add
• For running pods using official Runpod templates, you may need to add
your public key to the PUBLIC_KEY environment variable and restart the pod

⚠️ IMPORTANT NOTES:
Expand Down Expand Up @@ -127,7 +127,7 @@ def sync_pods(source_pod_id, dest_pod_id, source_workspace, dest_workspace):
from ...groups.ssh.functions import get_user_pub_keys
user_keys = get_user_pub_keys()
if not user_keys:
click.echo("❌ No SSH keys found in your RunPod account!")
click.echo("❌ No SSH keys found in your Runpod account!")
click.echo("")
click.echo("🔑 To create an SSH key, run:")
click.echo(" runpod ssh add-key")
Expand Down Expand Up @@ -234,7 +234,7 @@ def sync_pods(source_pod_id, dest_pod_id, source_workspace, dest_workspace):
click.echo("")
click.echo("🔧 Troubleshooting tips:")
click.echo("• Ensure both pods have SSH access enabled")
click.echo("• Check that your SSH key is added to your RunPod account: runpod ssh list-keys")
click.echo("• Check that your SSH key is added to your Runpod account: runpod ssh list-keys")
click.echo("• For running pods, you may need to add PUBLIC_KEY env var and restart")
click.echo("• Verify the source and destination paths exist")
finally:
Expand Down
12 changes: 6 additions & 6 deletions runpod/cli/groups/project/commands.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
RunPod | CLI | Project | Commands
Runpod | CLI | Project | Commands
"""

import os
Expand All @@ -14,9 +14,9 @@
from .helpers import validate_project_name


@click.group("project", help="Create, deploy, and manage RunPod projects.")
@click.group("project", help="Create, deploy, and manage Runpod projects.")
def project_cli():
"""Create and deploy projects on RunPod."""
"""Create and deploy projects on Runpod."""


# -------------------------------- New Project ------------------------------- #
Expand Down Expand Up @@ -96,7 +96,7 @@ def print_net_vol(vol):
click.echo("Project Summary:")

click.echo(f" - Project Name: {project_name}")
click.echo(f" - RunPod Network Storage ID: {runpod_volume_id}")
click.echo(f" - Runpod Network Storage ID: {runpod_volume_id}")
click.echo(f" - CUDA Version: {cuda_version}")
click.echo(f" - Python Version: {python_version}")

Expand Down Expand Up @@ -128,7 +128,7 @@ def start_project_pod():
Start the project development pod from runpod.toml
"""
click.echo(
"Starting the project will create a development pod on RunPod, if one does not already exist."
"Starting the project will create a development pod on Runpod, if one does not already exist."
) # pylint: disable=line-too-long
click.echo(
" - You will be charged based on the GPU type specified in runpod.toml."
Expand All @@ -145,7 +145,7 @@ def start_project_pod():
# ------------------------------ Deploy Project ------------------------------ #
@project_cli.command("deploy")
def deploy_project():
"""Deploy the project to RunPod."""
"""Deploy the project to Runpod."""
click.echo("Deploying project...")

endpoint_id = create_project_endpoint()
Expand Down
Loading
Loading