From 84a77c4c4840ee65ce79dfe11a93c58e1127c0ab Mon Sep 17 00:00:00 2001 From: Lonnie Liu Date: Mon, 10 Nov 2025 19:52:09 +0000 Subject: [PATCH] [ci] apply isort to release test directory, part 1 excluding `*_tests` directories for now to reduce the impact Signed-off-by: Lonnie Liu --- ci/ray_ci/anyscale_docker_container.py | 4 +-- .../determine_microcheck_step_ids.py | 5 +-- .../automation/determine_microcheck_tests.py | 5 +-- ci/ray_ci/automation/test_db_bot.py | 3 +- .../test_determine_microcheck_tests.py | 5 +-- ci/ray_ci/automation/weekly_green_metric.py | 5 +-- ci/ray_ci/bisect/bisect_test.py | 11 +++--- ci/ray_ci/bisect/bisector.py | 4 +-- ci/ray_ci/bisect/generic_validator.py | 7 ++-- ci/ray_ci/bisect/macos_validator.py | 4 +-- ci/ray_ci/bisect/test_bisector.py | 3 +- ci/ray_ci/bisect/test_generic_validator.py | 3 +- ci/ray_ci/doc/build_cache.py | 3 +- ci/ray_ci/doc/cmd_build.py | 3 +- ci/ray_ci/pipeline/scheduler.py | 5 +-- ci/ray_ci/ray_docker_container.py | 4 +-- ci/ray_ci/test_anyscale_docker_container.py | 3 +- ci/ray_ci/test_linux_tester_container.py | 3 +- ci/ray_ci/test_ray_docker_container.py | 3 +- ci/ray_ci/test_tester.py | 3 +- ci/ray_ci/test_utils.py | 3 +- ci/ray_ci/tester.py | 3 +- ci/ray_ci/tester_container.py | 6 ++-- ci/ray_ci/utils.py | 5 +-- pyproject.toml | 4 +-- .../benchmark_worker_startup.py | 11 +++--- .../test_single_configuration.py | 3 +- .../distributed/test_many_actors.py | 9 ++--- .../benchmarks/distributed/test_many_pgs.py | 8 +++-- .../benchmarks/distributed/test_many_tasks.py | 11 +++--- .../benchmarks/distributed/test_scheduling.py | 7 ++-- .../object_store/test_large_objects.py | 7 ++-- .../object_store/test_object_store.py | 10 +++--- .../object_store/test_small_objects.py | 10 +++--- .../single_node/test_single_node.py | 13 +++---- release/dashboard/mem_check.py | 7 ++-- .../compiled_graph_gpu_microbenchmark.py | 23 ++++++------ .../experimental/gpu_object_microbenchmark.py | 9 ++--- release/microbenchmark/run_microbenchmark.py | 3 +- release/ray_release/alerts/default.py | 2 +- release/ray_release/alerts/handle.py | 10 +++--- .../ray_release/alerts/long_running_tests.py | 2 +- release/ray_release/alerts/tune_tests.py | 2 +- release/ray_release/alerts/xgboost_tests.py | 2 +- release/ray_release/anyscale_util.py | 4 +-- release/ray_release/aws.py | 7 ++-- release/ray_release/buildkite/concurrency.py | 6 ++-- release/ray_release/buildkite/filter.py | 6 ++-- release/ray_release/buildkite/output.py | 2 +- release/ray_release/buildkite/settings.py | 2 +- release/ray_release/buildkite/step.py | 10 +++--- release/ray_release/byod/build.py | 5 ++- release/ray_release/cloud_util.py | 8 ++--- .../cluster_manager/cluster_manager.py | 8 ++--- release/ray_release/cluster_manager/full.py | 6 ++-- .../ray_release/cluster_manager/minimal.py | 8 ++--- .../command_runner/_anyscale_job_wrapper.py | 12 +++---- .../command_runner/_prometheus_metrics.py | 11 +++--- .../command_runner/anyscale_job_runner.py | 24 ++++++------- .../command_runner/command_runner.py | 9 ++--- .../ray_release/command_runner/job_runner.py | 2 +- release/ray_release/config.py | 1 + .../custom_byod_build_init_helper.py | 10 +++--- .../file_manager/job_file_manager.py | 13 +++---- release/ray_release/glue.py | 36 +++++++++---------- release/ray_release/job_manager/__init__.py | 2 +- .../job_manager/anyscale_job_manager.py | 8 ++--- .../job_manager/kuberay_job_manager.py | 8 +++-- release/ray_release/reporter/artifacts.py | 2 +- release/ray_release/reporter/db.py | 6 ++-- release/ray_release/reporter/log.py | 2 +- release/ray_release/reporter/ray_test_db.py | 2 +- release/ray_release/reporter/reporter.py | 4 +-- release/ray_release/result.py | 2 +- release/ray_release/retry.py | 2 +- release/ray_release/scripts/build_pipeline.py | 4 +-- .../ray_release/scripts/custom_byod_build.py | 4 ++- .../custom_image_build_and_test_init.py | 19 +++++----- .../scripts/get_aws_instance_information.py | 2 +- .../ray_release/scripts/get_test_summary.py | 2 +- release/ray_release/scripts/ray_bisect.py | 13 +++---- .../ray_release/scripts/run_release_test.py | 9 ++--- release/ray_release/template.py | 2 +- release/ray_release/test.py | 10 +++--- .../test_automation/ci_state_machine.py | 5 ++- .../test_automation/release_state_machine.py | 5 ++- .../test_automation/state_machine.py | 6 ++-- release/ray_release/tests/test_alerts.py | 5 +-- .../tests/test_anyscale_job_manager.py | 3 +- .../tests/test_anyscale_job_wrapper.py | 9 ++--- release/ray_release/tests/test_bisect.py | 7 ++-- release/ray_release/tests/test_buildkite.py | 24 ++++++------- release/ray_release/tests/test_byod_build.py | 12 +++---- release/ray_release/tests/test_cloud_util.py | 7 ++-- .../ray_release/tests/test_cluster_manager.py | 18 +++++----- release/ray_release/tests/test_config.py | 4 ++- .../tests/test_custom_byod_build.py | 2 +- .../test_custom_byod_build_init_helper.py | 15 ++++---- .../test_custom_image_build_and_test_init.py | 8 ++--- release/ray_release/tests/test_env.py | 1 + .../ray_release/tests/test_global_config.py | 2 +- release/ray_release/tests/test_glue.py | 27 +++++++------- .../ray_release/tests/test_kuberay_util.py | 1 + .../ray_release/tests/test_log_aggregator.py | 2 ++ release/ray_release/tests/test_result.py | 4 +-- release/ray_release/tests/test_retry.py | 5 +-- release/ray_release/tests/test_run_script.py | 1 + .../ray_release/tests/test_state_machine.py | 18 +++++----- release/ray_release/tests/test_template.py | 4 +-- release/ray_release/tests/test_test.py | 24 ++++++------- release/ray_release/util.py | 2 +- release/util/sanity_check.py | 4 ++- 112 files changed, 411 insertions(+), 363 deletions(-) diff --git a/ci/ray_ci/anyscale_docker_container.py b/ci/ray_ci/anyscale_docker_container.py index 32152f5e913d..3451aec2c04f 100644 --- a/ci/ray_ci/anyscale_docker_container.py +++ b/ci/ray_ci/anyscale_docker_container.py @@ -1,8 +1,6 @@ import os import subprocess -from ray_release.configs.global_config import get_global_config - from ci.ray_ci.container import ( _AZURE_REGISTRY_NAME, _DOCKER_AZURE_REGISTRY, @@ -11,6 +9,8 @@ ) from ci.ray_ci.docker_container import DockerContainer +from ray_release.configs.global_config import get_global_config + class AnyscaleDockerContainer(DockerContainer): """ diff --git a/ci/ray_ci/automation/determine_microcheck_step_ids.py b/ci/ray_ci/automation/determine_microcheck_step_ids.py index 097afee56aca..7230576f7a54 100644 --- a/ci/ray_ci/automation/determine_microcheck_step_ids.py +++ b/ci/ray_ci/automation/determine_microcheck_step_ids.py @@ -1,6 +1,9 @@ import os import click + +from ci.ray_ci.utils import ci_init + from ray_release.test import ( LINUX_TEST_PREFIX, MACOS_TEST_PREFIX, @@ -8,8 +11,6 @@ Test, ) -from ci.ray_ci.utils import ci_init - BAZEL_WORKSPACE_DIR = os.environ.get("BUILD_WORKSPACE_DIRECTORY", "") diff --git a/ci/ray_ci/automation/determine_microcheck_tests.py b/ci/ray_ci/automation/determine_microcheck_tests.py index 67f914d4dff4..0be36c308e93 100644 --- a/ci/ray_ci/automation/determine_microcheck_tests.py +++ b/ci/ray_ci/automation/determine_microcheck_tests.py @@ -1,13 +1,14 @@ from typing import Dict, List, Set import click + +from ci.ray_ci.utils import ci_init, logger + from ray_release.configs.global_config import get_global_config from ray_release.result import ResultStatus from ray_release.test import Test from ray_release.test_automation.ci_state_machine import CITestStateMachine -from ci.ray_ci.utils import ci_init, logger - # The s3 prefix for the tests that run on Linux. It comes from the bazel prefix rule # linux:// with the character "/" replaced by "_" for s3 compatibility LINUX_TEST_PREFIX = "linux:__" diff --git a/ci/ray_ci/automation/test_db_bot.py b/ci/ray_ci/automation/test_db_bot.py index 5d562309ac63..34d6101fb398 100644 --- a/ci/ray_ci/automation/test_db_bot.py +++ b/ci/ray_ci/automation/test_db_bot.py @@ -1,11 +1,12 @@ import os import click -from ray_release.configs.global_config import get_global_config from ci.ray_ci.tester_container import TesterContainer from ci.ray_ci.utils import ci_init, logger +from ray_release.configs.global_config import get_global_config + @click.command() @click.argument("team", required=True, type=str) diff --git a/ci/ray_ci/automation/test_determine_microcheck_tests.py b/ci/ray_ci/automation/test_determine_microcheck_tests.py index 75083482ca3a..f0ba30b0da36 100644 --- a/ci/ray_ci/automation/test_determine_microcheck_tests.py +++ b/ci/ray_ci/automation/test_determine_microcheck_tests.py @@ -3,8 +3,6 @@ from typing import List import pytest -from ray_release.result import ResultStatus -from ray_release.test import Test, TestResult from ci.ray_ci.automation.determine_microcheck_tests import ( _get_failed_commits, @@ -15,6 +13,9 @@ ) from ci.ray_ci.utils import ci_init +from ray_release.result import ResultStatus +from ray_release.test import Test, TestResult + ci_init() DB = {} diff --git a/ci/ray_ci/automation/weekly_green_metric.py b/ci/ray_ci/automation/weekly_green_metric.py index 230a14691dea..493fb84e7940 100644 --- a/ci/ray_ci/automation/weekly_green_metric.py +++ b/ci/ray_ci/automation/weekly_green_metric.py @@ -4,11 +4,12 @@ import boto3 import click -from ray_release.test_automation.state_machine import TestStateMachine -from ray_release.util import get_write_state_machine_aws_bucket from ci.ray_ci.utils import ci_init, logger +from ray_release.test_automation.state_machine import TestStateMachine +from ray_release.util import get_write_state_machine_aws_bucket + AWS_WEEKLY_GREEN_METRIC = "ray_weekly_green_metric" diff --git a/ci/ray_ci/bisect/bisect_test.py b/ci/ray_ci/bisect/bisect_test.py index 2fa8466572dd..0d99c13a959b 100644 --- a/ci/ray_ci/bisect/bisect_test.py +++ b/ci/ray_ci/bisect/bisect_test.py @@ -2,17 +2,18 @@ import os import click -from ray_release.test import ( - Test, - TestType, -) -from ray_release.test_automation.ci_state_machine import CITestStateMachine from ci.ray_ci.bisect.bisector import Bisector from ci.ray_ci.bisect.generic_validator import GenericValidator from ci.ray_ci.bisect.macos_validator import MacOSValidator from ci.ray_ci.utils import ci_init, logger +from ray_release.test import ( + Test, + TestType, +) +from ray_release.test_automation.ci_state_machine import CITestStateMachine + # This is the directory where the ray repository is mounted in the container RAYCI_CHECKOUT_DIR_MOUNT = "/ray" diff --git a/ci/ray_ci/bisect/bisector.py b/ci/ray_ci/bisect/bisector.py index 095f48d09876..094b1617775c 100644 --- a/ci/ray_ci/bisect/bisector.py +++ b/ci/ray_ci/bisect/bisector.py @@ -1,11 +1,11 @@ import subprocess from typing import List, Optional -from ray_release.test import Test - from ci.ray_ci.bisect.validator import Validator from ci.ray_ci.utils import logger +from ray_release.test import Test + class Bisector: def __init__( diff --git a/ci/ray_ci/bisect/generic_validator.py b/ci/ray_ci/bisect/generic_validator.py index 3142a0eed463..41ac3a147f60 100644 --- a/ci/ray_ci/bisect/generic_validator.py +++ b/ci/ray_ci/bisect/generic_validator.py @@ -1,13 +1,14 @@ import time from pybuildkite.buildkite import Buildkite -from ray_release.aws import get_secret_token -from ray_release.configs.global_config import get_global_config -from ray_release.test import Test from ci.ray_ci.bisect.validator import Validator from ci.ray_ci.utils import logger +from ray_release.aws import get_secret_token +from ray_release.configs.global_config import get_global_config +from ray_release.test import Test + BUILDKITE_ORGANIZATION = "ray-project" BUILDKITE_POSTMERGE_PIPELINE = "postmerge" BUILDKITE_BUILD_RUNNING_STATE = [ diff --git a/ci/ray_ci/bisect/macos_validator.py b/ci/ray_ci/bisect/macos_validator.py index e1f7beb4e71f..94815014a636 100644 --- a/ci/ray_ci/bisect/macos_validator.py +++ b/ci/ray_ci/bisect/macos_validator.py @@ -1,11 +1,11 @@ import os import subprocess +from ci.ray_ci.bisect.validator import Validator + from ray_release.bazel import bazel_runfile from ray_release.test import Test -from ci.ray_ci.bisect.validator import Validator - TEST_SCRIPT = "ci/ray_ci/bisect/macos_validator.sh" diff --git a/ci/ray_ci/bisect/test_bisector.py b/ci/ray_ci/bisect/test_bisector.py index 975cda7e18ce..d4ff9d91f163 100644 --- a/ci/ray_ci/bisect/test_bisector.py +++ b/ci/ray_ci/bisect/test_bisector.py @@ -2,12 +2,13 @@ from unittest import mock import pytest -from ray_release.test import Test from ci.ray_ci.bisect.bisector import Bisector from ci.ray_ci.bisect.macos_validator import MacOSValidator from ci.ray_ci.bisect.validator import Validator +from ray_release.test import Test + class MockValidator(Validator): def __init__(self, return_value: bool) -> None: diff --git a/ci/ray_ci/bisect/test_generic_validator.py b/ci/ray_ci/bisect/test_generic_validator.py index 3c3d4ea857c7..b9b2dfa0aa54 100644 --- a/ci/ray_ci/bisect/test_generic_validator.py +++ b/ci/ray_ci/bisect/test_generic_validator.py @@ -3,10 +3,11 @@ from unittest import mock import pytest -from ray_release.test import Test from ci.ray_ci.bisect.generic_validator import WAIT, GenericValidator +from ray_release.test import Test + START = time.time() diff --git a/ci/ray_ci/doc/build_cache.py b/ci/ray_ci/doc/build_cache.py index 9a45d98496ae..2db4abaadaa4 100644 --- a/ci/ray_ci/doc/build_cache.py +++ b/ci/ray_ci/doc/build_cache.py @@ -5,10 +5,11 @@ from typing import Set import boto3 -from ray_release.util import get_write_state_machine_aws_bucket from ci.ray_ci.utils import logger +from ray_release.util import get_write_state_machine_aws_bucket + AWS_CACHE_KEY = "doc_build" ENVIRONMENT_PICKLE = "_build/doctrees/environment.pickle" diff --git a/ci/ray_ci/doc/cmd_build.py b/ci/ray_ci/doc/cmd_build.py index 8740980910d1..2973f03589d1 100644 --- a/ci/ray_ci/doc/cmd_build.py +++ b/ci/ray_ci/doc/cmd_build.py @@ -2,11 +2,12 @@ import subprocess import click -from ray_release.configs.global_config import get_global_config from ci.ray_ci.doc.build_cache import BuildCache from ci.ray_ci.utils import ci_init, logger +from ray_release.configs.global_config import get_global_config + @click.command() @click.option( diff --git a/ci/ray_ci/pipeline/scheduler.py b/ci/ray_ci/pipeline/scheduler.py index a23e271817d6..a1557461d6b8 100644 --- a/ci/ray_ci/pipeline/scheduler.py +++ b/ci/ray_ci/pipeline/scheduler.py @@ -1,10 +1,11 @@ import click -from ray_release.aws import get_secret_token -from ray_release.configs.global_config import get_global_config from ci.ray_ci.pipeline.gap_filling_scheduler import GapFillingScheduler from ci.ray_ci.utils import ci_init, logger +from ray_release.aws import get_secret_token +from ray_release.configs.global_config import get_global_config + @click.command() @click.argument("buildkite_organization", type=str) diff --git a/ci/ray_ci/ray_docker_container.py b/ci/ray_ci/ray_docker_container.py index e56af1594f9e..c7fce0540c4d 100644 --- a/ci/ray_ci/ray_docker_container.py +++ b/ci/ray_ci/ray_docker_container.py @@ -1,13 +1,13 @@ import os from typing import List, Optional -from ray_release.configs.global_config import get_global_config - from ci.ray_ci.configs import DEFAULT_ARCHITECTURE, PYTHON_VERSIONS from ci.ray_ci.container import _DOCKER_ECR_REPO from ci.ray_ci.docker_container import RAY_REPO_MAP, DockerContainer, RayType from ci.ray_ci.utils import RAY_VERSION, docker_pull +from ray_release.configs.global_config import get_global_config + class RayDockerContainer(DockerContainer): """ diff --git a/ci/ray_ci/test_anyscale_docker_container.py b/ci/ray_ci/test_anyscale_docker_container.py index 36d166a804be..0c2d0057b29c 100644 --- a/ci/ray_ci/test_anyscale_docker_container.py +++ b/ci/ray_ci/test_anyscale_docker_container.py @@ -4,7 +4,6 @@ from unittest import mock import pytest -from ray_release.configs.global_config import get_global_config from ci.ray_ci.anyscale_docker_container import AnyscaleDockerContainer from ci.ray_ci.container import ( @@ -14,6 +13,8 @@ ) from ci.ray_ci.test_base import RayCITestBase +from ray_release.configs.global_config import get_global_config + class TestAnyscaleDockerContainer(RayCITestBase): cmds = [] diff --git a/ci/ray_ci/test_linux_tester_container.py b/ci/ray_ci/test_linux_tester_container.py index 8fc7c1842680..2b3b833f230c 100644 --- a/ci/ray_ci/test_linux_tester_container.py +++ b/ci/ray_ci/test_linux_tester_container.py @@ -7,13 +7,14 @@ from unittest import mock import pytest -from ray_release.configs.global_config import get_global_config from ci.ray_ci.container import _DOCKER_ECR_REPO from ci.ray_ci.linux_tester_container import LinuxTesterContainer from ci.ray_ci.tester_container import RUN_PER_FLAKY_TEST from ci.ray_ci.utils import chunk_into_n, ci_init +from ray_release.configs.global_config import get_global_config + ci_init() diff --git a/ci/ray_ci/test_ray_docker_container.py b/ci/ray_ci/test_ray_docker_container.py index 57a097195170..a0280936f2f7 100644 --- a/ci/ray_ci/test_ray_docker_container.py +++ b/ci/ray_ci/test_ray_docker_container.py @@ -5,7 +5,6 @@ from unittest import mock import pytest -from ray_release.configs.global_config import get_global_config from ci.ray_ci.configs import DEFAULT_PYTHON_VERSION from ci.ray_ci.container import _DOCKER_ECR_REPO @@ -14,6 +13,8 @@ from ci.ray_ci.test_base import RayCITestBase from ci.ray_ci.utils import RAY_VERSION +from ray_release.configs.global_config import get_global_config + class TestRayDockerContainer(RayCITestBase): cmds = [] diff --git a/ci/ray_ci/test_tester.py b/ci/ray_ci/test_tester.py index 4f3e8ce06fb6..6fdad0992d8f 100644 --- a/ci/ray_ci/test_tester.py +++ b/ci/ray_ci/test_tester.py @@ -5,7 +5,6 @@ from unittest import mock import pytest -from ray_release.test import Test, TestState from ci.ray_ci.linux_tester_container import LinuxTesterContainer from ci.ray_ci.tester import ( @@ -19,6 +18,8 @@ ) from ci.ray_ci.windows_tester_container import WindowsTesterContainer +from ray_release.test import Test, TestState + def _stub_test(val: dict) -> Test: test = Test( diff --git a/ci/ray_ci/test_utils.py b/ci/ray_ci/test_utils.py index 787f3f308bcd..0e1dd4183f93 100644 --- a/ci/ray_ci/test_utils.py +++ b/ci/ray_ci/test_utils.py @@ -5,7 +5,6 @@ from unittest import mock import pytest -from ray_release.test import Test from ci.ray_ci.utils import ( chunk_into_n, @@ -14,6 +13,8 @@ get_flaky_test_names, ) +from ray_release.test import Test + def test_chunk_into_n() -> None: assert chunk_into_n([1, 2, 3, 4, 5], 2) == [[1, 2, 3], [4, 5]] diff --git a/ci/ray_ci/tester.py b/ci/ray_ci/tester.py index 41ccc909a4a9..90fbc06a1ccd 100644 --- a/ci/ray_ci/tester.py +++ b/ci/ray_ci/tester.py @@ -4,7 +4,6 @@ import click import yaml -from ray_release.test import Test, TestState from ci.ray_ci.builder_container import BuilderContainer from ci.ray_ci.configs import ( @@ -19,6 +18,8 @@ from ci.ray_ci.utils import ci_init, ecr_docker_login from ci.ray_ci.windows_tester_container import WindowsTesterContainer +from ray_release.test import Test, TestState + CUDA_COPYRIGHT = """ ========== == CUDA == diff --git a/ci/ray_ci/tester_container.py b/ci/ray_ci/tester_container.py index 0e91ee58a5d0..118a5eebb6ba 100644 --- a/ci/ray_ci/tester_container.py +++ b/ci/ray_ci/tester_container.py @@ -8,13 +8,13 @@ from os import listdir, path from typing import List, Optional, Tuple +from ci.ray_ci.container import Container +from ci.ray_ci.utils import chunk_into_n, logger, shard_tests + from ray_release.configs.global_config import get_global_config from ray_release.test import Test, TestResult from ray_release.test_automation.ci_state_machine import CITestStateMachine -from ci.ray_ci.container import Container -from ci.ray_ci.utils import chunk_into_n, logger, shard_tests - # We will run each flaky test this number of times per CI job independent of pass/fail. RUN_PER_FLAKY_TEST = 1 diff --git a/ci/ray_ci/utils.py b/ci/ray_ci/utils.py index c9ab06a2c207..fe83e1589d40 100644 --- a/ci/ray_ci/utils.py +++ b/ci/ray_ci/utils.py @@ -9,12 +9,13 @@ from typing import List import boto3 + +import ci.ray_ci.bazel_sharding as bazel_sharding + from ray_release.bazel import bazel_runfile from ray_release.configs.global_config import init_global_config from ray_release.test import Test, TestState -import ci.ray_ci.bazel_sharding as bazel_sharding - GLOBAL_CONFIG_FILE = ( os.environ.get("RAYCI_GLOBAL_CONFIG") or "ci/ray_ci/oss_config.yaml" ) diff --git a/pyproject.toml b/pyproject.toml index c8bfb82794d6..ac6f4428220b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,7 +48,7 @@ avoid-escape = false [tool.ruff.lint.isort] combine-as-imports = true section-order = ["future", "standard-library", "third-party", "first-party", "local-folder", "afterray"] -known-local-folder = ["ray"] +known-local-folder = ["ray", "ray_release"] known-third-party = ["grpc"] [tool.ruff.lint.isort.sections] @@ -65,7 +65,7 @@ afterray = ["psutil", "setproctitle"] "python/ray/__init__.py" = ["I"] "python/ray/dag/__init__.py" = ["I"] "python/ray/air/__init__.py" = ["I"] -"release/*" = ["I"] +"release/*_tests/*.py" = ["I"] # TODO(matthewdeng): Remove this line "python/ray/tune/__init__.py" = ["I"] diff --git a/release/benchmark-worker-startup/benchmark_worker_startup.py b/release/benchmark-worker-startup/benchmark_worker_startup.py index 67ae1e3c05f3..da4e406571e5 100755 --- a/release/benchmark-worker-startup/benchmark_worker_startup.py +++ b/release/benchmark-worker-startup/benchmark_worker_startup.py @@ -40,17 +40,18 @@ measurements. """ -from collections import defaultdict -from dataclasses import dataclass -from ray._private.test_utils import safe_write_to_results_json -from ray.job_submission import JobSubmissionClient, JobStatus import argparse import asyncio import random -import ray import statistics import subprocess import sys +from collections import defaultdict +from dataclasses import dataclass + +import ray +from ray._private.test_utils import safe_write_to_results_json +from ray.job_submission import JobStatus, JobSubmissionClient def main( diff --git a/release/benchmark-worker-startup/test_single_configuration.py b/release/benchmark-worker-startup/test_single_configuration.py index cc4956492da8..61bb15c89d28 100755 --- a/release/benchmark-worker-startup/test_single_configuration.py +++ b/release/benchmark-worker-startup/test_single_configuration.py @@ -5,10 +5,11 @@ """ import argparse -import ray import sys import time +import ray + @ray.remote class Actor: diff --git a/release/benchmarks/distributed/test_many_actors.py b/release/benchmarks/distributed/test_many_actors.py index 6856d063bc77..13031d9602da 100644 --- a/release/benchmarks/distributed/test_many_actors.py +++ b/release/benchmarks/distributed/test_many_actors.py @@ -1,11 +1,12 @@ import os -import ray -import ray._common.test_utils -import ray._private.test_utils as test_utils import time -import tqdm +import tqdm from many_nodes_tests.dashboard_test import DashboardTestAtScale + +import ray +import ray._common.test_utils +import ray._private.test_utils as test_utils from ray._private.state_api_test_utils import summarize_worker_startup_time is_smoke_test = True diff --git a/release/benchmarks/distributed/test_many_pgs.py b/release/benchmarks/distributed/test_many_pgs.py index 6b1d28016359..1a8ab9566e87 100644 --- a/release/benchmarks/distributed/test_many_pgs.py +++ b/release/benchmarks/distributed/test_many_pgs.py @@ -1,12 +1,14 @@ import os +import time + +import tqdm +from many_nodes_tests.dashboard_test import DashboardTestAtScale + import ray import ray._common.test_utils import ray._private.test_utils as test_utils from ray.util.placement_group import placement_group, remove_placement_group from ray.util.scheduling_strategies import PlacementGroupSchedulingStrategy -from many_nodes_tests.dashboard_test import DashboardTestAtScale -import time -import tqdm is_smoke_test = True if "SMOKE_TEST" in os.environ: diff --git a/release/benchmarks/distributed/test_many_tasks.py b/release/benchmarks/distributed/test_many_tasks.py index 92e8140be8f9..e140f335d186 100644 --- a/release/benchmarks/distributed/test_many_tasks.py +++ b/release/benchmarks/distributed/test_many_tasks.py @@ -1,17 +1,18 @@ +import time + import click +import tqdm +from many_nodes_tests.dashboard_test import DashboardTestAtScale + import ray import ray._common.test_utils import ray._private.test_utils as test_utils -import time -import tqdm - -from ray.util.state import summarize_tasks -from many_nodes_tests.dashboard_test import DashboardTestAtScale from ray._private.state_api_test_utils import ( StateAPICallSpec, periodic_invoke_state_apis_with_actor, summarize_worker_startup_time, ) +from ray.util.state import summarize_tasks sleep_time = 300 diff --git a/release/benchmarks/distributed/test_scheduling.py b/release/benchmarks/distributed/test_scheduling.py index 619a6efea0ee..ea6fbaeee175 100644 --- a/release/benchmarks/distributed/test_scheduling.py +++ b/release/benchmarks/distributed/test_scheduling.py @@ -1,9 +1,10 @@ -import ray import argparse -from time import time, sleep from math import floor -from ray._private.test_utils import safe_write_to_results_json +from time import sleep, time + +import ray import ray._private.test_utils as test_utils +from ray._private.test_utils import safe_write_to_results_json @ray.remote diff --git a/release/benchmarks/object_store/test_large_objects.py b/release/benchmarks/object_store/test_large_objects.py index a7a7e614b1c1..9f0123315a05 100644 --- a/release/benchmarks/object_store/test_large_objects.py +++ b/release/benchmarks/object_store/test_large_objects.py @@ -1,12 +1,11 @@ -import numpy as np - -import ray - import json import os from time import perf_counter + +import numpy as np from tqdm import tqdm +import ray NUM_NODES = 9 OBJECT_SIZE = 2**32 diff --git a/release/benchmarks/object_store/test_object_store.py b/release/benchmarks/object_store/test_object_store.py index 302514223709..be49ddf0257d 100644 --- a/release/benchmarks/object_store/test_object_store.py +++ b/release/benchmarks/object_store/test_object_store.py @@ -1,13 +1,13 @@ -import numpy as np - -import ray -import ray.autoscaler.sdk - import json import os from time import perf_counter + +import numpy as np from tqdm import tqdm +import ray +import ray.autoscaler.sdk + NUM_NODES = 50 OBJECT_SIZE = 2**30 diff --git a/release/benchmarks/object_store/test_small_objects.py b/release/benchmarks/object_store/test_small_objects.py index 046b4d5c3b89..c3fe2c82d44d 100644 --- a/release/benchmarks/object_store/test_small_objects.py +++ b/release/benchmarks/object_store/test_small_objects.py @@ -1,8 +1,10 @@ -import ray -import numpy as np -import time -import os import json +import os +import time + +import numpy as np + +import ray def test_small_objects_many_to_one(): diff --git a/release/benchmarks/single_node/test_single_node.py b/release/benchmarks/single_node/test_single_node.py index 03de028c365d..09db8a463331 100644 --- a/release/benchmarks/single_node/test_single_node.py +++ b/release/benchmarks/single_node/test_single_node.py @@ -1,14 +1,15 @@ -import numpy as np +import json +import os import time +from time import perf_counter + +import numpy as np +from tqdm import tqdm, trange + import ray import ray.autoscaler.sdk from ray._common.test_utils import Semaphore -import json -import os -from time import perf_counter -from tqdm import trange, tqdm - MAX_ARGS = 10000 MAX_RETURNS = 3000 MAX_RAY_GET_ARGS = 10000 diff --git a/release/dashboard/mem_check.py b/release/dashboard/mem_check.py index e4ea8b313e38..eca246c6ee6f 100644 --- a/release/dashboard/mem_check.py +++ b/release/dashboard/mem_check.py @@ -1,17 +1,16 @@ import argparse -import time -import os import json +import os +import time import ray - from ray._private.memory_monitor import MemoryMonitor, get_top_n_memory_usage from ray._private.test_utils import get_system_metric_for_component -from ray.job_submission import JobSubmissionClient, JobStatus from ray.dashboard.modules.metrics.metrics_head import ( DEFAULT_PROMETHEUS_HOST, PROMETHEUS_HOST_ENV_VAR, ) +from ray.job_submission import JobStatus, JobSubmissionClient # Initialize ray to avoid autosuspend. addr = ray.init() diff --git a/release/microbenchmark/experimental/compiled_graph_gpu_microbenchmark.py b/release/microbenchmark/experimental/compiled_graph_gpu_microbenchmark.py index e6771e26673c..7894684379de 100644 --- a/release/microbenchmark/experimental/compiled_graph_gpu_microbenchmark.py +++ b/release/microbenchmark/experimental/compiled_graph_gpu_microbenchmark.py @@ -1,23 +1,22 @@ # coding: utf-8 -import logging -import torch -import ray.cloudpickle as pickle import io -import cupy -import numpy as np -import time -import os import json +import logging +import os import socket +import time + +import cupy +import numpy as np +import torch import ray -from ray.air._internal import torch_utils +import ray.cloudpickle as pickle import ray.cluster_utils -from ray.dag import InputNode, DAGContext -from ray.util.collective.collective_group import nccl_util - from ray._private.ray_microbenchmark_helpers import timeit - +from ray.air._internal import torch_utils +from ray.dag import DAGContext, InputNode +from ray.util.collective.collective_group import nccl_util logger = logging.getLogger(__name__) diff --git a/release/microbenchmark/experimental/gpu_object_microbenchmark.py b/release/microbenchmark/experimental/gpu_object_microbenchmark.py index c31392f0ff1b..05155812280e 100644 --- a/release/microbenchmark/experimental/gpu_object_microbenchmark.py +++ b/release/microbenchmark/experimental/gpu_object_microbenchmark.py @@ -1,17 +1,18 @@ import argparse +import json import os -from typing import Tuple, Optional +from dataclasses import dataclass +from typing import Optional, Tuple import numpy as np import torch + import ray -import json from ray._private.ray_microbenchmark_helpers import timeit -from ray.experimental.collective import create_collective_group from ray._private.test_utils import ( kill_actor_and_wait_for_failure, ) -from dataclasses import dataclass +from ray.experimental.collective import create_collective_group DTYPE = torch.float16 SHAPE = [(1,), (1_000,), (1_000_000,), (100_000_000,)] diff --git a/release/microbenchmark/run_microbenchmark.py b/release/microbenchmark/run_microbenchmark.py index b38a761cdde4..2df4b9122d46 100644 --- a/release/microbenchmark/run_microbenchmark.py +++ b/release/microbenchmark/run_microbenchmark.py @@ -1,8 +1,7 @@ +import argparse import json import os -import argparse - def to_dict_key(key: str): for r in [" ", ":", "-"]: diff --git a/release/ray_release/alerts/default.py b/release/ray_release/alerts/default.py index 4c5c894716aa..018bba865c8d 100644 --- a/release/ray_release/alerts/default.py +++ b/release/ray_release/alerts/default.py @@ -1,7 +1,7 @@ from typing import Optional -from ray_release.test import Test from ray_release.result import Result, ResultStatus +from ray_release.test import Test def handle_result( diff --git a/release/ray_release/alerts/handle.py b/release/ray_release/alerts/handle.py index c717d53d890a..523b889bef9e 100644 --- a/release/ray_release/alerts/handle.py +++ b/release/ray_release/alerts/handle.py @@ -1,15 +1,13 @@ -from ray_release.test import Test -from ray_release.exception import ReleaseTestConfigError, ResultsAlert -from ray_release.logger import logger -from ray_release.result import Result - from ray_release.alerts import ( default, long_running_tests, tune_tests, xgboost_tests, ) - +from ray_release.exception import ReleaseTestConfigError, ResultsAlert +from ray_release.logger import logger +from ray_release.result import Result +from ray_release.test import Test # The second bit in the tuple indicates whether a result is required to pass the alert. # If true, the release test will throw a FetchResultError when result cannot be fetched diff --git a/release/ray_release/alerts/long_running_tests.py b/release/ray_release/alerts/long_running_tests.py index 5af776f55f98..5fa66e34376f 100644 --- a/release/ray_release/alerts/long_running_tests.py +++ b/release/ray_release/alerts/long_running_tests.py @@ -1,7 +1,7 @@ from typing import Optional -from ray_release.test import Test from ray_release.result import Result +from ray_release.test import Test def handle_result( diff --git a/release/ray_release/alerts/tune_tests.py b/release/ray_release/alerts/tune_tests.py index 20daf9da5e59..7af70cc701cb 100644 --- a/release/ray_release/alerts/tune_tests.py +++ b/release/ray_release/alerts/tune_tests.py @@ -1,10 +1,10 @@ from typing import Optional -from ray_release.test import Test from ray_release.result import ( Result, ResultStatus, ) +from ray_release.test import Test def handle_result( diff --git a/release/ray_release/alerts/xgboost_tests.py b/release/ray_release/alerts/xgboost_tests.py index 1d667a1ff2f3..c2c6d6e554f1 100644 --- a/release/ray_release/alerts/xgboost_tests.py +++ b/release/ray_release/alerts/xgboost_tests.py @@ -1,7 +1,7 @@ from typing import Optional -from ray_release.test import Test from ray_release.result import Result +from ray_release.test import Test def handle_result( diff --git a/release/ray_release/anyscale_util.py b/release/ray_release/anyscale_util.py index 3e98f28c21e6..53309abf6f7d 100644 --- a/release/ray_release/anyscale_util.py +++ b/release/ray_release/anyscale_util.py @@ -1,8 +1,8 @@ -from typing import Any, Dict, TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Dict, Optional +from ray_release.exception import ClusterEnvCreateError from ray_release.logger import logger from ray_release.util import get_anyscale_sdk -from ray_release.exception import ClusterEnvCreateError if TYPE_CHECKING: from anyscale.sdk.anyscale_client.sdk import AnyscaleSDK diff --git a/release/ray_release/aws.py b/release/ray_release/aws.py index bfe8c8c0d0e3..6bbbdd0f9892 100644 --- a/release/ray_release/aws.py +++ b/release/ray_release/aws.py @@ -1,14 +1,15 @@ import io import os -import time import sys -import requests +import time from copy import deepcopy from typing import Optional -from aws_requests_auth.boto_utils import BotoAWSRequestsAuth import boto3 +import requests +from aws_requests_auth.boto_utils import BotoAWSRequestsAuth from botocore.exceptions import ClientError + from ray_release.logger import logger from ray_release.util import DeferredEnvVar diff --git a/release/ray_release/buildkite/concurrency.py b/release/ray_release/buildkite/concurrency.py index ae6ecd046c91..f011f36698f4 100644 --- a/release/ray_release/buildkite/concurrency.py +++ b/release/ray_release/buildkite/concurrency.py @@ -1,11 +1,11 @@ import csv from collections import namedtuple -from typing import Tuple, Optional, Dict +from typing import Dict, Optional, Tuple from ray_release.bazel import bazel_runfile -from ray_release.test import Test -from ray_release.template import load_test_cluster_compute from ray_release.logger import logger +from ray_release.template import load_test_cluster_compute +from ray_release.test import Test # Keep 10% for the buffer. limit = int(15784 * 0.9) diff --git a/release/ray_release/buildkite/filter.py b/release/ray_release/buildkite/filter.py index c8fbbbc4f5d4..f7cc8cca74b2 100644 --- a/release/ray_release/buildkite/filter.py +++ b/release/ray_release/buildkite/filter.py @@ -1,12 +1,12 @@ -import re import copy +import re from collections import defaultdict -from typing import List, Optional, Tuple, Dict, Any +from typing import Any, Dict, List, Optional, Tuple from ray_release.buildkite.settings import Frequency, get_frequency +from ray_release.configs.global_config import get_global_config from ray_release.test import Test from ray_release.test_automation.state_machine import TestStateMachine -from ray_release.configs.global_config import get_global_config def _unflattened_lookup(lookup: Dict, flat_key: str, delimiter: str = "/") -> Any: diff --git a/release/ray_release/buildkite/output.py b/release/ray_release/buildkite/output.py index 9f3a4af8b651..1b73ef6c9bcd 100644 --- a/release/ray_release/buildkite/output.py +++ b/release/ray_release/buildkite/output.py @@ -1,5 +1,5 @@ import os -from typing import Optional, Callable +from typing import Callable, Optional def buildkite_echo(message: str, print_fn: Callable[[str], None] = print): diff --git a/release/ray_release/buildkite/settings.py b/release/ray_release/buildkite/settings.py index 52a424b5c6b4..716b7d5b57d2 100644 --- a/release/ray_release/buildkite/settings.py +++ b/release/ray_release/buildkite/settings.py @@ -1,7 +1,7 @@ import enum import os import subprocess -from typing import Optional, Dict, Tuple +from typing import Dict, Optional, Tuple from ray_release.exception import ReleaseTestConfigError from ray_release.logger import logger diff --git a/release/ray_release/buildkite/step.py b/release/ray_release/buildkite/step.py index 7a59270c9867..263d08384927 100644 --- a/release/ray_release/buildkite/step.py +++ b/release/ray_release/buildkite/step.py @@ -1,23 +1,23 @@ import copy import os -from typing import Any, Dict, Optional, List, Tuple +from typing import Any, Dict, List, Optional, Tuple from ray_release.aws import RELEASE_AWS_BUCKET from ray_release.buildkite.concurrency import get_concurrency_group -from ray_release.test import Test, TestState from ray_release.config import ( DEFAULT_ANYSCALE_PROJECT, DEFAULT_CLOUD_ID, as_smoke_test, get_test_project_id, ) -from ray_release.env import DEFAULT_ENVIRONMENT, load_environment -from ray_release.template import get_test_env_var -from ray_release.util import DeferredEnvVar from ray_release.custom_byod_build_init_helper import ( generate_custom_build_step_key, get_prerequisite_step, ) +from ray_release.env import DEFAULT_ENVIRONMENT, load_environment +from ray_release.template import get_test_env_var +from ray_release.test import Test, TestState +from ray_release.util import DeferredEnvVar DEFAULT_ARTIFACTS_DIR_HOST = "/tmp/ray_release_test_artifacts" diff --git a/release/ray_release/byod/build.py b/release/ray_release/byod/build.py index 9da21eca05a1..d14677cc19b0 100644 --- a/release/ray_release/byod/build.py +++ b/release/ray_release/byod/build.py @@ -1,15 +1,14 @@ -from typing import List, Optional, Dict - import os import subprocess import sys +from typing import Dict, List, Optional from ray_release.config import RELEASE_PACKAGE_DIR from ray_release.logger import logger from ray_release.test import ( Test, ) -from ray_release.util import AZURE_REGISTRY_NAME, ANYSCALE_RAY_IMAGE_PREFIX +from ray_release.util import ANYSCALE_RAY_IMAGE_PREFIX, AZURE_REGISTRY_NAME bazel_workspace_dir = os.environ.get("BUILD_WORKSPACE_DIRECTORY", "") diff --git a/release/ray_release/cloud_util.py b/release/ray_release/cloud_util.py index 9560b25e241a..745da2120b77 100644 --- a/release/ray_release/cloud_util.py +++ b/release/ray_release/cloud_util.py @@ -1,13 +1,13 @@ +import os import random +import shutil import string -from typing import Optional, Tuple import time -import os -import shutil +from typing import Optional, Tuple from urllib.parse import urlparse -from azure.storage.blob import BlobServiceClient from azure.identity import DefaultAzureCredential +from azure.storage.blob import BlobServiceClient from ray_release.logger import logger diff --git a/release/ray_release/cluster_manager/cluster_manager.py b/release/ray_release/cluster_manager/cluster_manager.py index 3f42da467f91..6ffe5ca8447c 100644 --- a/release/ray_release/cluster_manager/cluster_manager.py +++ b/release/ray_release/cluster_manager/cluster_manager.py @@ -2,16 +2,16 @@ import time from typing import TYPE_CHECKING, Any, Dict, Optional +from ray_release.anyscale_util import LAST_LOGS_LENGTH, get_project_name from ray_release.aws import ( - add_tags_to_aws_config, RELEASE_AWS_RESOURCE_TYPES_TO_TRACK_FOR_BILLING, + add_tags_to_aws_config, ) -from ray_release.anyscale_util import get_project_name, LAST_LOGS_LENGTH from ray_release.config import DEFAULT_AUTOSUSPEND_MINS, DEFAULT_MAXIMUM_UPTIME_MINS -from ray_release.test import Test from ray_release.exception import CloudInfoError -from ray_release.util import anyscale_cluster_url, dict_hash, get_anyscale_sdk from ray_release.logger import logger +from ray_release.test import Test +from ray_release.util import anyscale_cluster_url, dict_hash, get_anyscale_sdk if TYPE_CHECKING: from anyscale.sdk.anyscale_client.sdk import AnyscaleSDK diff --git a/release/ray_release/cluster_manager/full.py b/release/ray_release/cluster_manager/full.py index 1766e10142da..e2142dd3f602 100644 --- a/release/ray_release/cluster_manager/full.py +++ b/release/ray_release/cluster_manager/full.py @@ -1,17 +1,17 @@ import time +from ray_release.cluster_manager.minimal import MinimalClusterManager from ray_release.exception import ( ClusterCreationError, ClusterStartupError, - ClusterStartupTimeout, ClusterStartupFailed, + ClusterStartupTimeout, ) from ray_release.logger import logger -from ray_release.cluster_manager.minimal import MinimalClusterManager from ray_release.util import ( - format_link, anyscale_cluster_url, exponential_backoff_retry, + format_link, ) REPORT_S = 30.0 diff --git a/release/ray_release/cluster_manager/minimal.py b/release/ray_release/cluster_manager/minimal.py index 8d3f9517fe60..f172a403068e 100644 --- a/release/ray_release/cluster_manager/minimal.py +++ b/release/ray_release/cluster_manager/minimal.py @@ -1,19 +1,19 @@ import time from ray_release.anyscale_util import create_cluster_env_from_image +from ray_release.cluster_manager.cluster_manager import ClusterManager from ray_release.exception import ( + ClusterComputeCreateError, ClusterEnvBuildError, ClusterEnvBuildTimeout, ClusterEnvCreateError, - ClusterComputeCreateError, ) from ray_release.logger import logger -from ray_release.cluster_manager.cluster_manager import ClusterManager +from ray_release.retry import retry from ray_release.util import ( - format_link, anyscale_cluster_env_build_url, + format_link, ) -from ray_release.retry import retry REPORT_S = 30.0 diff --git a/release/ray_release/command_runner/_anyscale_job_wrapper.py b/release/ray_release/command_runner/_anyscale_job_wrapper.py index a0211cb31c47..22d94658b1a3 100644 --- a/release/ray_release/command_runner/_anyscale_job_wrapper.py +++ b/release/ray_release/command_runner/_anyscale_job_wrapper.py @@ -7,16 +7,16 @@ """ import argparse -import time +import json +import logging +import multiprocessing import os -from pathlib import Path import subprocess -import multiprocessing -import json import sys -import logging +import time +from pathlib import Path +from typing import List, Optional, Tuple from urllib.parse import urlparse -from typing import Optional, List, Tuple AZURE_STORAGE_ACCOUNT = "rayreleasetests" OUTPUT_JSON_FILENAME = "output.json" diff --git a/release/ray_release/command_runner/_prometheus_metrics.py b/release/ray_release/command_runner/_prometheus_metrics.py index 453abf0124bf..899fc2ee1044 100644 --- a/release/ray_release/command_runner/_prometheus_metrics.py +++ b/release/ray_release/command_runner/_prometheus_metrics.py @@ -1,13 +1,14 @@ +import argparse import asyncio -import aiohttp +import json +import logging import os import time import traceback -from urllib.parse import quote from typing import Optional -import logging -import json -import argparse +from urllib.parse import quote + +import aiohttp logger = logging.getLogger(__name__) diff --git a/release/ray_release/command_runner/anyscale_job_runner.py b/release/ray_release/command_runner/anyscale_job_runner.py index 9d660a22a87a..42bd61295988 100644 --- a/release/ray_release/command_runner/anyscale_job_runner.py +++ b/release/ray_release/command_runner/anyscale_job_runner.py @@ -1,37 +1,37 @@ import json import os import re -import tempfile import shlex -from typing import TYPE_CHECKING, Any, Dict, Optional, List +import tempfile +from typing import TYPE_CHECKING, Any, Dict, List, Optional -from ray_release.cluster_manager.cluster_manager import ClusterManager from ray_release.cloud_util import ( convert_abfss_uri_to_https, generate_tmp_cloud_storage_path, upload_working_dir_to_azure, ) +from ray_release.cluster_manager.cluster_manager import ClusterManager from ray_release.command_runner.job_runner import JobRunner from ray_release.exception import ( - TestCommandTimeout, - TestCommandError, - JobOutOfRetriesError, - PrepareCommandError, - PrepareCommandTimeout, - JobBrokenError, FetchResultError, - JobTerminatedBeforeStartError, + JobBrokenError, JobNoLogsError, + JobOutOfRetriesError, + JobTerminatedBeforeStartError, JobTerminatedError, + PrepareCommandError, + PrepareCommandTimeout, + TestCommandError, + TestCommandTimeout, ) from ray_release.file_manager.job_file_manager import JobFileManager from ray_release.job_manager import AnyscaleJobManager from ray_release.logger import logger from ray_release.util import ( - get_anyscale_sdk, - S3_CLOUD_STORAGE, AZURE_CLOUD_STORAGE, AZURE_STORAGE_CONTAINER, + S3_CLOUD_STORAGE, + get_anyscale_sdk, ) if TYPE_CHECKING: diff --git a/release/ray_release/command_runner/command_runner.py b/release/ray_release/command_runner/command_runner.py index 0918b886d1f2..f42f73c0d3da 100644 --- a/release/ray_release/command_runner/command_runner.py +++ b/release/ray_release/command_runner/command_runner.py @@ -1,13 +1,14 @@ -import os import abc -from typing import Dict, Any, Optional, List +import os +from typing import Any, Dict, List, Optional + +from click.exceptions import ClickException from ray_release.cluster_manager.cluster_manager import ClusterManager from ray_release.file_manager.file_manager import FileManager +from ray_release.logger import logger from ray_release.reporter.artifacts import DEFAULT_ARTIFACTS_DIR from ray_release.util import exponential_backoff_retry -from ray_release.logger import logger -from click.exceptions import ClickException class CommandRunner(abc.ABC): diff --git a/release/ray_release/command_runner/job_runner.py b/release/ray_release/command_runner/job_runner.py index 5b3706743ee6..3f3c19c5b671 100644 --- a/release/ray_release/command_runner/job_runner.py +++ b/release/ray_release/command_runner/job_runner.py @@ -10,8 +10,8 @@ ClusterNodesWaitTimeout, CommandError, CommandTimeout, - LogsError, FetchResultError, + LogsError, ) from ray_release.file_manager.file_manager import FileManager from ray_release.job_manager import JobManager diff --git a/release/ray_release/config.py b/release/ray_release/config.py index 6d865e803fdd..7fcd5da3c44b 100644 --- a/release/ray_release/config.py +++ b/release/ray_release/config.py @@ -7,6 +7,7 @@ import jsonschema import yaml + from ray_release.anyscale_util import find_cloud_by_name from ray_release.bazel import bazel_runfile from ray_release.exception import ReleaseTestCLIError, ReleaseTestConfigError diff --git a/release/ray_release/custom_byod_build_init_helper.py b/release/ray_release/custom_byod_build_init_helper.py index 174021598cc2..684050230d9a 100644 --- a/release/ray_release/custom_byod_build_init_helper.py +++ b/release/ray_release/custom_byod_build_init_helper.py @@ -1,11 +1,13 @@ -from typing import List, Tuple, Dict, Optional -import yaml +import hashlib import os +from typing import Dict, List, Optional, Tuple + +import yaml + from ray_release.configs.global_config import get_global_config from ray_release.logger import logger from ray_release.test import Test -from ray_release.util import AZURE_REGISTRY_NAME, ANYSCALE_RAY_IMAGE_PREFIX -import hashlib +from ray_release.util import ANYSCALE_RAY_IMAGE_PREFIX, AZURE_REGISTRY_NAME def generate_custom_build_step_key(image: str) -> str: diff --git a/release/ray_release/file_manager/job_file_manager.py b/release/ray_release/file_manager/job_file_manager.py index 3dd49b51cfe9..a639e3016f30 100644 --- a/release/ray_release/file_manager/job_file_manager.py +++ b/release/ray_release/file_manager/job_file_manager.py @@ -3,11 +3,12 @@ import sys import tempfile from typing import Optional -from azure.storage.blob import BlobServiceClient -from azure.identity import DefaultAzureCredential import boto3 +from azure.identity import DefaultAzureCredential +from azure.storage.blob import BlobServiceClient from google.cloud import storage + from ray_release.aws import RELEASE_AWS_BUCKET from ray_release.cloud_util import generate_tmp_cloud_storage_path from ray_release.cluster_manager.cluster_manager import ClusterManager @@ -16,13 +17,13 @@ from ray_release.job_manager import JobManager from ray_release.logger import logger from ray_release.util import ( - exponential_backoff_retry, - S3_CLOUD_STORAGE, - GS_CLOUD_STORAGE, - GS_BUCKET, AZURE_CLOUD_STORAGE, AZURE_STORAGE_ACCOUNT, AZURE_STORAGE_CONTAINER, + GS_BUCKET, + GS_CLOUD_STORAGE, + S3_CLOUD_STORAGE, + exponential_backoff_retry, ) diff --git a/release/ray_release/glue.py b/release/ray_release/glue.py index b50975414775..6ac83906961f 100644 --- a/release/ray_release/glue.py +++ b/release/ray_release/glue.py @@ -1,59 +1,59 @@ -import os import hashlib -import time -import traceback +import os import random import string -from typing import Optional, List, Tuple +import time +import traceback +from typing import List, Optional, Tuple from google.cloud import storage as gcs_storage from ray_release.alerts.handle import handle_result, require_result from ray_release.anyscale_util import ( + LAST_LOGS_LENGTH, create_cluster_env_from_image, get_cluster_name, get_custom_cluster_env_name, - LAST_LOGS_LENGTH, ) from ray_release.buildkite.output import buildkite_group, buildkite_open_last from ray_release.cloud_util import archive_directory from ray_release.cluster_manager.cluster_manager import ClusterManager from ray_release.cluster_manager.full import FullClusterManager from ray_release.cluster_manager.minimal import MinimalClusterManager -from ray_release.command_runner.job_runner import JobRunner -from ray_release.command_runner.command_runner import CommandRunner from ray_release.command_runner.anyscale_job_runner import AnyscaleJobRunner -from ray_release.job_manager.kuberay_job_manager import KubeRayJobManager -from ray_release.test import Test +from ray_release.command_runner.command_runner import CommandRunner +from ray_release.command_runner.job_runner import JobRunner from ray_release.config import ( + DEFAULT_AUTOSUSPEND_MINS, DEFAULT_BUILD_TIMEOUT, DEFAULT_CLUSTER_TIMEOUT, DEFAULT_COMMAND_TIMEOUT, DEFAULT_WAIT_FOR_NODES_TIMEOUT, - DEFAULT_AUTOSUSPEND_MINS, ) -from ray_release.template import load_test_cluster_compute, get_working_dir from ray_release.exception import ( - ReleaseTestConfigError, - ReleaseTestSetupError, + ClusterEnvCreateError, CommandError, - PrepareCommandError, CommandTimeout, + PrepareCommandError, PrepareCommandTimeout, + ReleaseTestConfigError, + ReleaseTestSetupError, TestCommandError, TestCommandTimeout, - ClusterEnvCreateError, ) from ray_release.file_manager.job_file_manager import JobFileManager +from ray_release.job_manager.kuberay_job_manager import KubeRayJobManager +from ray_release.kuberay_util import convert_cluster_compute_to_kuberay_compute_config from ray_release.logger import logger from ray_release.reporter.reporter import Reporter from ray_release.result import Result, ResultStatus, handle_exception from ray_release.signal_handling import ( - setup_signal_handling, - reset_signal_handling, register_handler, + reset_signal_handling, + setup_signal_handling, ) -from ray_release.kuberay_util import convert_cluster_compute_to_kuberay_compute_config +from ray_release.template import get_working_dir, load_test_cluster_compute +from ray_release.test import Test type_str_to_command_runner = { "job": JobRunner, diff --git a/release/ray_release/job_manager/__init__.py b/release/ray_release/job_manager/__init__.py index 03e82834b840..5018481df4c0 100644 --- a/release/ray_release/job_manager/__init__.py +++ b/release/ray_release/job_manager/__init__.py @@ -1,4 +1,4 @@ -from ray_release.job_manager.job_manager import JobManager from ray_release.job_manager.anyscale_job_manager import AnyscaleJobManager +from ray_release.job_manager.job_manager import JobManager __all__ = ["AnyscaleJobManager", "JobManager"] diff --git a/release/ray_release/job_manager/anyscale_job_manager.py b/release/ray_release/job_manager/anyscale_job_manager.py index 394b5ec515f6..3a875ad8d964 100644 --- a/release/ray_release/job_manager/anyscale_job_manager.py +++ b/release/ray_release/job_manager/anyscale_job_manager.py @@ -1,7 +1,6 @@ import time from contextlib import contextmanager -from typing import Any, Dict, Optional, Tuple, List - +from typing import Any, Dict, List, Optional, Tuple import anyscale from anyscale.sdk.anyscale_client.models import ( @@ -9,18 +8,19 @@ CreateProductionJobConfig, HaJobStates, ) + from ray_release.anyscale_util import get_cluster_name from ray_release.cluster_manager.cluster_manager import ClusterManager from ray_release.exception import ( CommandTimeout, - JobStartupTimeout, JobStartupFailed, + JobStartupTimeout, ) from ray_release.logger import logger from ray_release.signal_handling import register_handler, unregister_handler from ray_release.util import ( - exponential_backoff_retry, anyscale_job_url, + exponential_backoff_retry, format_link, ) diff --git a/release/ray_release/job_manager/kuberay_job_manager.py b/release/ray_release/job_manager/kuberay_job_manager.py index 938c243d59b2..189b25b36127 100644 --- a/release/ray_release/job_manager/kuberay_job_manager.py +++ b/release/ray_release/job_manager/kuberay_job_manager.py @@ -1,13 +1,15 @@ -from typing import Dict, Any, Optional, List, Tuple -from ray_release.logger import logger +import time +from typing import Any, Dict, List, Optional, Tuple + import boto3 import botocore.exceptions import requests -import time + from ray_release.exception import ( CommandTimeout, JobStartupTimeout, ) +from ray_release.logger import logger KUBERAY_SERVICE_SECRET_KEY_SECRET_NAME = "kuberay_service_secret_key" KUBERAY_SERVER_URL = "https://kuberaytest.anyscale.dev" diff --git a/release/ray_release/reporter/artifacts.py b/release/ray_release/reporter/artifacts.py index deeaffa6aae6..d20ce97df04b 100644 --- a/release/ray_release/reporter/artifacts.py +++ b/release/ray_release/reporter/artifacts.py @@ -2,10 +2,10 @@ import json import os -from ray_release.test import Test from ray_release.logger import logger from ray_release.reporter.reporter import Reporter from ray_release.result import Result +from ray_release.test import Test # Write to this directory. run_release_tests.sh will copy the content # overt to DEFAULT_ARTIFACTS_DIR_HOST diff --git a/release/ray_release/reporter/db.py b/release/ray_release/reporter/db.py index 1a490d2fd66a..d0b54b46f757 100644 --- a/release/ray_release/reporter/db.py +++ b/release/ray_release/reporter/db.py @@ -1,15 +1,15 @@ -import time import json import os +import time import boto3 from botocore.config import Config +from ray_release.log_aggregator import LogAggregator +from ray_release.logger import logger from ray_release.reporter.reporter import Reporter from ray_release.result import Result from ray_release.test import Test -from ray_release.logger import logger -from ray_release.log_aggregator import LogAggregator class DBReporter(Reporter): diff --git a/release/ray_release/reporter/log.py b/release/ray_release/reporter/log.py index 6bc91c12b284..a27dd700ff24 100644 --- a/release/ray_release/reporter/log.py +++ b/release/ray_release/reporter/log.py @@ -1,7 +1,7 @@ -from ray_release.test import Test from ray_release.logger import logger from ray_release.reporter.reporter import Reporter from ray_release.result import Result +from ray_release.test import Test from ray_release.util import format_link diff --git a/release/ray_release/reporter/ray_test_db.py b/release/ray_release/reporter/ray_test_db.py index 7a734a535c0a..90cffd0db4cf 100644 --- a/release/ray_release/reporter/ray_test_db.py +++ b/release/ray_release/reporter/ray_test_db.py @@ -2,11 +2,11 @@ import os from ray_release.configs.global_config import get_global_config +from ray_release.logger import logger from ray_release.reporter.reporter import Reporter from ray_release.result import Result, ResultStatus from ray_release.test import Test from ray_release.test_automation.release_state_machine import ReleaseTestStateMachine -from ray_release.logger import logger class RayTestDBReporter(Reporter): diff --git a/release/ray_release/reporter/reporter.py b/release/ray_release/reporter/reporter.py index fb0081c5097d..16815ffbcf6c 100644 --- a/release/ray_release/reporter/reporter.py +++ b/release/ray_release/reporter/reporter.py @@ -1,6 +1,6 @@ -from ray_release.test import Test -from ray_release.result import Result from ray_release.logger import logger +from ray_release.result import Result +from ray_release.test import Test class Reporter: diff --git a/release/ray_release/result.py b/release/ray_release/result.py index fca0fd9ac068..ea2d0d00e2cd 100644 --- a/release/ray_release/result.py +++ b/release/ray_release/result.py @@ -1,7 +1,7 @@ import enum import os from dataclasses import dataclass -from typing import Optional, Dict, Tuple +from typing import Dict, Optional, Tuple from ray_release.exception import ExitCode, ReleaseTestError diff --git a/release/ray_release/retry.py b/release/ray_release/retry.py index f5ac55ff23a4..dec0bd9be925 100644 --- a/release/ray_release/retry.py +++ b/release/ray_release/retry.py @@ -1,7 +1,7 @@ """Utils on retry.""" -from functools import wraps import time +from functools import wraps from typing import Tuple # Default configuration for retry. diff --git a/release/ray_release/scripts/build_pipeline.py b/release/ray_release/scripts/build_pipeline.py index a220fc72749e..c78b1465c71c 100644 --- a/release/ray_release/scripts/build_pipeline.py +++ b/release/ray_release/scripts/build_pipeline.py @@ -2,8 +2,8 @@ import os import shutil import sys -from typing import Tuple from pathlib import Path +from typing import Tuple import click @@ -11,8 +11,8 @@ from ray_release.buildkite.settings import get_pipeline_settings from ray_release.buildkite.step import get_step_for_test_group from ray_release.config import ( - read_and_validate_release_test_collection, RELEASE_TEST_CONFIG_FILES, + read_and_validate_release_test_collection, ) from ray_release.configs.global_config import init_global_config from ray_release.exception import ReleaseTestCLIError, ReleaseTestConfigError diff --git a/release/ray_release/scripts/custom_byod_build.py b/release/ray_release/scripts/custom_byod_build.py index 13988afab543..6f73a56e1db9 100644 --- a/release/ray_release/scripts/custom_byod_build.py +++ b/release/ray_release/scripts/custom_byod_build.py @@ -1,6 +1,8 @@ +from typing import Optional + import click + from ray_release.byod.build import build_anyscale_custom_byod_image -from typing import Optional @click.command() diff --git a/release/ray_release/scripts/custom_image_build_and_test_init.py b/release/ray_release/scripts/custom_image_build_and_test_init.py index bfc1160adb2d..94d59c1b931c 100644 --- a/release/ray_release/scripts/custom_image_build_and_test_init.py +++ b/release/ray_release/scripts/custom_image_build_and_test_init.py @@ -1,26 +1,27 @@ +import json import os -from typing import Tuple -from pathlib import Path -import sys import shutil -import json +import sys +from pathlib import Path +from typing import Tuple + import click from ray_release.buildkite.filter import filter_tests, group_tests from ray_release.buildkite.settings import ( + get_frequency, get_pipeline_settings, get_test_filters, - get_frequency, ) +from ray_release.buildkite.step import generate_block_step, get_step_for_test_group from ray_release.config import ( - read_and_validate_release_test_collection, RELEASE_TEST_CONFIG_FILES, + read_and_validate_release_test_collection, ) -from ray_release.buildkite.step import generate_block_step, get_step_for_test_group from ray_release.configs.global_config import init_global_config -from ray_release.exception import ReleaseTestConfigError, ReleaseTestCLIError -from ray_release.logger import logger from ray_release.custom_byod_build_init_helper import create_custom_build_yaml +from ray_release.exception import ReleaseTestCLIError, ReleaseTestConfigError +from ray_release.logger import logger _bazel_workspace_dir = os.environ.get("BUILD_WORKSPACE_DIRECTORY", "") PIPELINE_ARTIFACT_PATH = "/tmp/pipeline_artifacts" diff --git a/release/ray_release/scripts/get_aws_instance_information.py b/release/ray_release/scripts/get_aws_instance_information.py index 2bd434563f73..060313108f2d 100644 --- a/release/ray_release/scripts/get_aws_instance_information.py +++ b/release/ray_release/scripts/get_aws_instance_information.py @@ -1,6 +1,6 @@ import csv import sys -from typing import List, Tuple, Dict +from typing import Dict, List, Tuple import boto3 diff --git a/release/ray_release/scripts/get_test_summary.py b/release/ray_release/scripts/get_test_summary.py index ccb5066713b2..e7d1ccde5809 100644 --- a/release/ray_release/scripts/get_test_summary.py +++ b/release/ray_release/scripts/get_test_summary.py @@ -6,8 +6,8 @@ from ray_release.buildkite.concurrency import get_test_resources from ray_release.config import ( - read_and_validate_release_test_collection, RELEASE_TEST_CONFIG_FILES, + read_and_validate_release_test_collection, ) diff --git a/release/ray_release/scripts/ray_bisect.py b/release/ray_release/scripts/ray_bisect.py index 57d284cae974..f4ba21ca865a 100644 --- a/release/ray_release/scripts/ray_bisect.py +++ b/release/ray_release/scripts/ray_bisect.py @@ -1,24 +1,25 @@ -import click import copy -import subprocess -import os import json +import os +import subprocess import time -from typing import Dict, List, Set, Tuple from pathlib import Path +from typing import Dict, List, Set, Tuple + +import click from ray_release.bazel import bazel_runfile -from ray_release.logger import logger from ray_release.buildkite.step import get_step from ray_release.byod.build import ( build_anyscale_base_byod_images, build_anyscale_custom_byod_image, ) from ray_release.config import ( - read_and_validate_release_test_collection, RELEASE_TEST_CONFIG_FILES, + read_and_validate_release_test_collection, ) from ray_release.configs.global_config import init_global_config +from ray_release.logger import logger from ray_release.test import Test from ray_release.test_automation.release_state_machine import ReleaseTestStateMachine diff --git a/release/ray_release/scripts/run_release_test.py b/release/ray_release/scripts/run_release_test.py index 3d35e300ca2f..675dc39cf296 100644 --- a/release/ray_release/scripts/run_release_test.py +++ b/release/ray_release/scripts/run_release_test.py @@ -1,15 +1,17 @@ import os import sys -from typing import Optional, Tuple from pathlib import Path +from typing import Optional, Tuple import click + +from ray_release.anyscale_util import LAST_LOGS_LENGTH from ray_release.aws import maybe_fetch_api_token from ray_release.config import ( + RELEASE_TEST_CONFIG_FILES, as_smoke_test, find_test, read_and_validate_release_test_collection, - RELEASE_TEST_CONFIG_FILES, ) from ray_release.configs.global_config import init_global_config from ray_release.env import DEFAULT_ENVIRONMENT, load_environment, populate_os_env @@ -18,10 +20,9 @@ from ray_release.logger import logger from ray_release.reporter.artifacts import ArtifactsReporter from ray_release.reporter.db import DBReporter -from ray_release.reporter.ray_test_db import RayTestDBReporter from ray_release.reporter.log import LogReporter +from ray_release.reporter.ray_test_db import RayTestDBReporter from ray_release.result import Result -from ray_release.anyscale_util import LAST_LOGS_LENGTH @click.command() diff --git a/release/ray_release/template.py b/release/ray_release/template.py index 31cca890db37..0b0a7b62e6fd 100644 --- a/release/ray_release/template.py +++ b/release/ray_release/template.py @@ -1,7 +1,7 @@ import copy import datetime import os -from typing import Optional, Dict, TYPE_CHECKING +from typing import TYPE_CHECKING, Dict, Optional import jinja2 import yaml diff --git a/release/ray_release/test.py b/release/ray_release/test.py index a1fcfb120038..c7cd28821b10 100644 --- a/release/ray_release/test.py +++ b/release/ray_release/test.py @@ -1,14 +1,14 @@ import asyncio import concurrent.futures import enum +import json import os import platform import subprocess -import json import time -from itertools import chain -from typing import Awaitable, Optional, List, Dict, Set from dataclasses import dataclass +from itertools import chain +from typing import Awaitable, Dict, List, Optional, Set import aioboto3 import boto3 @@ -17,11 +17,11 @@ from ray_release.aws import s3_put_rayci_test_data from ray_release.configs.global_config import get_global_config +from ray_release.logger import logger from ray_release.result import ( - ResultStatus, Result, + ResultStatus, ) -from ray_release.logger import logger from ray_release.util import ( ANYSCALE_RAY_IMAGE_PREFIX, dict_hash, diff --git a/release/ray_release/test_automation/ci_state_machine.py b/release/ray_release/test_automation/ci_state_machine.py index e83a3aa66c62..99c75f944d73 100644 --- a/release/ray_release/test_automation/ci_state_machine.py +++ b/release/ray_release/test_automation/ci_state_machine.py @@ -1,11 +1,10 @@ from typing import List +from ray_release.test import Test, TestResult, TestState from ray_release.test_automation.state_machine import ( - TestStateMachine, WEEKLY_RELEASE_BLOCKER_TAG, + TestStateMachine, ) -from ray_release.test import Test, TestState, TestResult - CONTINUOUS_FAILURE_TO_FLAKY = 3 # Number of continuous failures before flaky CONTINUOUS_PASSING_TO_PASSING = 10 # Number of continuous passing before passing diff --git a/release/ray_release/test_automation/release_state_machine.py b/release/ray_release/test_automation/release_state_machine.py index ac2f638f19b6..716bf82ad06a 100644 --- a/release/ray_release/test_automation/release_state_machine.py +++ b/release/ray_release/test_automation/release_state_machine.py @@ -1,9 +1,8 @@ +from ray_release.test import Test, TestState from ray_release.test_automation.state_machine import ( - TestStateMachine, WEEKLY_RELEASE_BLOCKER_TAG, + TestStateMachine, ) -from ray_release.test import Test, TestState - CONTINUOUS_FAILURE_TO_JAIL = 3 # Number of continuous failures before jailing UNSTABLE_RELEASE_TEST_TAG = "unstable-release-test" diff --git a/release/ray_release/test_automation/state_machine.py b/release/ray_release/test_automation/state_machine.py index c317a9227273..a06338d37a46 100644 --- a/release/ray_release/test_automation/state_machine.py +++ b/release/ray_release/test_automation/state_machine.py @@ -1,17 +1,17 @@ import abc -from typing import List from datetime import datetime, timedelta +from typing import List import github from github import Github from pybuildkite.buildkite import Buildkite +from ray_release.aws import get_secret_token +from ray_release.logger import logger from ray_release.test import ( Test, TestState, ) -from ray_release.aws import get_secret_token -from ray_release.logger import logger RAY_REPO = "ray-project/ray" BUILDKITE_ORGANIZATION = "ray-project" diff --git a/release/ray_release/tests/test_alerts.py b/release/ray_release/tests/test_alerts.py index dcd18950aba1..1a4ebd84500f 100644 --- a/release/ray_release/tests/test_alerts.py +++ b/release/ray_release/tests/test_alerts.py @@ -1,20 +1,21 @@ import sys + import pytest from ray_release.alerts import ( - handle, default, # long_running_tests, # rllib_tests, # tune_tests, # xgboost_tests, + handle, ) -from ray_release.test import Test from ray_release.exception import ReleaseTestConfigError, ResultsAlert from ray_release.result import ( Result, ResultStatus, ) +from ray_release.test import Test def test_handle_alert(): diff --git a/release/ray_release/tests/test_anyscale_job_manager.py b/release/ray_release/tests/test_anyscale_job_manager.py index 123b0df591ad..bb684e3a9c68 100644 --- a/release/ray_release/tests/test_anyscale_job_manager.py +++ b/release/ray_release/tests/test_anyscale_job_manager.py @@ -1,6 +1,7 @@ -import pytest import sys +import pytest + from ray_release.job_manager.anyscale_job_manager import AnyscaleJobManager diff --git a/release/ray_release/tests/test_anyscale_job_wrapper.py b/release/ray_release/tests/test_anyscale_job_wrapper.py index f7ba2053bef2..0f5ab8859d88 100644 --- a/release/ray_release/tests/test_anyscale_job_wrapper.py +++ b/release/ray_release/tests/test_anyscale_job_wrapper.py @@ -1,12 +1,13 @@ -import pytest -import sys import json +import sys + +import pytest from ray_release.command_runner._anyscale_job_wrapper import ( + OUTPUT_JSON_FILENAME, + TIMEOUT_RETURN_CODE, main, run_bash_command, - TIMEOUT_RETURN_CODE, - OUTPUT_JSON_FILENAME, ) cloud_storage_kwargs = dict( diff --git a/release/ray_release/tests/test_bisect.py b/release/ray_release/tests/test_bisect.py index 35c1858129b5..6792d7a41d48 100644 --- a/release/ray_release/tests/test_bisect.py +++ b/release/ray_release/tests/test_bisect.py @@ -1,13 +1,14 @@ import sys -import pytest +from typing import Dict, List from unittest import mock -from typing import List, Dict + +import pytest from ray_release.scripts.ray_bisect import ( _bisect, + _get_test, _obtain_test_result, _sanity_check, - _get_test, ) diff --git a/release/ray_release/tests/test_buildkite.py b/release/ray_release/tests/test_buildkite.py index aaa53e076b8e..6e10389c573f 100644 --- a/release/ray_release/tests/test_buildkite.py +++ b/release/ray_release/tests/test_buildkite.py @@ -2,39 +2,39 @@ import sys import tempfile import unittest -from typing import Dict, Callable +from typing import Callable, Dict from unittest.mock import patch import yaml from github import Repository +from ray_release.bazel import bazel_runfile from ray_release.buildkite.concurrency import ( - get_test_resources_from_cluster_compute, get_concurrency_group, + get_test_resources_from_cluster_compute, ) from ray_release.buildkite.filter import filter_tests, group_tests from ray_release.buildkite.settings import ( - split_ray_repo_str, - get_default_settings, - update_settings_from_environment, Frequency, - update_settings_from_buildkite, Priority, + get_default_settings, get_test_filters, + split_ray_repo_str, + update_settings_from_buildkite, + update_settings_from_environment, ) from ray_release.buildkite.step import ( - get_step, - RELEASE_QUEUE_DEFAULT, - RELEASE_QUEUE_CLIENT, DOCKER_PLUGIN_KEY, + RELEASE_QUEUE_CLIENT, + RELEASE_QUEUE_DEFAULT, + get_step, ) -from ray_release.test import Test +from ray_release.configs.global_config import init_global_config from ray_release.exception import ReleaseTestConfigError +from ray_release.test import Test from ray_release.wheels import ( DEFAULT_BRANCH, ) -from ray_release.configs.global_config import init_global_config -from ray_release.bazel import bazel_runfile init_global_config(bazel_runfile("release/ray_release/configs/oss_config.yaml")) diff --git a/release/ray_release/tests/test_byod_build.py b/release/ray_release/tests/test_byod_build.py index 6b71dabd5b62..d8557ce24708 100644 --- a/release/ray_release/tests/test_byod_build.py +++ b/release/ray_release/tests/test_byod_build.py @@ -1,17 +1,17 @@ import sys +from typing import List +from unittest.mock import patch import pytest -from unittest.mock import patch -from typing import List from ray_release.bazel import bazel_runfile -from ray_release.configs.global_config import init_global_config, get_global_config -from ray_release.test import Test from ray_release.byod.build import ( - build_anyscale_custom_byod_image, - build_anyscale_base_byod_images, _get_ray_commit, + build_anyscale_base_byod_images, + build_anyscale_custom_byod_image, ) +from ray_release.configs.global_config import get_global_config, init_global_config +from ray_release.test import Test def test_get_ray_commit() -> None: diff --git a/release/ray_release/tests/test_cloud_util.py b/release/ray_release/tests/test_cloud_util.py index 38db3029ea0c..8b2e86421406 100644 --- a/release/ray_release/tests/test_cloud_util.py +++ b/release/ray_release/tests/test_cloud_util.py @@ -1,13 +1,14 @@ -import sys import os +import sys +import tempfile from unittest.mock import patch import pytest -import tempfile + from ray_release.cloud_util import ( + _parse_abfss_uri, upload_file_to_azure, upload_working_dir_to_azure, - _parse_abfss_uri, ) diff --git a/release/ray_release/tests/test_cluster_manager.py b/release/ray_release/tests/test_cluster_manager.py index 1b652754a96f..1831a6563510 100644 --- a/release/ray_release/tests/test_cluster_manager.py +++ b/release/ray_release/tests/test_cluster_manager.py @@ -7,28 +7,28 @@ from freezegun import freeze_time +from ray_release.cluster_manager.full import FullClusterManager +from ray_release.cluster_manager.minimal import MinimalClusterManager from ray_release.exception import ( + ClusterComputeCreateError, ClusterCreationError, - ClusterStartupError, - ClusterStartupTimeout, - ClusterStartupFailed, ClusterEnvBuildError, ClusterEnvBuildTimeout, - ClusterComputeCreateError, ClusterEnvCreateError, + ClusterStartupError, + ClusterStartupFailed, + ClusterStartupTimeout, ) -from ray_release.cluster_manager.full import FullClusterManager -from ray_release.cluster_manager.minimal import MinimalClusterManager +from ray_release.test import Test from ray_release.tests.utils import ( - UNIT_TEST_PROJECT_ID, UNIT_TEST_CLOUD_ID, + UNIT_TEST_PROJECT_ID, APIDict, + MockSDK, fail_always, fail_once, - MockSDK, ) from ray_release.util import get_anyscale_sdk -from ray_release.test import Test TEST_CLUSTER_COMPUTE = { "cloud_id": UNIT_TEST_CLOUD_ID, diff --git a/release/ray_release/tests/test_config.py b/release/ray_release/tests/test_config.py index b272592fac64..7bc15e443b8c 100644 --- a/release/ray_release/tests/test_config.py +++ b/release/ray_release/tests/test_config.py @@ -1,7 +1,9 @@ -import sys import copy +import sys + import pytest import yaml + from ray_release.config import ( _substitute_variable, load_schema_file, diff --git a/release/ray_release/tests/test_custom_byod_build.py b/release/ray_release/tests/test_custom_byod_build.py index f15164b65db2..32516463454c 100644 --- a/release/ray_release/tests/test_custom_byod_build.py +++ b/release/ray_release/tests/test_custom_byod_build.py @@ -1,7 +1,7 @@ import sys -import pytest from unittest.mock import patch +import pytest from click.testing import CliRunner from ray_release.scripts.custom_byod_build import main diff --git a/release/ray_release/tests/test_custom_byod_build_init_helper.py b/release/ray_release/tests/test_custom_byod_build_init_helper.py index 63e0c88366bf..a8627d33892e 100644 --- a/release/ray_release/tests/test_custom_byod_build_init_helper.py +++ b/release/ray_release/tests/test_custom_byod_build_init_helper.py @@ -1,23 +1,22 @@ import os -import tempfile import sys -import pytest +import tempfile from unittest import mock + +import pytest import yaml +from ray_release.bazel import bazel_runfile +from ray_release.configs.global_config import get_global_config, init_global_config from ray_release.custom_byod_build_init_helper import ( - create_custom_build_yaml, - get_prerequisite_step, _get_step_name, + create_custom_build_yaml, generate_custom_build_step_key, + get_prerequisite_step, ) -from ray_release.configs.global_config import init_global_config -from ray_release.bazel import bazel_runfile from ray_release.test import Test -from ray_release.configs.global_config import get_global_config from ray_release.util import AZURE_REGISTRY_NAME - init_global_config(bazel_runfile("release/ray_release/configs/oss_config.yaml")) diff --git a/release/ray_release/tests/test_custom_image_build_and_test_init.py b/release/ray_release/tests/test_custom_image_build_and_test_init.py index 0200cc89f359..5ab1a42406ed 100644 --- a/release/ray_release/tests/test_custom_image_build_and_test_init.py +++ b/release/ray_release/tests/test_custom_image_build_and_test_init.py @@ -1,10 +1,10 @@ -import sys -import os import json -import yaml -import pytest +import os +import sys from unittest.mock import patch +import pytest +import yaml from click.testing import CliRunner from ray_release.scripts.custom_image_build_and_test_init import main diff --git a/release/ray_release/tests/test_env.py b/release/ray_release/tests/test_env.py index a87ae0071759..380722d55006 100644 --- a/release/ray_release/tests/test_env.py +++ b/release/ray_release/tests/test_env.py @@ -1,6 +1,7 @@ import os import pytest + from ray_release.config import DEFAULT_ANYSCALE_PROJECT from ray_release.env import load_environment, populate_os_env from ray_release.exception import ReleaseTestConfigError diff --git a/release/ray_release/tests/test_global_config.py b/release/ray_release/tests/test_global_config.py index ce60f26d3175..d2c8869a0c7b 100644 --- a/release/ray_release/tests/test_global_config.py +++ b/release/ray_release/tests/test_global_config.py @@ -5,8 +5,8 @@ import pytest from ray_release.configs.global_config import ( - init_global_config, get_global_config, + init_global_config, ) _TEST_CONFIG = """ diff --git a/release/ray_release/tests/test_glue.py b/release/ray_release/tests/test_glue.py index 65556e953b66..ba8b552febba 100644 --- a/release/ray_release/tests/test_glue.py +++ b/release/ray_release/tests/test_glue.py @@ -1,46 +1,47 @@ import os -import pytest import shutil import sys import tempfile import time -from typing import Type, Callable, Optional import unittest +from typing import Callable, Optional, Type from unittest.mock import patch +import pytest + from ray_release.alerts.handle import result_to_handle_map from ray_release.cluster_manager.cluster_manager import ClusterManager from ray_release.cluster_manager.full import FullClusterManager from ray_release.command_runner.command_runner import CommandRunner -from ray_release.test import Test from ray_release.exception import ( - ReleaseTestConfigError, ClusterCreationError, + ClusterNodesWaitTimeout, ClusterStartupError, ClusterStartupTimeout, - ExitCode, - RemoteEnvSetupError, CommandError, - PrepareCommandError, CommandTimeout, - PrepareCommandTimeout, - TestCommandError, - TestCommandTimeout, + ExitCode, FetchResultError, LogsError, + PrepareCommandError, + PrepareCommandTimeout, + ReleaseTestConfigError, + RemoteEnvSetupError, ResultsAlert, - ClusterNodesWaitTimeout, + TestCommandError, + TestCommandTimeout, ) from ray_release.file_manager.file_manager import FileManager from ray_release.glue import ( + command_runner_to_cluster_manager, run_release_test, type_str_to_command_runner, - command_runner_to_cluster_manager, ) from ray_release.logger import logger from ray_release.reporter.reporter import Reporter from ray_release.result import Result -from ray_release.tests.utils import MockSDK, APIDict +from ray_release.test import Test +from ray_release.tests.utils import APIDict, MockSDK def _fail_on_call(error_type: Type[Exception] = RuntimeError, message: str = "Fail"): diff --git a/release/ray_release/tests/test_kuberay_util.py b/release/ray_release/tests/test_kuberay_util.py index 659e311ddba3..60bc3920295f 100644 --- a/release/ray_release/tests/test_kuberay_util.py +++ b/release/ray_release/tests/test_kuberay_util.py @@ -1,4 +1,5 @@ import sys + import pytest from ray_release.kuberay_util import convert_cluster_compute_to_kuberay_compute_config diff --git a/release/ray_release/tests/test_log_aggregator.py b/release/ray_release/tests/test_log_aggregator.py index 08293ca0dab6..8b597bf0720e 100644 --- a/release/ray_release/tests/test_log_aggregator.py +++ b/release/ray_release/tests/test_log_aggregator.py @@ -1,5 +1,7 @@ import sys + import pytest + from ray_release.log_aggregator import LogAggregator diff --git a/release/ray_release/tests/test_result.py b/release/ray_release/tests/test_result.py index e6f7f1ea9f80..0eea67a37503 100644 --- a/release/ray_release/tests/test_result.py +++ b/release/ray_release/tests/test_result.py @@ -1,11 +1,11 @@ -import sys import os +import sys from unittest import mock import pytest -from ray_release.result import handle_exception, ResultStatus from ray_release.exception import ExitCode, ReleaseTestError, ReleaseTestSetupError +from ray_release.result import ResultStatus, handle_exception def test_handle_exception(): diff --git a/release/ray_release/tests/test_retry.py b/release/ray_release/tests/test_retry.py index b630e19f2dd0..e8ff9dcb4f62 100644 --- a/release/ray_release/tests/test_retry.py +++ b/release/ray_release/tests/test_retry.py @@ -1,8 +1,9 @@ -from ray_release import retry - import sys + import pytest +from ray_release import retry + def test_retry_with_no_error(): invocation_count = 0 diff --git a/release/ray_release/tests/test_run_script.py b/release/ray_release/tests/test_run_script.py index 96eb1bf0ceb4..71095bd38143 100644 --- a/release/ray_release/tests/test_run_script.py +++ b/release/ray_release/tests/test_run_script.py @@ -3,6 +3,7 @@ import subprocess import sys import tempfile + import pytest from ray_release.exception import ExitCode diff --git a/release/ray_release/tests/test_state_machine.py b/release/ray_release/tests/test_state_machine.py index 707277ec06ee..312f7a2854b9 100644 --- a/release/ray_release/tests/test_state_machine.py +++ b/release/ray_release/tests/test_state_machine.py @@ -3,28 +3,28 @@ import pytest +from ray_release.result import ( + Result, + ResultStatus, +) from ray_release.test import ( Test, TestResult, TestState, ) -from ray_release.result import ( - Result, - ResultStatus, -) -from ray_release.test_automation.release_state_machine import ReleaseTestStateMachine from ray_release.test_automation.ci_state_machine import ( - CITestStateMachine, CONTINUOUS_FAILURE_TO_FLAKY, CONTINUOUS_PASSING_TO_PASSING, FAILING_TO_FLAKY_MESSAGE, - JAILED_TAG, JAILED_MESSAGE, + JAILED_TAG, + CITestStateMachine, ) +from ray_release.test_automation.release_state_machine import ReleaseTestStateMachine from ray_release.test_automation.state_machine import ( - TestStateMachine, - WEEKLY_RELEASE_BLOCKER_TAG, NO_TEAM, + WEEKLY_RELEASE_BLOCKER_TAG, + TestStateMachine, ) diff --git a/release/ray_release/tests/test_template.py b/release/ray_release/tests/test_template.py index 4f5ef46d6426..3fb7dce90bf0 100644 --- a/release/ray_release/tests/test_template.py +++ b/release/ray_release/tests/test_template.py @@ -2,9 +2,9 @@ import pytest -from ray_release.test import Test -from ray_release.template import get_working_dir, bazel_runfile from ray_release.exception import ReleaseTestConfigError +from ray_release.template import bazel_runfile, get_working_dir +from ray_release.test import Test def test_get_working_dir_with_path_from_root(): diff --git a/release/ray_release/tests/test_test.py b/release/ray_release/tests/test_test.py index ce068321bbc9..d7caa2139fc0 100644 --- a/release/ray_release/tests/test_test.py +++ b/release/ray_release/tests/test_test.py @@ -1,39 +1,37 @@ import asyncio import json -import sys import os import platform -from unittest import mock +import sys from typing import List - +from unittest import mock +from unittest.mock import AsyncMock, patch import aioboto3 import boto3 import pytest -from unittest.mock import patch, AsyncMock from ray_release.bazel import bazel_runfile from ray_release.configs.global_config import ( - init_global_config, get_global_config, + init_global_config, ) from ray_release.test import ( + DATAPLANE_ECR_ML_REPO, + DATAPLANE_ECR_REPO, + LINUX_TEST_PREFIX, + MACOS_BISECT_DAILY_RATE_LIMIT, + MACOS_TEST_PREFIX, + WINDOWS_TEST_PREFIX, + ResultStatus, Test, TestResult, TestState, TestType, - ResultStatus, _convert_env_list_to_dict, - DATAPLANE_ECR_REPO, - DATAPLANE_ECR_ML_REPO, - MACOS_TEST_PREFIX, - LINUX_TEST_PREFIX, - WINDOWS_TEST_PREFIX, - MACOS_BISECT_DAILY_RATE_LIMIT, ) from ray_release.util import ANYSCALE_RAY_IMAGE_PREFIX, dict_hash - init_global_config(bazel_runfile("release/ray_release/configs/oss_config.yaml")) diff --git a/release/ray_release/util.py b/release/ray_release/util.py index 1769aa03bdb7..4e4b6c151eb8 100644 --- a/release/ray_release/util.py +++ b/release/ray_release/util.py @@ -8,8 +8,8 @@ import requests -from ray_release.logger import logger from ray_release.configs.global_config import get_global_config +from ray_release.logger import logger if TYPE_CHECKING: from anyscale.sdk.anyscale_client.sdk import AnyscaleSDK diff --git a/release/util/sanity_check.py b/release/util/sanity_check.py index 9ed092c543c9..54f8cf45ff42 100644 --- a/release/util/sanity_check.py +++ b/release/util/sanity_check.py @@ -1,6 +1,8 @@ +import sys + import click + import ray -import sys @click.command()