diff --git a/examples/endpoints/asyncio_job_request.py b/examples/endpoints/asyncio_job_request.py index 09357f07..fe0c5a6e 100644 --- a/examples/endpoints/asyncio_job_request.py +++ b/examples/endpoints/asyncio_job_request.py @@ -5,7 +5,7 @@ import asyncio import runpod -from runpod import http_client, AsyncioEndpoint, AsyncioJob +from runpod import AsyncioEndpoint, AsyncioJob, http_client asyncio.set_event_loop_policy( asyncio.WindowsSelectorEventLoopPolicy() diff --git a/examples/graphql_wrapper.py b/examples/graphql_wrapper.py index ea01d0fb..2bdac33a 100644 --- a/examples/graphql_wrapper.py +++ b/examples/graphql_wrapper.py @@ -3,8 +3,8 @@ """ import time -import runpod +import runpod runpod.api_key = "YOUR_RUNPOD_API_KEY" diff --git a/runpod/__init__.py b/runpod/__init__.py index b2b12c67..b4fbbfa3 100644 --- a/runpod/__init__.py +++ b/runpod/__init__.py @@ -1,7 +1,7 @@ """ Allows runpod to be imported as a module. """ -import os import logging +import os from . import serverless from .api.ctl_commands import ( diff --git a/runpod/api/mutations/pods.py b/runpod/api/mutations/pods.py index 2f6d466e..46613ff5 100644 --- a/runpod/api/mutations/pods.py +++ b/runpod/api/mutations/pods.py @@ -4,7 +4,7 @@ # pylint: disable=too-many-arguments, too-many-locals, too-many-branches -from typing import Optional, List +from typing import List, Optional def generate_pod_deployment_mutation( diff --git a/runpod/cli/entry.py b/runpod/cli/entry.py index ecdb25ac..1edd3b8c 100644 --- a/runpod/cli/entry.py +++ b/runpod/cli/entry.py @@ -6,12 +6,11 @@ import click -from .groups.project.commands import project_cli - from .groups.config.commands import config_wizard -from .groups.ssh.commands import ssh_cli -from .groups.pod.commands import pod_cli from .groups.exec.commands import exec_cli +from .groups.pod.commands import pod_cli +from .groups.project.commands import project_cli +from .groups.ssh.commands import ssh_cli @click.group() diff --git a/runpod/cli/groups/config/commands.py b/runpod/cli/groups/config/commands.py index fa256e29..21ecc54f 100644 --- a/runpod/cli/groups/config/commands.py +++ b/runpod/cli/groups/config/commands.py @@ -3,9 +3,10 @@ """ import sys + import click -from .functions import set_credentials, check_credentials +from .functions import check_credentials, set_credentials @click.command("config", help="Configures the RunPod CLI with the user's API key.") diff --git a/runpod/cli/groups/exec/helpers.py b/runpod/cli/groups/exec/helpers.py index 6402abae..687c2b97 100644 --- a/runpod/cli/groups/exec/helpers.py +++ b/runpod/cli/groups/exec/helpers.py @@ -1,6 +1,7 @@ """Helper functions for the runpod cli group exec command""" import os + import click from runpod import get_pod diff --git a/runpod/cli/groups/pod/commands.py b/runpod/cli/groups/pod/commands.py index d274c8a0..34b2ca1a 100644 --- a/runpod/cli/groups/pod/commands.py +++ b/runpod/cli/groups/pod/commands.py @@ -5,7 +5,7 @@ import click from prettytable import PrettyTable -from runpod import get_pods, create_pod +from runpod import create_pod, get_pods from ...utils import ssh_cmd diff --git a/runpod/cli/groups/project/commands.py b/runpod/cli/groups/project/commands.py index 789e5b1a..4cb3445e 100644 --- a/runpod/cli/groups/project/commands.py +++ b/runpod/cli/groups/project/commands.py @@ -4,11 +4,13 @@ import os import sys + import click from InquirerPy import prompt as cli_select from runpod import get_user -from .functions import create_new_project, start_project, create_project_endpoint + +from .functions import create_new_project, create_project_endpoint, start_project from .helpers import validate_project_name diff --git a/runpod/cli/groups/project/functions.py b/runpod/cli/groups/project/functions.py index 5787dee1..db37470e 100644 --- a/runpod/cli/groups/project/functions.py +++ b/runpod/cli/groups/project/functions.py @@ -8,25 +8,26 @@ from datetime import datetime import tomlkit -from tomlkit import document, comment, table, nl +from tomlkit import comment, document, nl, table from runpod import ( __version__, - get_pod, - create_template, create_endpoint, + create_template, + get_pod, update_endpoint_template, ) -from runpod.cli import BASE_DOCKER_IMAGE, GPU_TYPES, ENV_VARS +from runpod.cli import BASE_DOCKER_IMAGE, ENV_VARS, GPU_TYPES from runpod.cli.utils.ssh_cmd import SSHConnection + +from ...utils.rp_sync import sync_directory from .helpers import ( - get_project_pod, - copy_template_files, attempt_pod_launch, - load_project_config, + copy_template_files, get_project_endpoint, + get_project_pod, + load_project_config, ) -from ...utils.rp_sync import sync_directory STARTER_TEMPLATES = os.path.join(os.path.dirname(__file__), "starter_templates") diff --git a/runpod/cli/groups/project/helpers.py b/runpod/cli/groups/project/helpers.py index 81bb3a88..be7c7d98 100644 --- a/runpod/cli/groups/project/helpers.py +++ b/runpod/cli/groups/project/helpers.py @@ -1,14 +1,15 @@ """Helper functions for project group commands.""" -import re import os +import re import shutil import click import tomlkit -from runpod import get_pods, create_pod, get_endpoints +from runpod import create_pod from runpod import error as rp_error +from runpod import get_endpoints, get_pods def validate_project_name(name): diff --git a/runpod/cli/groups/project/starter_templates/llama2/src/handler.py b/runpod/cli/groups/project/starter_templates/llama2/src/handler.py index 235c0467..2b9da242 100644 --- a/runpod/cli/groups/project/starter_templates/llama2/src/handler.py +++ b/runpod/cli/groups/project/starter_templates/llama2/src/handler.py @@ -2,10 +2,12 @@ # pylint: skip-file -import runpod import inspect + from transformers import HfApi +import runpod + SELECTED_MODEL = "<>" diff --git a/runpod/cli/groups/ssh/commands.py b/runpod/cli/groups/ssh/commands.py index 86e71972..b680b8fb 100644 --- a/runpod/cli/groups/ssh/commands.py +++ b/runpod/cli/groups/ssh/commands.py @@ -4,7 +4,8 @@ import click from prettytable import PrettyTable -from .functions import get_user_pub_keys, generate_ssh_key_pair + +from .functions import generate_ssh_key_pair, get_user_pub_keys @click.group("ssh", help="Manage and configure SSH keys for secure access to pods.") diff --git a/runpod/cli/groups/ssh/functions.py b/runpod/cli/groups/ssh/functions.py index a7e722f6..583d2dd9 100644 --- a/runpod/cli/groups/ssh/functions.py +++ b/runpod/cli/groups/ssh/functions.py @@ -2,9 +2,10 @@ RunPod | CLI | SSH | Functions """ -import os import base64 import hashlib +import os + import paramiko from runpod.api.ctl_commands import get_user, update_user_settings diff --git a/runpod/cli/utils/rp_runpodignore.py b/runpod/cli/utils/rp_runpodignore.py index 0f503f0e..a768b356 100644 --- a/runpod/cli/utils/rp_runpodignore.py +++ b/runpod/cli/utils/rp_runpodignore.py @@ -1,7 +1,7 @@ """ Reads the .runpodignore file and returns a list of files to ignore. """ -import os import fnmatch +import os EXCLUDE_PATTERNS = [ "__pycache__/", diff --git a/runpod/cli/utils/rp_sync.py b/runpod/cli/utils/rp_sync.py index ef7db683..fa7fe290 100644 --- a/runpod/cli/utils/rp_sync.py +++ b/runpod/cli/utils/rp_sync.py @@ -2,13 +2,14 @@ Watches a directory for changes and syncs them to a remote directory. """ -import time import threading +import time -from watchdog.observers.polling import PollingObserver as Observer from watchdog.events import FileSystemEventHandler +from watchdog.observers.polling import PollingObserver as Observer from runpod.cli import STOP_EVENT + from .rp_runpodignore import get_ignore_list, should_ignore diff --git a/runpod/cli/utils/rp_userspace.py b/runpod/cli/utils/rp_userspace.py index a3c9af11..9b3ec4a7 100644 --- a/runpod/cli/utils/rp_userspace.py +++ b/runpod/cli/utils/rp_userspace.py @@ -3,7 +3,9 @@ """ import os + import paramiko + from runpod import SSH_KEY_PATH diff --git a/runpod/cli/utils/ssh_cmd.py b/runpod/cli/utils/ssh_cmd.py index f227975a..ee3dcbac 100644 --- a/runpod/cli/utils/ssh_cmd.py +++ b/runpod/cli/utils/ssh_cmd.py @@ -4,17 +4,19 @@ Connect and run commands over SSH. """ -import sys import signal -import threading import subprocess +import sys +import threading + import colorama import paramiko from runpod.cli import STOP_EVENT + from .rp_info import get_pod_ssh_ip_port -from .rp_userspace import find_ssh_key_file from .rp_runpodignore import get_ignore_list +from .rp_userspace import find_ssh_key_file colorama.init(autoreset=True) # Initialize colorama diff --git a/runpod/endpoint/__init__.py b/runpod/endpoint/__init__.py index a3385811..8002ed17 100644 --- a/runpod/endpoint/__init__.py +++ b/runpod/endpoint/__init__.py @@ -1,5 +1,5 @@ """ Allows endpoints to be imported as a module. """ -from .runner import Endpoint, Job from .asyncio.asyncio_runner import Endpoint as AsyncioEndpoint from .asyncio.asyncio_runner import Job as AsyncioJob +from .runner import Endpoint, Job diff --git a/runpod/endpoint/asyncio/asyncio_runner.py b/runpod/endpoint/asyncio/asyncio_runner.py index 5c08401f..8b87d7ce 100644 --- a/runpod/endpoint/asyncio/asyncio_runner.py +++ b/runpod/endpoint/asyncio/asyncio_runner.py @@ -2,21 +2,21 @@ # pylint: disable=too-few-public-methods,R0801 -from typing import Any, Dict import asyncio +from typing import Any, Dict -from runpod.http_client import ClientSession from runpod.endpoint.helpers import FINAL_STATES, is_completed +from runpod.http_client import ClientSession class Job: """Class representing a job for an asynchronous endpoint""" def __init__(self, endpoint_id: str, job_id: str, session: ClientSession): - from runpod import ( + from runpod import ( # pylint: disable=import-outside-toplevel,cyclic-import api_key, endpoint_url_base, - ) # pylint: disable=import-outside-toplevel,cyclic-import + ) self.endpoint_id = endpoint_id self.job_id = job_id @@ -109,9 +109,9 @@ class Endpoint: def __init__(self, endpoint_id: str, session: ClientSession): from runpod import ( - api_key, + api_key, # pylint: disable=import-outside-toplevel endpoint_url_base, - ) # pylint: disable=import-outside-toplevel + ) self.endpoint_id = endpoint_id self.endpoint_url = f"{endpoint_url_base}/{self.endpoint_id}/run" diff --git a/runpod/endpoint/runner.py b/runpod/endpoint/runner.py index cf1e71f4..e4d93384 100644 --- a/runpod/endpoint/runner.py +++ b/runpod/endpoint/runner.py @@ -2,15 +2,16 @@ RunPod | Python | Endpoint Runner """ -from typing import Any, Optional, Dict import time +from typing import Any, Dict, Optional + import requests from requests.adapters import HTTPAdapter, Retry from runpod.endpoint.helpers import ( + API_KEY_NOT_SET_MSG, FINAL_STATES, UNAUTHORIZED_MSG, - API_KEY_NOT_SET_MSG, is_completed, ) @@ -28,10 +29,10 @@ def __init__(self): Raises: RuntimeError: If the API key has not been initialized. """ - from runpod import ( + from runpod import ( # pylint: disable=import-outside-toplevel, cyclic-import api_key, endpoint_url_base, - ) # pylint: disable=import-outside-toplevel, cyclic-import + ) if api_key is None: raise RuntimeError(API_KEY_NOT_SET_MSG) diff --git a/runpod/http_client.py b/runpod/http_client.py index b04b2712..5a83dd4b 100644 --- a/runpod/http_client.py +++ b/runpod/http_client.py @@ -3,17 +3,12 @@ """ import os + import requests -from aiohttp import ( - ClientSession, - ClientTimeout, - TCPConnector, -) -from .tracer import ( - create_aiohttp_tracer, - create_request_tracer, -) +from aiohttp import ClientSession, ClientTimeout, TCPConnector + from .cli.groups.config.functions import get_credentials +from .tracer import create_aiohttp_tracer, create_request_tracer from .user_agent import USER_AGENT diff --git a/runpod/serverless/core.py b/runpod/serverless/core.py index 7b29da22..577e7542 100644 --- a/runpod/serverless/core.py +++ b/runpod/serverless/core.py @@ -1,18 +1,18 @@ """ Core functionality for the runpod serverless worker. """ +import asyncio import ctypes import inspect import json import os import pathlib -import asyncio -from ctypes import CDLL, byref, c_char_p, c_int -from typing import Any, Callable, List, Dict, Optional import typing +from ctypes import CDLL, byref, c_char_p, c_int +from typing import Any, Callable, Dict, List, Optional -from runpod.version import __version__ as runpod_version -from runpod.serverless.modules.rp_logger import RunPodLogger from runpod.serverless.modules import rp_job +from runpod.serverless.modules.rp_logger import RunPodLogger +from runpod.version import __version__ as runpod_version log = RunPodLogger() diff --git a/runpod/serverless/modules/rp_fastapi.py b/runpod/serverless/modules/rp_fastapi.py index 4c74a1c1..9d5fe9ab 100644 --- a/runpod/serverless/modules/rp_fastapi.py +++ b/runpod/serverless/modules/rp_fastapi.py @@ -3,24 +3,23 @@ # pylint: disable=too-few-public-methods, line-too-long import os -import uuid import threading +import uuid from dataclasses import dataclass -from typing import Union, Optional, Dict, Any +from typing import Any, Dict, Optional, Union -import uvicorn import requests -from fastapi import FastAPI, APIRouter +import uvicorn +from fastapi import APIRouter, FastAPI from fastapi.encoders import jsonable_encoder from fastapi.responses import RedirectResponse +from ...http_client import SyncClientSession +from ...version import __version__ as runpod_version from .rp_handler import is_generator from .rp_job import run_job, run_job_generator -from .worker_state import Jobs from .rp_ping import Heartbeat -from ...version import __version__ as runpod_version -from ...http_client import SyncClientSession - +from .worker_state import Jobs RUNPOD_ENDPOINT_ID = os.environ.get("RUNPOD_ENDPOINT_ID", None) diff --git a/runpod/serverless/modules/rp_http.py b/runpod/serverless/modules/rp_http.py index 7c501ce0..1e9b6d8f 100644 --- a/runpod/serverless/modules/rp_http.py +++ b/runpod/serverless/modules/rp_http.py @@ -2,13 +2,16 @@ This module is used to handle HTTP requests. """ -import os import json +import os + from aiohttp import ClientError -from aiohttp_retry import RetryClient, FibonacciRetry +from aiohttp_retry import FibonacciRetry, RetryClient + from runpod.http_client import ClientSession from runpod.serverless.modules.rp_logger import RunPodLogger -from .worker_state import Jobs, WORKER_ID + +from .worker_state import WORKER_ID, Jobs JOB_DONE_URL_TEMPLATE = str( os.environ.get("RUNPOD_WEBHOOK_POST_OUTPUT", "JOB_DONE_URL") diff --git a/runpod/serverless/modules/rp_job.py b/runpod/serverless/modules/rp_job.py index 663cfa46..a4ef6ab7 100644 --- a/runpod/serverless/modules/rp_job.py +++ b/runpod/serverless/modules/rp_job.py @@ -4,19 +4,19 @@ # pylint: disable=too-many-branches +import asyncio import inspect -from typing import Any, Callable, Dict, Optional, Union, AsyncGenerator - -import os import json -import asyncio +import os import traceback +from typing import Any, AsyncGenerator, Callable, Dict, Optional, Union from runpod.http_client import ClientSession from runpod.serverless.modules.rp_logger import RunPodLogger -from .worker_state import WORKER_ID, Jobs -from .rp_tips import check_return_size + from ...version import __version__ as runpod_version +from .rp_tips import check_return_size +from .worker_state import WORKER_ID, Jobs JOB_GET_URL = str(os.environ.get("RUNPOD_WEBHOOK_GET_JOB")).replace("$ID", WORKER_ID) diff --git a/runpod/serverless/modules/rp_local.py b/runpod/serverless/modules/rp_local.py index 40b4ccdd..971e696e 100644 --- a/runpod/serverless/modules/rp_local.py +++ b/runpod/serverless/modules/rp_local.py @@ -3,12 +3,13 @@ Provides the local testing functionality for runpod serverless worker. """ +import json import os import sys -import json -from typing import Dict, Any +from typing import Any, Dict from runpod.serverless.modules.rp_logger import RunPodLogger + from .rp_job import run_job log = RunPodLogger() diff --git a/runpod/serverless/modules/rp_logger.py b/runpod/serverless/modules/rp_logger.py index ab98b77b..b21dd397 100644 --- a/runpod/serverless/modules/rp_logger.py +++ b/runpod/serverless/modules/rp_logger.py @@ -10,11 +10,10 @@ ERROR - 4 - Serious problem, the software has not been able to perform some function. """ -import os import json +import os from typing import Optional - MAX_MESSAGE_LENGTH = 4096 LOG_LEVELS = ["NOTSET", "DEBUG", "TRACE", "INFO", "WARN", "ERROR"] diff --git a/runpod/serverless/modules/rp_ping.py b/runpod/serverless/modules/rp_ping.py index adf16965..a7d05de2 100644 --- a/runpod/serverless/modules/rp_ping.py +++ b/runpod/serverless/modules/rp_ping.py @@ -4,17 +4,16 @@ """ import os -import time import threading +import time import requests from urllib3.util.retry import Retry from runpod.http_client import SyncClientSession -from runpod.version import __version__ as runpod_version from runpod.serverless.modules.rp_logger import RunPodLogger -from runpod.serverless.modules.worker_state import Jobs, WORKER_ID - +from runpod.serverless.modules.worker_state import WORKER_ID, Jobs +from runpod.version import __version__ as runpod_version log = RunPodLogger() jobs = Jobs() # Contains the list of jobs that are currently running. diff --git a/runpod/serverless/modules/rp_progress.py b/runpod/serverless/modules/rp_progress.py index d8a8ef98..8cd61bd6 100644 --- a/runpod/serverless/modules/rp_progress.py +++ b/runpod/serverless/modules/rp_progress.py @@ -4,10 +4,11 @@ import asyncio import threading -from typing import Dict, Any +from typing import Any, Dict from runpod.http_client import AsyncClientSession from runpod.serverless.modules.rp_logger import RunPodLogger + from .rp_http import send_result log = RunPodLogger() diff --git a/runpod/serverless/modules/rp_scale.py b/runpod/serverless/modules/rp_scale.py index 6c21b3dd..aca0d28b 100644 --- a/runpod/serverless/modules/rp_scale.py +++ b/runpod/serverless/modules/rp_scale.py @@ -5,7 +5,9 @@ import asyncio import warnings + from runpod.serverless.modules.rp_logger import RunPodLogger + from .rp_job import get_job from .worker_state import Jobs diff --git a/runpod/serverless/modules/rp_tips.py b/runpod/serverless/modules/rp_tips.py index e351338b..cbf23eb4 100644 --- a/runpod/serverless/modules/rp_tips.py +++ b/runpod/serverless/modules/rp_tips.py @@ -3,6 +3,7 @@ """ import sys + import runpod.serverless.modules.rp_logger as RunPodLogger log = RunPodLogger.RunPodLogger() diff --git a/runpod/serverless/modules/worker_state.py b/runpod/serverless/modules/worker_state.py index bc67b6fc..ad26e867 100644 --- a/runpod/serverless/modules/worker_state.py +++ b/runpod/serverless/modules/worker_state.py @@ -3,9 +3,9 @@ """ import os -import uuid import time -from typing import Optional, Dict, Any, Union +import uuid +from typing import Any, Dict, Optional, Union REF_COUNT_ZERO = time.perf_counter() # Used for benchmarking with the debugger. diff --git a/runpod/serverless/utils/__init__.py b/runpod/serverless/utils/__init__.py index 09799679..ac35a2ce 100644 --- a/runpod/serverless/utils/__init__.py +++ b/runpod/serverless/utils/__init__.py @@ -1,5 +1,4 @@ """ Allows for the import of all modules in the utils directory. """ from .rp_download import download_files_from_urls - from .rp_upload import upload_file_to_bucket, upload_in_memory_object diff --git a/runpod/serverless/utils/rp_debugger.py b/runpod/serverless/utils/rp_debugger.py index a4dee26b..e99f7cd4 100644 --- a/runpod/serverless/utils/rp_debugger.py +++ b/runpod/serverless/utils/rp_debugger.py @@ -4,11 +4,11 @@ A collection of functions to help with debugging. """ -import time import datetime import platform -import cpuinfo +import time +import cpuinfo # ---------------------------------------------------------------------------- # # System Info # diff --git a/runpod/serverless/utils/rp_download.py b/runpod/serverless/utils/rp_download.py index 314fe74b..baa0d13c 100644 --- a/runpod/serverless/utils/rp_download.py +++ b/runpod/serverless/utils/rp_download.py @@ -10,15 +10,15 @@ import re import uuid import zipfile +from concurrent.futures import ThreadPoolExecutor +from email import message_from_string from typing import List, Union from urllib.parse import urlparse -from email import message_from_string -from concurrent.futures import ThreadPoolExecutor import backoff from requests import RequestException -from runpod.http_client import SyncClientSession +from runpod.http_client import SyncClientSession HEADERS = {"User-Agent": "runpod-python/0.0.0 (https://runpod.io; support@runpod.io)"} diff --git a/runpod/serverless/utils/rp_upload.py b/runpod/serverless/utils/rp_upload.py index 344da92d..3f1c5af5 100644 --- a/runpod/serverless/utils/rp_upload.py +++ b/runpod/serverless/utils/rp_upload.py @@ -2,16 +2,16 @@ # pylint: disable=too-many-arguments -import os import io -import time -import uuid -import shutil import logging -import threading import multiprocessing -from urllib.parse import urlparse +import os +import shutil +import threading +import time +import uuid from typing import Optional, Tuple +from urllib.parse import urlparse import boto3 from boto3 import session @@ -19,7 +19,6 @@ from botocore.config import Config from tqdm_loggable.auto import tqdm - logger = logging.getLogger("runpod upload utility") FMT = "%(filename)-20s:%(lineno)-4d %(asctime)s %(message)s" logging.basicConfig(level=logging.INFO, format=FMT, handlers=[logging.StreamHandler()]) diff --git a/runpod/serverless/worker.py b/runpod/serverless/worker.py index e4644dd0..d9c7cd44 100644 --- a/runpod/serverless/worker.py +++ b/runpod/serverless/worker.py @@ -3,14 +3,15 @@ Called to convert a container into a worker pod for the runpod serverless platform. """ -import os import asyncio -from typing import Dict, Any +import os +from typing import Any, Dict from runpod.http_client import AsyncClientSession -from runpod.serverless.modules import rp_logger, rp_local, rp_handler, rp_ping, rp_scale -from .modules.rp_job import run_job, run_job_generator +from runpod.serverless.modules import rp_handler, rp_local, rp_logger, rp_ping, rp_scale + from .modules.rp_http import send_result, stream_result +from .modules.rp_job import run_job, run_job_generator from .modules.worker_state import REF_COUNT_ZERO, Jobs from .utils import rp_debugger diff --git a/runpod/tracer.py b/runpod/tracer.py index ecbbe286..4fce0567 100644 --- a/runpod/tracer.py +++ b/runpod/tracer.py @@ -4,31 +4,27 @@ import asyncio import json -from types import SimpleNamespace from datetime import datetime, timezone -from time import time, monotonic +from time import monotonic, time +from types import SimpleNamespace from uuid import uuid4 -from requests import ( - Response, - PreparedRequest, - structures, -) + from aiohttp import ( ClientSession, TraceConfig, - TraceRequestStartParams, - TraceConnectionCreateStartParams, TraceConnectionCreateEndParams, + TraceConnectionCreateStartParams, TraceConnectionReuseconnParams, + TraceRequestChunkSentParams, TraceRequestEndParams, TraceRequestExceptionParams, - TraceRequestChunkSentParams, + TraceRequestStartParams, TraceResponseChunkReceivedParams, ) +from requests import PreparedRequest, Response, structures from .serverless.modules.rp_logger import RunPodLogger - log = RunPodLogger() diff --git a/runpod/version.py b/runpod/version.py index e182eec3..9bd24731 100644 --- a/runpod/version.py +++ b/runpod/version.py @@ -1,6 +1,6 @@ """ runpod-python version """ -from importlib.metadata import version, PackageNotFoundError +from importlib.metadata import PackageNotFoundError, version def get_version(): diff --git a/setup.py b/setup.py index 5f2213df..76088b6d 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ Called to setup the runpod-python package. """ -from setuptools import setup, find_packages +from setuptools import find_packages, setup # README.md > long_description with open("README.md", encoding="utf-8") as long_description_file: diff --git a/tests/test_cli/test_cli_groups/test_config_commands.py b/tests/test_cli/test_cli_groups/test_config_commands.py index b1f6d9a1..d9dbe3ba 100644 --- a/tests/test_cli/test_cli_groups/test_config_commands.py +++ b/tests/test_cli/test_cli_groups/test_config_commands.py @@ -4,6 +4,7 @@ import unittest from unittest.mock import patch + from click.testing import CliRunner from runpod.cli.entry import runpod_cli diff --git a/tests/test_cli/test_cli_groups/test_config_functions.py b/tests/test_cli/test_cli_groups/test_config_functions.py index 89824d24..14c8418a 100644 --- a/tests/test_cli/test_cli_groups/test_config_functions.py +++ b/tests/test_cli/test_cli_groups/test_config_functions.py @@ -3,7 +3,7 @@ """ import unittest -from unittest.mock import patch, mock_open +from unittest.mock import mock_open, patch from runpod.cli.groups.config import functions diff --git a/tests/test_cli/test_cli_groups/test_exec_functions.py b/tests/test_cli/test_cli_groups/test_exec_functions.py index d9b0f7e8..511ebe30 100644 --- a/tests/test_cli/test_cli_groups/test_exec_functions.py +++ b/tests/test_cli/test_cli_groups/test_exec_functions.py @@ -1,7 +1,7 @@ """ Tests for CLI group `exec functions` """ import unittest -from unittest.mock import patch, MagicMock +from unittest.mock import MagicMock, patch from runpod.cli.groups.exec import functions diff --git a/tests/test_cli/test_cli_groups/test_exec_helpers.py b/tests/test_cli/test_cli_groups/test_exec_helpers.py index 68a9422e..248a684c 100644 --- a/tests/test_cli/test_cli_groups/test_exec_helpers.py +++ b/tests/test_cli/test_cli_groups/test_exec_helpers.py @@ -1,8 +1,9 @@ """ Unit tests for the runpod.cli.groups.exec.helpers module. """ import unittest -from unittest.mock import patch, mock_open -from runpod.cli.groups.exec.helpers import get_session_pod, POD_ID_FILE +from unittest.mock import mock_open, patch + +from runpod.cli.groups.exec.helpers import POD_ID_FILE, get_session_pod class TestGetSessionPod(unittest.TestCase): diff --git a/tests/test_cli/test_cli_groups/test_pod_commands.py b/tests/test_cli/test_cli_groups/test_pod_commands.py index dc918e99..92cb4076 100644 --- a/tests/test_cli/test_cli_groups/test_pod_commands.py +++ b/tests/test_cli/test_cli_groups/test_pod_commands.py @@ -1,7 +1,7 @@ """ Test CLI pod commands """ import unittest -from unittest.mock import patch, MagicMock +from unittest.mock import MagicMock, patch from click.testing import CliRunner from prettytable import PrettyTable diff --git a/tests/test_cli/test_cli_groups/test_project_commands.py b/tests/test_cli/test_cli_groups/test_project_commands.py index 04330bdc..2316e9ac 100644 --- a/tests/test_cli/test_cli_groups/test_project_commands.py +++ b/tests/test_cli/test_cli_groups/test_project_commands.py @@ -6,10 +6,11 @@ from unittest.mock import patch from click.testing import CliRunner + from runpod.cli.groups.project.commands import ( + deploy_project, new_project_wizard, start_project_pod, - deploy_project, ) diff --git a/tests/test_cli/test_cli_groups/test_project_functions.py b/tests/test_cli/test_cli_groups/test_project_functions.py index 573f0ab6..667d71e6 100644 --- a/tests/test_cli/test_cli_groups/test_project_functions.py +++ b/tests/test_cli/test_cli_groups/test_project_functions.py @@ -3,13 +3,13 @@ import os import shutil import unittest -from unittest.mock import patch, mock_open +from unittest.mock import mock_open, patch from runpod.cli.groups.project.functions import ( STARTER_TEMPLATES, create_new_project, - start_project, create_project_endpoint, + start_project, ) diff --git a/tests/test_cli/test_cli_groups/test_project_helpers.py b/tests/test_cli/test_cli_groups/test_project_helpers.py index 051cf0b4..9b3437c8 100644 --- a/tests/test_cli/test_cli_groups/test_project_helpers.py +++ b/tests/test_cli/test_cli_groups/test_project_helpers.py @@ -1,18 +1,18 @@ """Tests for the project helpers.""" import unittest -from unittest.mock import patch, mock_open +from unittest.mock import mock_open, patch import click from runpod import error as rp_error from runpod.cli.groups.project.helpers import ( - validate_project_name, - get_project_pod, - get_project_endpoint, - copy_template_files, attempt_pod_launch, + copy_template_files, + get_project_endpoint, + get_project_pod, load_project_config, + validate_project_name, ) diff --git a/tests/test_cli/test_cli_groups/test_ssh_commands.py b/tests/test_cli/test_cli_groups/test_ssh_commands.py index 392276f1..6a1a7ca5 100644 --- a/tests/test_cli/test_cli_groups/test_ssh_commands.py +++ b/tests/test_cli/test_cli_groups/test_ssh_commands.py @@ -5,7 +5,7 @@ from click.testing import CliRunner -from runpod.cli.groups.ssh.commands import list_keys, add_key +from runpod.cli.groups.ssh.commands import add_key, list_keys class TestSSHCommands(unittest.TestCase): diff --git a/tests/test_cli/test_cli_groups/test_ssh_functions.py b/tests/test_cli/test_cli_groups/test_ssh_functions.py index f51882d3..bac88130 100644 --- a/tests/test_cli/test_cli_groups/test_ssh_functions.py +++ b/tests/test_cli/test_cli_groups/test_ssh_functions.py @@ -2,12 +2,13 @@ import base64 import unittest -from unittest.mock import patch, mock_open +from unittest.mock import mock_open, patch + from runpod.cli.groups.ssh.functions import ( + add_ssh_key, + generate_ssh_key_pair, get_ssh_key_fingerprint, get_user_pub_keys, - generate_ssh_key_pair, - add_ssh_key, ) diff --git a/tests/test_cli/test_cli_utils/test_info.py b/tests/test_cli/test_cli_utils/test_info.py index 892f4380..8f2d4ecc 100644 --- a/tests/test_cli/test_cli_utils/test_info.py +++ b/tests/test_cli/test_cli_utils/test_info.py @@ -1,6 +1,7 @@ """ Unit testing for runpod.cli.utils.rp_info.py """ from unittest.mock import patch + import pytest from runpod.cli.utils.rp_info import get_pod_ssh_ip_port diff --git a/tests/test_cli/test_cli_utils/test_runpodignore.py b/tests/test_cli/test_cli_utils/test_runpodignore.py index 169fdb1f..6fea73f2 100644 --- a/tests/test_cli/test_cli_utils/test_runpodignore.py +++ b/tests/test_cli/test_cli_utils/test_runpodignore.py @@ -4,7 +4,7 @@ import os import unittest -from unittest.mock import patch, mock_open +from unittest.mock import mock_open, patch from runpod.cli.utils.rp_runpodignore import get_ignore_list, should_ignore diff --git a/tests/test_cli/test_cli_utils/test_ssh_cmd.py b/tests/test_cli/test_cli_utils/test_ssh_cmd.py index 5c2a9c47..97269a60 100644 --- a/tests/test_cli/test_cli_utils/test_ssh_cmd.py +++ b/tests/test_cli/test_cli_utils/test_ssh_cmd.py @@ -3,7 +3,7 @@ """ import unittest -from unittest.mock import patch, MagicMock +from unittest.mock import MagicMock, patch import paramiko diff --git a/tests/test_cli/test_cli_utils/test_sync.py b/tests/test_cli/test_cli_utils/test_sync.py index 879d3572..adfc998f 100644 --- a/tests/test_cli/test_cli_utils/test_sync.py +++ b/tests/test_cli/test_cli_utils/test_sync.py @@ -2,7 +2,7 @@ import time import unittest -from unittest.mock import patch, MagicMock, ANY +from unittest.mock import ANY, MagicMock, patch from runpod.cli import STOP_EVENT from runpod.cli.utils.rp_sync import WatcherHandler, start_watcher, sync_directory diff --git a/tests/test_cli/test_cli_utils/test_userspace.py b/tests/test_cli/test_cli_utils/test_userspace.py index 2aa3a703..4fe7e060 100644 --- a/tests/test_cli/test_cli_utils/test_userspace.py +++ b/tests/test_cli/test_cli_utils/test_userspace.py @@ -4,7 +4,6 @@ import unittest from unittest.mock import patch - from runpod.cli.utils.rp_userspace import find_ssh_key_file diff --git a/tests/test_endpoint/test_asyncio_runner.py b/tests/test_endpoint/test_asyncio_runner.py index 527e37b0..088a549f 100644 --- a/tests/test_endpoint/test_asyncio_runner.py +++ b/tests/test_endpoint/test_asyncio_runner.py @@ -2,13 +2,13 @@ # pylint: disable=too-few-public-methods -import tracemalloc import asyncio +import tracemalloc import unittest -from unittest.mock import patch, MagicMock, AsyncMock from unittest import IsolatedAsyncioTestCase +from unittest.mock import AsyncMock, MagicMock, patch -from runpod.endpoint.asyncio.asyncio_runner import Job, Endpoint +from runpod.endpoint.asyncio.asyncio_runner import Endpoint, Job tracemalloc.start() diff --git a/tests/test_endpoint/test_runner.py b/tests/test_endpoint/test_runner.py index 609c3bed..265b6e17 100644 --- a/tests/test_endpoint/test_runner.py +++ b/tests/test_endpoint/test_runner.py @@ -3,12 +3,13 @@ """ import unittest -from unittest.mock import patch, Mock +from unittest.mock import Mock, patch + import requests import runpod from runpod.endpoint import runner -from runpod.endpoint.runner import RunPodClient, Job, Endpoint +from runpod.endpoint.runner import Endpoint, Job, RunPodClient class TestRunPodClient(unittest.TestCase): diff --git a/tests/test_error.py b/tests/test_error.py index 665fc807..1820a497 100644 --- a/tests/test_error.py +++ b/tests/test_error.py @@ -3,7 +3,7 @@ import unittest # Assuming the error classes are in a file named 'error.py' -from runpod.error import RunPodError, AuthenticationError, QueryError +from runpod.error import AuthenticationError, QueryError, RunPodError class TestErrorClasses(unittest.TestCase): diff --git a/tests/test_serverless/test_modules/test_fastapi.py b/tests/test_serverless/test_modules/test_fastapi.py index bce36eee..a140dc0e 100644 --- a/tests/test_serverless/test_modules/test_fastapi.py +++ b/tests/test_serverless/test_modules/test_fastapi.py @@ -2,14 +2,14 @@ # pylint: disable=protected-access -import os import asyncio - +import os import unittest -from unittest.mock import patch, Mock, MagicMock -import pytest +from unittest.mock import MagicMock, Mock, patch +import pytest import requests + import runpod from runpod.serverless.modules import rp_fastapi diff --git a/tests/test_serverless/test_modules/test_http.py b/tests/test_serverless/test_modules/test_http.py index f17bf31c..442219a0 100644 --- a/tests/test_serverless/test_modules/test_http.py +++ b/tests/test_serverless/test_modules/test_http.py @@ -7,7 +7,8 @@ import gc import json import unittest -from unittest.mock import patch, AsyncMock +from unittest.mock import AsyncMock, patch + import aiohttp from runpod.serverless.modules import rp_http diff --git a/tests/test_serverless/test_modules/test_job.py b/tests/test_serverless/test_modules/test_job.py index 718b98e2..54fb7903 100644 --- a/tests/test_serverless/test_modules/test_job.py +++ b/tests/test_serverless/test_modules/test_job.py @@ -4,9 +4,9 @@ import asyncio import time +from unittest import IsolatedAsyncioTestCase from unittest.mock import Mock, patch -from unittest import IsolatedAsyncioTestCase from aiohttp import ClientResponse from aiohttp.test_utils import make_mocked_coro diff --git a/tests/test_serverless/test_modules/test_local.py b/tests/test_serverless/test_modules/test_local.py index 4671db4d..523c3cfb 100644 --- a/tests/test_serverless/test_modules/test_local.py +++ b/tests/test_serverless/test_modules/test_local.py @@ -1,7 +1,7 @@ """ Tests for rp_local.py """ from unittest import IsolatedAsyncioTestCase -from unittest.mock import patch, mock_open +from unittest.mock import mock_open, patch from runpod.serverless.modules import rp_local diff --git a/tests/test_serverless/test_modules/test_ping.py b/tests/test_serverless/test_modules/test_ping.py index c45c7a6b..ca7b0776 100644 --- a/tests/test_serverless/test_modules/test_ping.py +++ b/tests/test_serverless/test_modules/test_ping.py @@ -1,12 +1,12 @@ """ Tests for runpod.serverless.modules.rp_ping """ -import os import importlib - +import os import unittest from unittest.mock import patch import requests + from runpod.serverless.modules import rp_ping diff --git a/tests/test_serverless/test_modules/test_progress.py b/tests/test_serverless/test_modules/test_progress.py index 06a1c092..6d0db47c 100644 --- a/tests/test_serverless/test_modules/test_progress.py +++ b/tests/test_serverless/test_modules/test_progress.py @@ -3,10 +3,10 @@ """ import unittest -from unittest.mock import ANY, patch from threading import Event +from unittest.mock import ANY, patch -from runpod.serverless.modules.rp_progress import progress_update, _thread_target +from runpod.serverless.modules.rp_progress import _thread_target, progress_update class TestProgressUpdate(unittest.TestCase): diff --git a/tests/test_serverless/test_modules/test_state.py b/tests/test_serverless/test_modules/test_state.py index d607131b..b728244b 100644 --- a/tests/test_serverless/test_modules/test_state.py +++ b/tests/test_serverless/test_modules/test_state.py @@ -3,7 +3,7 @@ import os import unittest -from runpod.serverless.modules.worker_state import Job, Jobs, IS_LOCAL_TEST, WORKER_ID +from runpod.serverless.modules.worker_state import IS_LOCAL_TEST, WORKER_ID, Job, Jobs class TestEnvVars(unittest.TestCase): diff --git a/tests/test_serverless/test_modules/test_tips.py b/tests/test_serverless/test_modules/test_tips.py index f5b8ca4f..0b0668a8 100644 --- a/tests/test_serverless/test_modules/test_tips.py +++ b/tests/test_serverless/test_modules/test_tips.py @@ -2,6 +2,7 @@ import unittest from unittest.mock import patch + from runpod.serverless.modules.rp_tips import check_return_size diff --git a/tests/test_serverless/test_utils/test_cuda.py b/tests/test_serverless/test_utils/test_cuda.py index b5e8a185..6aa411d6 100644 --- a/tests/test_serverless/test_utils/test_cuda.py +++ b/tests/test_serverless/test_utils/test_cuda.py @@ -3,6 +3,7 @@ """ from unittest.mock import patch + from runpod.serverless.utils import rp_cuda diff --git a/tests/test_serverless/test_utils/test_debugger.py b/tests/test_serverless/test_utils/test_debugger.py index 3a9a67d4..ca68c86d 100644 --- a/tests/test_serverless/test_utils/test_debugger.py +++ b/tests/test_serverless/test_utils/test_debugger.py @@ -2,18 +2,18 @@ Unit tests for the debugger utility functions. """ +import importlib import time import unittest -import importlib from unittest.mock import patch from runpod.serverless.utils import rp_debugger from runpod.serverless.utils.rp_debugger import ( Checkpoints, - LineTimer, FunctionTimer, - get_debugger_output, + LineTimer, clear_debugger_output, + get_debugger_output, ) diff --git a/tests/test_serverless/test_utils/test_download.py b/tests/test_serverless/test_utils/test_download.py index 62ac8379..6678f452 100644 --- a/tests/test_serverless/test_utils/test_download.py +++ b/tests/test_serverless/test_utils/test_download.py @@ -4,8 +4,10 @@ import os import unittest -from unittest.mock import patch, mock_open, MagicMock +from unittest.mock import MagicMock, mock_open, patch + from requests import RequestException + from runpod.serverless.utils.rp_download import ( calculate_chunk_size, download_files_from_urls, diff --git a/tests/test_serverless/test_utils/test_upload.py b/tests/test_serverless/test_utils/test_upload.py index c5cb9ad9..a67ada8c 100644 --- a/tests/test_serverless/test_utils/test_upload.py +++ b/tests/test_serverless/test_utils/test_upload.py @@ -1,15 +1,18 @@ """ Tests for my_module | bucket utilities """ -import os +import importlib import io +import os import time -import importlib import unittest -from unittest.mock import MagicMock, patch, Mock +from unittest.mock import MagicMock, Mock, patch -from runpod.serverless.utils import rp_upload +from runpod.serverless.utils import ( + rp_upload, + upload_file_to_bucket, + upload_in_memory_object, +) from runpod.serverless.utils.rp_upload import get_boto_client -from runpod.serverless.utils import upload_file_to_bucket, upload_in_memory_object BUCKET_CREDENTIALS = { "endpointUrl": "https://your-bucket-endpoint-url.com", diff --git a/tests/test_serverless/test_utils/test_validate.py b/tests/test_serverless/test_utils/test_validate.py index 3613562e..65a10418 100644 --- a/tests/test_serverless/test_utils/test_validate.py +++ b/tests/test_serverless/test_utils/test_validate.py @@ -2,6 +2,7 @@ import unittest from unittest.mock import Mock + from runpod.serverless.utils import rp_validator diff --git a/tests/test_serverless/test_worker.py b/tests/test_serverless/test_worker.py index 555e78ca..612a7ddc 100644 --- a/tests/test_serverless/test_worker.py +++ b/tests/test_serverless/test_worker.py @@ -2,17 +2,16 @@ # pylint: disable=protected-access -import os import argparse -from unittest import mock -from unittest.mock import patch, mock_open, Mock, MagicMock +import os +from unittest import IsolatedAsyncioTestCase, mock +from unittest.mock import MagicMock, Mock, mock_open, patch -from unittest import IsolatedAsyncioTestCase import nest_asyncio import runpod -from runpod.serverless.modules.rp_logger import RunPodLogger from runpod.serverless import _signal_handler +from runpod.serverless.modules.rp_logger import RunPodLogger nest_asyncio.apply() diff --git a/tests/test_shared/test_auth.py b/tests/test_shared/test_auth.py index 2fa731c2..a70292d3 100644 --- a/tests/test_shared/test_auth.py +++ b/tests/test_shared/test_auth.py @@ -2,10 +2,9 @@ Test shared functions related to authentication """ -import unittest import importlib - -from unittest.mock import patch, mock_open +import unittest +from unittest.mock import mock_open, patch class TestAPIKey(unittest.TestCase): diff --git a/tests/test_tracer.py b/tests/test_tracer.py index 6fb646c3..6228887e 100644 --- a/tests/test_tracer.py +++ b/tests/test_tracer.py @@ -6,29 +6,31 @@ import unittest from time import time from types import SimpleNamespace -from unittest.mock import patch, MagicMock -from yarl import URL +from unittest.mock import MagicMock, patch + from aiohttp import ( TraceConfig, - TraceRequestStartParams, - TraceConnectionCreateStartParams, TraceConnectionCreateEndParams, + TraceConnectionCreateStartParams, TraceConnectionReuseconnParams, - TraceRequestExceptionParams, TraceRequestChunkSentParams, + TraceRequestExceptionParams, + TraceRequestStartParams, TraceResponseChunkReceivedParams, ) +from yarl import URL + from runpod.tracer import ( - on_request_start, - on_connection_create_start, + create_aiohttp_tracer, on_connection_create_end, + on_connection_create_start, on_connection_reuseconn, on_request_chunk_sent, - on_response_chunk_received, on_request_end, on_request_exception, + on_request_start, + on_response_chunk_received, report_trace, - create_aiohttp_tracer, time_to_iso8601, ) diff --git a/tests/test_user_agent.py b/tests/test_user_agent.py index a4339dbb..10dbf9c3 100644 --- a/tests/test_user_agent.py +++ b/tests/test_user_agent.py @@ -1,8 +1,8 @@ """ Tests for the user_agent module. """ +import os import unittest from unittest.mock import patch -import os from runpod import __version__ as runpod_version from runpod.user_agent import construct_user_agent diff --git a/tests/test_version.py b/tests/test_version.py index 9eb9ab97..77f1e788 100644 --- a/tests/test_version.py +++ b/tests/test_version.py @@ -1,7 +1,8 @@ """ Test the version module """ -from unittest.mock import patch from importlib.metadata import PackageNotFoundError +from unittest.mock import patch + from runpod.version import get_version diff --git a/tests/test_whatever.py b/tests/test_whatever.py index a5507772..30d48bd7 100644 --- a/tests/test_whatever.py +++ b/tests/test_whatever.py @@ -3,6 +3,7 @@ """ import unittest + from .whatever import is_even