diff --git a/fuzzer/src/buttercup/fuzzing_infra/builder_bot.py b/fuzzer/src/buttercup/fuzzing_infra/builder_bot.py index 42d56f6e..3db415ab 100644 --- a/fuzzer/src/buttercup/fuzzing_infra/builder_bot.py +++ b/fuzzer/src/buttercup/fuzzing_infra/builder_bot.py @@ -3,10 +3,6 @@ import tempfile from dataclasses import dataclass, field from pathlib import Path -from opentelemetry import trace -from opentelemetry.trace import Status, StatusCode -from redis import Redis - from buttercup.common import node_local from buttercup.common.challenge_task import ChallengeTask, ChallengeTaskError from buttercup.common.datastructures.msg_pb2 import BuildOutput, BuildRequest, BuildType @@ -15,6 +11,10 @@ from buttercup.common.queues import GroupNames, QueueFactory, QueueNames, Reliab from buttercup.common.task_registry import TaskRegistry from buttercup.common.telemetry import CRSActionCategory, init_telemetry, set_crs_attributes from buttercup.common.utils import serve_loop +from opentelemetry import trace +from opentelemetry.trace import Status, StatusCode +from redis import Redis + from buttercup.fuzzing_infra.settings import BuilderBotSettings logger = logging.getLogger(__name__) diff --git a/fuzzer/src/buttercup/fuzzing_infra/corpus_merger.py b/fuzzer/src/buttercup/fuzzing_infra/corpus_merger.py index 505f066e..f029ced6 100644 --- a/fuzzer/src/buttercup/fuzzing_infra/corpus_merger.py +++ b/fuzzer/src/buttercup/fuzzing_infra/corpus_merger.py @@ -7,10 +7,6 @@ from dataclasses import dataclass from os import PathLike from pathlib import Path -from opentelemetry import trace -from opentelemetry.trace import Status, StatusCode -from redis import Redis - from buttercup.common import node_local from buttercup.common.challenge_task import ChallengeTask from buttercup.common.constants import ADDRESS_SANITIZER @@ -22,6 +18,10 @@ from buttercup.common.maps import BuildMap, HarnessWeights from buttercup.common.sets import MERGING_LOCK_TIMEOUT_SECONDS, FailedToAcquireLock, MergedCorpusSetLock from buttercup.common.telemetry import CRSActionCategory, init_telemetry, set_crs_attributes from buttercup.common.utils import serve_loop, setup_periodic_zombie_reaper +from opentelemetry import trace +from opentelemetry.trace import Status, StatusCode +from redis import Redis + from buttercup.fuzzing_infra.runner_proxy import Conf, FuzzConfiguration, RunnerProxy from buttercup.fuzzing_infra.settings import FuzzerBotSettings diff --git a/fuzzer/src/buttercup/fuzzing_infra/coverage_bot.py b/fuzzer/src/buttercup/fuzzing_infra/coverage_bot.py index 3edb08f1..2156593a 100644 --- a/fuzzer/src/buttercup/fuzzing_infra/coverage_bot.py +++ b/fuzzer/src/buttercup/fuzzing_infra/coverage_bot.py @@ -7,10 +7,6 @@ from contextlib import contextmanager from functools import lru_cache from pathlib import Path -from opentelemetry import trace -from opentelemetry.trace import Status, StatusCode -from redis import Redis - from buttercup.common import node_local from buttercup.common.challenge_task import ChallengeTask from buttercup.common.corpus import Corpus @@ -21,6 +17,10 @@ from buttercup.common.logger import setup_package_logger from buttercup.common.maps import CoverageMap from buttercup.common.telemetry import CRSActionCategory, init_telemetry, set_crs_attributes from buttercup.common.utils import setup_periodic_zombie_reaper +from opentelemetry import trace +from opentelemetry.trace import Status, StatusCode +from redis import Redis + from buttercup.fuzzing_infra.coverage_runner import CoverageRunner, CoveredFunction from buttercup.fuzzing_infra.settings import CoverageBotSettings diff --git a/fuzzer/src/buttercup/fuzzing_infra/coverage_runner.py b/fuzzer/src/buttercup/fuzzing_infra/coverage_runner.py index 014b55dc..db96272e 100644 --- a/fuzzer/src/buttercup/fuzzing_infra/coverage_runner.py +++ b/fuzzer/src/buttercup/fuzzing_infra/coverage_runner.py @@ -7,7 +7,6 @@ from typing import Any, NamedTuple, cast import cxxfilt from bs4 import BeautifulSoup, Tag - from buttercup.common.challenge_task import ChallengeTask from buttercup.common.project_yaml import Language, ProjectYaml diff --git a/fuzzer/src/buttercup/fuzzing_infra/fuzzer_bot.py b/fuzzer/src/buttercup/fuzzing_infra/fuzzer_bot.py index 9b6b751d..f61a77e9 100644 --- a/fuzzer/src/buttercup/fuzzing_infra/fuzzer_bot.py +++ b/fuzzer/src/buttercup/fuzzing_infra/fuzzer_bot.py @@ -3,10 +3,6 @@ import random from pathlib import Path from typing import TYPE_CHECKING -from opentelemetry import trace -from opentelemetry.trace.status import Status, StatusCode -from redis import Redis - from buttercup.common import stack_parsing from buttercup.common.challenge_task import ChallengeTask from buttercup.common.corpus import Corpus, CrashDir @@ -20,6 +16,10 @@ from buttercup.common.stack_parsing import CrashSet from buttercup.common.telemetry import CRSActionCategory, init_telemetry, set_crs_attributes from buttercup.common.types import FuzzConfiguration from buttercup.common.utils import setup_periodic_zombie_reaper +from opentelemetry import trace +from opentelemetry.trace.status import Status, StatusCode +from redis import Redis + from buttercup.fuzzing_infra.runner_proxy import Conf, RunnerProxy from buttercup.fuzzing_infra.settings import FuzzerBotSettings diff --git a/fuzzer/src/buttercup/fuzzing_infra/orchestrator.py b/fuzzer/src/buttercup/fuzzing_infra/orchestrator.py index b9499db4..27b86936 100644 --- a/fuzzer/src/buttercup/fuzzing_infra/orchestrator.py +++ b/fuzzer/src/buttercup/fuzzing_infra/orchestrator.py @@ -2,8 +2,6 @@ import argparse import os import time -from redis import Redis - from buttercup.common.clusterfuzz_utils import get_fuzz_targets from buttercup.common.datastructures.msg_pb2 import BuildOutput, BuildType, WeightedHarness from buttercup.common.logger import setup_package_logger @@ -14,6 +12,7 @@ from buttercup.common.queues import ( QueueNames, ReliableQueue, ) +from redis import Redis logger = setup_package_logger("fuzzer-orchestrator", __name__) DEFAULT_WEIGHT = 1.0 diff --git a/fuzzer/src/buttercup/fuzzing_infra/stimulate_build_bot.py b/fuzzer/src/buttercup/fuzzing_infra/stimulate_build_bot.py index 33fe6ac7..ec91c118 100644 --- a/fuzzer/src/buttercup/fuzzing_infra/stimulate_build_bot.py +++ b/fuzzer/src/buttercup/fuzzing_infra/stimulate_build_bot.py @@ -1,9 +1,8 @@ import argparse -from redis import Redis - from buttercup.common.datastructures.msg_pb2 import BuildRequest, BuildType from buttercup.common.queues import QueueFactory, QueueNames +from redis import Redis def main() -> None: diff --git a/fuzzer/src/buttercup/fuzzing_infra/tracer_bot.py b/fuzzer/src/buttercup/fuzzing_infra/tracer_bot.py index bc01ea95..9bbd52b4 100644 --- a/fuzzer/src/buttercup/fuzzing_infra/tracer_bot.py +++ b/fuzzer/src/buttercup/fuzzing_infra/tracer_bot.py @@ -2,8 +2,6 @@ import logging import os from pathlib import Path -from redis import Redis - from buttercup.common import node_local, stack_parsing from buttercup.common.datastructures.msg_pb2 import TracedCrash from buttercup.common.logger import setup_package_logger @@ -11,6 +9,8 @@ from buttercup.common.queues import GroupNames, QueueFactory, QueueNames from buttercup.common.task_registry import TaskRegistry from buttercup.common.telemetry import init_telemetry from buttercup.common.utils import serve_loop, setup_periodic_zombie_reaper +from redis import Redis + from buttercup.fuzzing_infra.settings import TracerSettings from buttercup.fuzzing_infra.tracer_runner import TracerRunner diff --git a/fuzzer/src/buttercup/fuzzing_infra/tracer_runner.py b/fuzzer/src/buttercup/fuzzing_infra/tracer_runner.py index 01213bc9..78192259 100644 --- a/fuzzer/src/buttercup/fuzzing_infra/tracer_runner.py +++ b/fuzzer/src/buttercup/fuzzing_infra/tracer_runner.py @@ -2,14 +2,13 @@ import logging from dataclasses import dataclass from pathlib import Path -from opentelemetry import trace -from opentelemetry.trace import Status, StatusCode -from redis import Redis - from buttercup.common.challenge_task import ChallengeTask, ReproduceResult from buttercup.common.datastructures.msg_pb2 import BuildType from buttercup.common.maps import BuildMap from buttercup.common.telemetry import CRSActionCategory, set_crs_attributes +from opentelemetry import trace +from opentelemetry.trace import Status, StatusCode +from redis import Redis logger = logging.getLogger(__name__) diff --git a/fuzzer/tests/test_builder_bot.py b/fuzzer/tests/test_builder_bot.py index d4062dea..6a622963 100644 --- a/fuzzer/tests/test_builder_bot.py +++ b/fuzzer/tests/test_builder_bot.py @@ -2,10 +2,10 @@ import unittest from pathlib import Path from unittest.mock import MagicMock, Mock, patch -from redis import Redis - from buttercup.common.datastructures.msg_pb2 import BuildOutput, BuildRequest, BuildType from buttercup.common.task_registry import TaskRegistry +from redis import Redis + from buttercup.fuzzing_infra.builder_bot import BuilderBot diff --git a/fuzzer/tests/test_coverage_bot.py b/fuzzer/tests/test_coverage_bot.py index 8a16d5fd..7f87ae53 100644 --- a/fuzzer/tests/test_coverage_bot.py +++ b/fuzzer/tests/test_coverage_bot.py @@ -3,10 +3,10 @@ import tempfile from unittest.mock import MagicMock, patch import pytest -from redis import Redis - from buttercup.common.datastructures.msg_pb2 import FunctionCoverage from buttercup.common.maps import CoverageMap +from redis import Redis + from buttercup.fuzzing_infra.coverage_bot import CoverageBot from buttercup.fuzzing_infra.coverage_runner import CoveredFunction diff --git a/fuzzer/tests/test_merger_bot.py b/fuzzer/tests/test_merger_bot.py index 00d60e5e..154c74df 100644 --- a/fuzzer/tests/test_merger_bot.py +++ b/fuzzer/tests/test_merger_bot.py @@ -2,11 +2,11 @@ import unittest from pathlib import Path from unittest.mock import MagicMock, Mock, patch -from redis import Redis - from buttercup.common.constants import ADDRESS_SANITIZER from buttercup.common.datastructures.msg_pb2 import BuildOutput, WeightedHarness from buttercup.common.sets import FailedToAcquireLock +from redis import Redis + from buttercup.fuzzing_infra.corpus_merger import BaseCorpus, MergerBot, PartitionedCorpus diff --git a/fuzzer/tests/test_runner_proxy.py b/fuzzer/tests/test_runner_proxy.py index bbdb1e7f..cd7a466e 100644 --- a/fuzzer/tests/test_runner_proxy.py +++ b/fuzzer/tests/test_runner_proxy.py @@ -4,8 +4,8 @@ import time from unittest.mock import Mock, patch import pytest - from buttercup.common.types import FuzzConfiguration + from buttercup.fuzzing_infra.runner_proxy import Conf, Crash, FuzzResult, RunnerProxy diff --git a/fuzzer/tests/test_tracer_bot.py b/fuzzer/tests/test_tracer_bot.py index 9676de47..9116e37c 100644 --- a/fuzzer/tests/test_tracer_bot.py +++ b/fuzzer/tests/test_tracer_bot.py @@ -2,10 +2,10 @@ import time from unittest.mock import MagicMock, patch import pytest -from redis import Redis - from buttercup.common.datastructures.msg_pb2 import BuildOutput, Crash, Task from buttercup.common.task_registry import TaskRegistry +from redis import Redis + from buttercup.fuzzing_infra.tracer_bot import TracerBot diff --git a/fuzzer_runner/src/buttercup/fuzzer_runner/runner.py b/fuzzer_runner/src/buttercup/fuzzer_runner/runner.py index 840fce9e..bdee1688 100644 --- a/fuzzer_runner/src/buttercup/fuzzer_runner/runner.py +++ b/fuzzer_runner/src/buttercup/fuzzer_runner/runner.py @@ -6,12 +6,12 @@ import typing import uuid from dataclasses import dataclass -from clusterfuzz.fuzz import get_engine -from clusterfuzz.fuzz.engine import Engine, FuzzOptions, FuzzResult - from buttercup.common.logger import setup_package_logger from buttercup.common.node_local import scratch_dir from buttercup.common.types import FuzzConfiguration +from clusterfuzz.fuzz import get_engine +from clusterfuzz.fuzz.engine import Engine, FuzzOptions, FuzzResult + from buttercup.fuzzer_runner.temp_dir import patched_temp_dir, scratch_cwd logger = logging.getLogger(__name__) diff --git a/fuzzer_runner/src/buttercup/fuzzer_runner/temp_dir.py b/fuzzer_runner/src/buttercup/fuzzer_runner/temp_dir.py index 89ee42f3..0605da3f 100644 --- a/fuzzer_runner/src/buttercup/fuzzer_runner/temp_dir.py +++ b/fuzzer_runner/src/buttercup/fuzzer_runner/temp_dir.py @@ -6,9 +6,8 @@ from collections.abc import Iterator from contextlib import contextmanager from unittest.mock import patch -from clusterfuzz._internal.system import environment, shell - from buttercup.common.node_local import TmpDir, scratch_dir +from clusterfuzz._internal.system import environment, shell logger = logging.getLogger(__name__) diff --git a/orchestrator/src/buttercup/orchestrator/downloader/__cli__.py b/orchestrator/src/buttercup/orchestrator/downloader/__cli__.py index d6e5240e..ad9053cc 100644 --- a/orchestrator/src/buttercup/orchestrator/downloader/__cli__.py +++ b/orchestrator/src/buttercup/orchestrator/downloader/__cli__.py @@ -1,11 +1,11 @@ import requests import requests.adapters +from buttercup.common.datastructures.msg_pb2 import SourceDetail, Task +from buttercup.common.logger import setup_package_logger from pydantic_settings import get_subcommand from redis import Redis from requests_file import FileAdapter -from buttercup.common.datastructures.msg_pb2 import SourceDetail, Task -from buttercup.common.logger import setup_package_logger from buttercup.orchestrator.downloader.config import ( DownloaderProcessCommand, DownloaderServeCommand, diff --git a/orchestrator/src/buttercup/orchestrator/downloader/downloader.py b/orchestrator/src/buttercup/orchestrator/downloader/downloader.py index c7e0bfa0..049fcb6c 100644 --- a/orchestrator/src/buttercup/orchestrator/downloader/downloader.py +++ b/orchestrator/src/buttercup/orchestrator/downloader/downloader.py @@ -6,16 +6,16 @@ from dataclasses import dataclass, field from pathlib import Path import requests -from redis import Redis -from requests.adapters import HTTPAdapter -from urllib3.util.retry import Retry - from buttercup.common import node_local from buttercup.common.datastructures.msg_pb2 import SourceDetail, Task, TaskDownload, TaskReady from buttercup.common.queues import GroupNames, QueueFactory, QueueNames, ReliableQueue from buttercup.common.task_meta import TaskMeta from buttercup.common.task_registry import TaskRegistry from buttercup.common.utils import serve_loop +from redis import Redis +from requests.adapters import HTTPAdapter +from urllib3.util.retry import Retry + from buttercup.orchestrator.utils import response_stream_to_file logger = logging.getLogger(__name__) diff --git a/orchestrator/src/buttercup/orchestrator/pov_reproducer/__cli__.py b/orchestrator/src/buttercup/orchestrator/pov_reproducer/__cli__.py index 8c50fd06..57988acf 100644 --- a/orchestrator/src/buttercup/orchestrator/pov_reproducer/__cli__.py +++ b/orchestrator/src/buttercup/orchestrator/pov_reproducer/__cli__.py @@ -1,8 +1,8 @@ import logging +from buttercup.common.logger import setup_package_logger from redis import Redis -from buttercup.common.logger import setup_package_logger from buttercup.orchestrator.pov_reproducer.config import Settings from buttercup.orchestrator.pov_reproducer.pov_reproducer import POVReproducer diff --git a/orchestrator/src/buttercup/orchestrator/pov_reproducer/pov_reproducer.py b/orchestrator/src/buttercup/orchestrator/pov_reproducer/pov_reproducer.py index b3f4b6a7..379eedbc 100644 --- a/orchestrator/src/buttercup/orchestrator/pov_reproducer/pov_reproducer.py +++ b/orchestrator/src/buttercup/orchestrator/pov_reproducer/pov_reproducer.py @@ -4,8 +4,6 @@ import logging from dataclasses import dataclass, field from pathlib import Path -from redis import Redis - from buttercup.common import node_local from buttercup.common.challenge_task import ChallengeTask from buttercup.common.datastructures.msg_pb2 import BuildOutput, BuildType, POVReproduceRequest @@ -13,6 +11,7 @@ from buttercup.common.maps import BuildMap from buttercup.common.sets import PoVReproduceStatus from buttercup.common.task_registry import TaskRegistry from buttercup.common.utils import serve_loop +from redis import Redis logger = logging.getLogger(__name__) diff --git a/orchestrator/src/buttercup/orchestrator/scheduler/__cli__.py b/orchestrator/src/buttercup/orchestrator/scheduler/__cli__.py index eab444c8..94e31af9 100644 --- a/orchestrator/src/buttercup/orchestrator/scheduler/__cli__.py +++ b/orchestrator/src/buttercup/orchestrator/scheduler/__cli__.py @@ -1,10 +1,10 @@ import logging -from pydantic_settings import get_subcommand -from redis import Redis - from buttercup.common.logger import setup_package_logger from buttercup.common.telemetry import init_telemetry +from pydantic_settings import get_subcommand +from redis import Redis + from buttercup.orchestrator.scheduler.config import ( ProcessBuildOutputCommand, ProcessReadyTaskCommand, diff --git a/orchestrator/src/buttercup/orchestrator/scheduler/cancellation.py b/orchestrator/src/buttercup/orchestrator/scheduler/cancellation.py index 9c050592..56f2442b 100644 --- a/orchestrator/src/buttercup/orchestrator/scheduler/cancellation.py +++ b/orchestrator/src/buttercup/orchestrator/scheduler/cancellation.py @@ -1,11 +1,10 @@ import logging from dataclasses import dataclass, field -from redis import Redis - from buttercup.common.datastructures.msg_pb2 import TaskDelete from buttercup.common.queues import GroupNames, QueueFactory, QueueNames, ReliableQueue, RQItem from buttercup.common.task_registry import TaskRegistry +from redis import Redis logger = logging.getLogger(__name__) diff --git a/orchestrator/src/buttercup/orchestrator/scheduler/sarif_matcher.py b/orchestrator/src/buttercup/orchestrator/scheduler/sarif_matcher.py index 36c92b19..ccebc750 100644 --- a/orchestrator/src/buttercup/orchestrator/scheduler/sarif_matcher.py +++ b/orchestrator/src/buttercup/orchestrator/scheduler/sarif_matcher.py @@ -5,6 +5,7 @@ from pathlib import Path from buttercup.common import stack_parsing from buttercup.common.clusterfuzz_parser.slice import StackFrame from buttercup.common.datastructures.msg_pb2 import TracedCrash + from buttercup.orchestrator.task_server.models.types import SARIFBroadcastDetail logger = logging.getLogger(__name__) diff --git a/orchestrator/src/buttercup/orchestrator/scheduler/scheduler.py b/orchestrator/src/buttercup/orchestrator/scheduler/scheduler.py index af89d0a5..e455e7ab 100644 --- a/orchestrator/src/buttercup/orchestrator/scheduler/scheduler.py +++ b/orchestrator/src/buttercup/orchestrator/scheduler/scheduler.py @@ -3,8 +3,6 @@ import random from dataclasses import dataclass, field from pathlib import Path -from redis import Redis - from buttercup.common.challenge_task import ChallengeTask from buttercup.common.clusterfuzz_utils import get_fuzz_targets from buttercup.common.datastructures.msg_pb2 import ( @@ -23,6 +21,8 @@ from buttercup.common.project_yaml import ProjectYaml from buttercup.common.queues import GroupNames, QueueFactory, QueueNames, ReliableQueue, RQItem from buttercup.common.task_registry import TaskRegistry from buttercup.common.utils import serve_loop +from redis import Redis + from buttercup.orchestrator.api_client_factory import create_api_client from buttercup.orchestrator.scheduler.cancellation import Cancellation from buttercup.orchestrator.scheduler.status_checker import StatusChecker diff --git a/orchestrator/src/buttercup/orchestrator/scheduler/submissions.py b/orchestrator/src/buttercup/orchestrator/scheduler/submissions.py index cb54f05d..aa3120d2 100644 --- a/orchestrator/src/buttercup/orchestrator/scheduler/submissions.py +++ b/orchestrator/src/buttercup/orchestrator/scheduler/submissions.py @@ -6,10 +6,6 @@ from dataclasses import dataclass, field from functools import lru_cache from pathlib import Path -from opentelemetry import trace -from opentelemetry.trace import Status, StatusCode -from redis import Redis - from buttercup.common import node_local from buttercup.common.challenge_task import ChallengeTask from buttercup.common.clusterfuzz_parser.crash_comparer import CrashComparer @@ -36,6 +32,10 @@ from buttercup.common.sets import PoVReproduceStatus from buttercup.common.stack_parsing import get_crash_data, get_inst_key from buttercup.common.task_registry import TaskRegistry from buttercup.common.telemetry import CRSActionCategory, set_crs_attributes +from opentelemetry import trace +from opentelemetry.trace import Status, StatusCode +from redis import Redis + from buttercup.orchestrator.competition_api_client.api import BroadcastSarifAssessmentApi, BundleApi, PatchApi, PovApi from buttercup.orchestrator.competition_api_client.api_client import ApiClient from buttercup.orchestrator.competition_api_client.models.types_architecture import TypesArchitecture diff --git a/orchestrator/src/buttercup/orchestrator/scratch_cleaner/__cli__.py b/orchestrator/src/buttercup/orchestrator/scratch_cleaner/__cli__.py index dfec43cc..92b78539 100644 --- a/orchestrator/src/buttercup/orchestrator/scratch_cleaner/__cli__.py +++ b/orchestrator/src/buttercup/orchestrator/scratch_cleaner/__cli__.py @@ -1,8 +1,8 @@ import logging +from buttercup.common.logger import setup_package_logger from redis import Redis -from buttercup.common.logger import setup_package_logger from buttercup.orchestrator.scratch_cleaner.config import Settings from buttercup.orchestrator.scratch_cleaner.scratch_cleaner import ScratchCleaner diff --git a/orchestrator/src/buttercup/orchestrator/scratch_cleaner/scratch_cleaner.py b/orchestrator/src/buttercup/orchestrator/scratch_cleaner/scratch_cleaner.py index 6b3a2f5d..1fba4a5c 100644 --- a/orchestrator/src/buttercup/orchestrator/scratch_cleaner/scratch_cleaner.py +++ b/orchestrator/src/buttercup/orchestrator/scratch_cleaner/scratch_cleaner.py @@ -5,10 +5,9 @@ import shutil from dataclasses import dataclass, field from pathlib import Path -from redis import Redis - from buttercup.common.task_registry import TaskRegistry from buttercup.common.utils import serve_loop +from redis import Redis logger = logging.getLogger(__name__) diff --git a/orchestrator/src/buttercup/orchestrator/task_server/backend.py b/orchestrator/src/buttercup/orchestrator/task_server/backend.py index e23099ac..4ae4cca8 100644 --- a/orchestrator/src/buttercup/orchestrator/task_server/backend.py +++ b/orchestrator/src/buttercup/orchestrator/task_server/backend.py @@ -2,8 +2,6 @@ import logging import time from uuid import UUID -from redis import Redis - from buttercup.common.datastructures.msg_pb2 import ( SourceDetail as SourceDetailProto, ) @@ -17,6 +15,8 @@ from buttercup.common.datastructures.msg_pb2 import ( from buttercup.common.queues import ReliableQueue from buttercup.common.sarif_store import SARIFStore from buttercup.common.task_registry import TaskRegistry +from redis import Redis + from buttercup.orchestrator.task_server.models.types import ( SARIFBroadcast, SourceType, diff --git a/orchestrator/src/buttercup/orchestrator/task_server/dependencies.py b/orchestrator/src/buttercup/orchestrator/task_server/dependencies.py index a5e0ba4e..f711ec28 100644 --- a/orchestrator/src/buttercup/orchestrator/task_server/dependencies.py +++ b/orchestrator/src/buttercup/orchestrator/task_server/dependencies.py @@ -2,10 +2,10 @@ import logging from functools import lru_cache import redis -from redis import Redis - from buttercup.common.queues import QueueFactory, QueueNames, ReliableQueue from buttercup.common.sarif_store import SARIFStore +from redis import Redis + from buttercup.orchestrator.task_server.config import TaskServerSettings logger = logging.getLogger(__name__) diff --git a/orchestrator/src/buttercup/orchestrator/task_server/server.py b/orchestrator/src/buttercup/orchestrator/task_server/server.py index fae2a30f..74d64def 100644 --- a/orchestrator/src/buttercup/orchestrator/task_server/server.py +++ b/orchestrator/src/buttercup/orchestrator/task_server/server.py @@ -10,14 +10,14 @@ from uuid import UUID from argon2 import PasswordHasher, Type from argon2.exceptions import VerifyMismatchError +from buttercup.common.logger import setup_package_logger +from buttercup.common.queues import ReliableQueue +from buttercup.common.sarif_store import SARIFStore from fastapi import Depends, FastAPI, HTTPException, status from fastapi.security import HTTPBasic, HTTPBasicCredentials from pydantic import BaseModel, Field from urllib3.exceptions import MaxRetryError, NewConnectionError -from buttercup.common.logger import setup_package_logger -from buttercup.common.queues import ReliableQueue -from buttercup.common.sarif_store import SARIFStore from buttercup.orchestrator.api_client_factory import create_api_client from buttercup.orchestrator.competition_api_client.api.ping_api import PingApi from buttercup.orchestrator.competition_api_client.models.types_ping_response import TypesPingResponse diff --git a/orchestrator/src/buttercup/orchestrator/ui/__cli__.py b/orchestrator/src/buttercup/orchestrator/ui/__cli__.py index 5592e066..89a3307d 100644 --- a/orchestrator/src/buttercup/orchestrator/ui/__cli__.py +++ b/orchestrator/src/buttercup/orchestrator/ui/__cli__.py @@ -1,9 +1,9 @@ import logging import uvicorn - from buttercup.common.logger import setup_package_logger from buttercup.common.telemetry import init_telemetry + from buttercup.orchestrator.ui.config import Settings # Import the generated FastAPI app diff --git a/orchestrator/src/buttercup/orchestrator/ui/competition_api/main.py b/orchestrator/src/buttercup/orchestrator/ui/competition_api/main.py index 3c501030..4122fd57 100644 --- a/orchestrator/src/buttercup/orchestrator/ui/competition_api/main.py +++ b/orchestrator/src/buttercup/orchestrator/ui/competition_api/main.py @@ -12,12 +12,12 @@ from functools import cache from pathlib import Path from typing import Any +from buttercup.common.telemetry import crs_instance_id from fastapi import Depends, FastAPI, HTTPException from fastapi.responses import FileResponse, HTMLResponse, Response from fastapi.staticfiles import StaticFiles from pydantic import BaseModel, model_validator -from buttercup.common.telemetry import crs_instance_id from buttercup.orchestrator.ui.competition_api.models.types import ( BundleSubmission, BundleSubmissionResponse, diff --git a/orchestrator/src/buttercup/orchestrator/ui/competition_api/services/challenge_service.py b/orchestrator/src/buttercup/orchestrator/ui/competition_api/services/challenge_service.py index 529e5485..56bdb6d4 100644 --- a/orchestrator/src/buttercup/orchestrator/ui/competition_api/services/challenge_service.py +++ b/orchestrator/src/buttercup/orchestrator/ui/competition_api/services/challenge_service.py @@ -12,10 +12,10 @@ import uuid from pathlib import Path from typing import Any +from buttercup.common.challenge_task import ChallengeTask from fastapi import HTTPException from fastapi.responses import FileResponse -from buttercup.common.challenge_task import ChallengeTask from buttercup.orchestrator.ui.competition_api.models.crs_types import ( SARIFBroadcast, SARIFBroadcastDetail, diff --git a/orchestrator/test/test_cancellation.py b/orchestrator/test/test_cancellation.py index 73665ce6..2074cb97 100644 --- a/orchestrator/test/test_cancellation.py +++ b/orchestrator/test/test_cancellation.py @@ -2,11 +2,11 @@ import time from unittest.mock import Mock, patch import pytest -from redis import Redis - from buttercup.common.datastructures.msg_pb2 import Task, TaskDelete from buttercup.common.queues import ReliableQueue, RQItem from buttercup.common.task_registry import TaskRegistry +from redis import Redis + from buttercup.orchestrator.scheduler.cancellation import Cancellation diff --git a/orchestrator/test/test_downloader.py b/orchestrator/test/test_downloader.py index a3809b62..21372151 100644 --- a/orchestrator/test/test_downloader.py +++ b/orchestrator/test/test_downloader.py @@ -6,9 +6,9 @@ from unittest.mock import patch import pytest import responses - from buttercup.common.datastructures.msg_pb2 import SourceDetail, Task from buttercup.common.node_local import TmpDir + from buttercup.orchestrator.downloader.downloader import Downloader diff --git a/orchestrator/test/test_pov_reproducer.py b/orchestrator/test/test_pov_reproducer.py index 27468e46..fbed0153 100644 --- a/orchestrator/test/test_pov_reproducer.py +++ b/orchestrator/test/test_pov_reproducer.py @@ -2,13 +2,13 @@ from pathlib import Path from unittest.mock import MagicMock, Mock, patch import pytest -from redis import Redis - from buttercup.common.challenge_task import ChallengeTask, ReproduceResult from buttercup.common.datastructures.msg_pb2 import BuildOutput, BuildType, POVReproduceRequest from buttercup.common.maps import BuildMap from buttercup.common.sets import PoVReproduceStatus from buttercup.common.task_registry import TaskRegistry +from redis import Redis + from buttercup.orchestrator.pov_reproducer.pov_reproducer import POVReproducer diff --git a/orchestrator/test/test_sarif_matcher.py b/orchestrator/test/test_sarif_matcher.py index 9cdd8013..e7313a43 100644 --- a/orchestrator/test/test_sarif_matcher.py +++ b/orchestrator/test/test_sarif_matcher.py @@ -7,6 +7,7 @@ from pathlib import Path from buttercup.common.datastructures.msg_pb2 import TracedCrash from buttercup.common.sarif_store import SARIFBroadcastDetail + from buttercup.orchestrator.scheduler.sarif_matcher import match diff --git a/orchestrator/test/test_scheduler.py b/orchestrator/test/test_scheduler.py index 3623684b..0e35e659 100644 --- a/orchestrator/test/test_scheduler.py +++ b/orchestrator/test/test_scheduler.py @@ -3,8 +3,6 @@ from pathlib import Path from unittest.mock import Mock, patch import pytest -from redis import Redis - from buttercup.common.datastructures.msg_pb2 import ( BuildOutput, BuildType, @@ -19,6 +17,8 @@ from buttercup.common.maps import BuildMap from buttercup.common.queues import QueueFactory, RQItem from buttercup.common.task_meta import TaskMeta from buttercup.common.task_registry import TaskRegistry +from redis import Redis + from buttercup.orchestrator.scheduler.scheduler import Scheduler from buttercup.orchestrator.scheduler.submissions import Submissions diff --git a/orchestrator/test/test_scratch_cleaner.py b/orchestrator/test/test_scratch_cleaner.py index acbaf2b0..406870ea 100644 --- a/orchestrator/test/test_scratch_cleaner.py +++ b/orchestrator/test/test_scratch_cleaner.py @@ -4,10 +4,10 @@ from pathlib import Path from unittest.mock import MagicMock import pytest -from redis import Redis - from buttercup.common.datastructures.msg_pb2 import Task from buttercup.common.task_registry import TaskRegistry +from redis import Redis + from buttercup.orchestrator.scratch_cleaner.scratch_cleaner import ScratchCleaner diff --git a/orchestrator/test/test_submissions.py b/orchestrator/test/test_submissions.py index 46b989f0..4a1291dc 100644 --- a/orchestrator/test/test_submissions.py +++ b/orchestrator/test/test_submissions.py @@ -5,7 +5,6 @@ from typing import Optional from unittest.mock import MagicMock, Mock, patch import pytest - from buttercup.common.clusterfuzz_parser.crash_comparer import CrashComparer from buttercup.common.constants import ARCHITECTURE from buttercup.common.datastructures.msg_pb2 import ( @@ -22,6 +21,7 @@ from buttercup.common.datastructures.msg_pb2 import ( TracedCrash, ) from buttercup.common.task_registry import TaskRegistry + from buttercup.orchestrator.competition_api_client.models.types_bundle_submission_response import ( TypesBundleSubmissionResponse, ) diff --git a/patcher/src/buttercup/patcher/__cli__.py b/patcher/src/buttercup/patcher/__cli__.py index 69027f7b..3cbcd9de 100644 --- a/patcher/src/buttercup/patcher/__cli__.py +++ b/patcher/src/buttercup/patcher/__cli__.py @@ -1,15 +1,15 @@ import logging from pathlib import Path +from buttercup.common.datastructures.msg_pb2 import ConfirmedVulnerability +from buttercup.common.logger import setup_package_logger +from buttercup.common.queues import GroupNames, QueueFactory, QueueNames +from buttercup.common.telemetry import init_telemetry from google.protobuf.text_format import Parse from pydantic_settings import get_subcommand from redis import Redis import buttercup.patcher.cli_load_dotenv # noqa: F401 -from buttercup.common.datastructures.msg_pb2 import ConfirmedVulnerability -from buttercup.common.logger import setup_package_logger -from buttercup.common.queues import GroupNames, QueueFactory, QueueNames -from buttercup.common.telemetry import init_telemetry from buttercup.patcher.config import ProcessCommand, ProcessMsgCommand, ServeCommand, Settings from buttercup.patcher.patcher import Patcher from buttercup.patcher.utils import PatchInput, PatchInputPoV diff --git a/patcher/src/buttercup/patcher/agents/common.py b/patcher/src/buttercup/patcher/agents/common.py index 09c68771..85c8930f 100644 --- a/patcher/src/buttercup/patcher/agents/common.py +++ b/patcher/src/buttercup/patcher/agents/common.py @@ -11,6 +11,9 @@ from enum import Enum from pathlib import Path from typing import Annotated +from buttercup.common.challenge_task import ChallengeTask +from buttercup.common.clusterfuzz_parser import CrashInfo +from buttercup.common.llm import ButtercupLLM, create_default_llm_with_temperature from langchain_core.messages import BaseMessage from langchain_core.output_parsers import StrOutputParser from langchain_core.prompts import ChatPromptTemplate @@ -20,9 +23,6 @@ from langgraph.managed import RemainingSteps from langgraph.prebuilt.chat_agent_executor import AgentStatePydantic from pydantic import BaseModel, Field -from buttercup.common.challenge_task import ChallengeTask -from buttercup.common.clusterfuzz_parser import CrashInfo -from buttercup.common.llm import ButtercupLLM, create_default_llm_with_temperature from buttercup.patcher.utils import ( CHAIN_CALL_TYPE, PatchInput, diff --git a/patcher/src/buttercup/patcher/agents/context_retriever.py b/patcher/src/buttercup/patcher/agents/context_retriever.py index f92651be..3c6e2712 100644 --- a/patcher/src/buttercup/patcher/agents/context_retriever.py +++ b/patcher/src/buttercup/patcher/agents/context_retriever.py @@ -15,6 +15,9 @@ from pathlib import Path from typing import Annotated, Any, Literal import langgraph.errors +from buttercup.common.challenge_task import ChallengeTask +from buttercup.common.llm import ButtercupLLM, create_default_llm +from buttercup.common.stack_parsing import CrashInfo, parse_stacktrace from langchain_core.messages import AIMessage, BaseMessage, HumanMessage, SystemMessage, ToolMessage from langchain_core.output_parsers import StrOutputParser from langchain_core.prompts import ChatPromptTemplate @@ -30,9 +33,6 @@ from langgraph.types import Command from pydantic import Field, ValidationError from redis import Redis -from buttercup.common.challenge_task import ChallengeTask -from buttercup.common.llm import ButtercupLLM, create_default_llm -from buttercup.common.stack_parsing import CrashInfo, parse_stacktrace from buttercup.patcher.agents.common import ( BaseCtxState, CodeSnippetKey, diff --git a/patcher/src/buttercup/patcher/agents/leader.py b/patcher/src/buttercup/patcher/agents/leader.py index 2b7f83c0..07f8c182 100644 --- a/patcher/src/buttercup/patcher/agents/leader.py +++ b/patcher/src/buttercup/patcher/agents/leader.py @@ -5,13 +5,13 @@ from dataclasses import dataclass from pathlib import Path import openai +from buttercup.common.llm import get_langfuse_callbacks +from buttercup.common.telemetry import CRSActionCategory, set_crs_attributes from langchain_core.runnables import RunnableConfig from langgraph.graph import StateGraph from opentelemetry import trace from redis import Redis -from buttercup.common.llm import get_langfuse_callbacks -from buttercup.common.telemetry import CRSActionCategory, set_crs_attributes from buttercup.patcher.agents.common import PatcherAgentBase, PatcherAgentName, PatcherAgentState from buttercup.patcher.agents.config import PatcherConfig from buttercup.patcher.agents.context_retriever import ContextRetrieverAgent diff --git a/patcher/src/buttercup/patcher/agents/qe.py b/patcher/src/buttercup/patcher/agents/qe.py index 597b1e12..640cfd37 100644 --- a/patcher/src/buttercup/patcher/agents/qe.py +++ b/patcher/src/buttercup/patcher/agents/qe.py @@ -8,16 +8,16 @@ from dataclasses import dataclass from pathlib import Path from typing import Literal -from langchain_core.runnables import RunnableConfig -from langchain_core.runnables.config import get_executor_for_config -from langgraph.constants import END -from langgraph.types import Command - from buttercup.common import node_local from buttercup.common.challenge_task import ChallengeTask, ChallengeTaskError, CommandResult from buttercup.common.constants import ARCHITECTURE from buttercup.common.corpus import CrashDir from buttercup.common.project_yaml import ProjectYaml +from langchain_core.runnables import RunnableConfig +from langchain_core.runnables.config import get_executor_for_config +from langgraph.constants import END +from langgraph.types import Command + from buttercup.patcher.agents.common import ( PatchAttempt, PatcherAgentBase, diff --git a/patcher/src/buttercup/patcher/agents/reflection.py b/patcher/src/buttercup/patcher/agents/reflection.py index 8e378328..ea6b1bd4 100644 --- a/patcher/src/buttercup/patcher/agents/reflection.py +++ b/patcher/src/buttercup/patcher/agents/reflection.py @@ -9,6 +9,7 @@ from dataclasses import dataclass, field from itertools import groupby from typing import Literal +from buttercup.common.llm import ButtercupLLM, create_default_llm from langchain_core.output_parsers import StrOutputParser from langchain_core.prompts import ( ChatPromptTemplate, @@ -21,7 +22,6 @@ from langgraph.constants import END from langgraph.types import Command from pydantic import BaseModel, Field -from buttercup.common.llm import ButtercupLLM, create_default_llm from buttercup.patcher.agents.common import ( CodeSnippetRequest, PatchAnalysis, diff --git a/patcher/src/buttercup/patcher/agents/rootcause.py b/patcher/src/buttercup/patcher/agents/rootcause.py index 8f793afd..e22aa0b2 100644 --- a/patcher/src/buttercup/patcher/agents/rootcause.py +++ b/patcher/src/buttercup/patcher/agents/rootcause.py @@ -6,6 +6,8 @@ from dataclasses import dataclass, field from typing import Annotated, Literal import langgraph.errors +from buttercup.common.llm import ButtercupLLM, create_default_llm_with_temperature +from buttercup.common.stack_parsing import parse_stacktrace from langchain_core.messages import BaseMessage from langchain_core.prompts import ( ChatPromptTemplate, @@ -18,8 +20,6 @@ from langgraph.types import Command from pydantic import BaseModel, ValidationError from unidiff import PatchSet -from buttercup.common.llm import ButtercupLLM, create_default_llm_with_temperature -from buttercup.common.stack_parsing import parse_stacktrace from buttercup.patcher.agents.common import ( MAX_STACKTRACE_LENGTH, CodeSnippetRequest, diff --git a/patcher/src/buttercup/patcher/agents/swe.py b/patcher/src/buttercup/patcher/agents/swe.py index 8d0097f1..07240ca3 100644 --- a/patcher/src/buttercup/patcher/agents/swe.py +++ b/patcher/src/buttercup/patcher/agents/swe.py @@ -13,6 +13,7 @@ from pathlib import Path from typing import Annotated, Literal import langgraph.errors +from buttercup.common.llm import ButtercupLLM, create_default_llm_with_temperature from langchain_core.messages import BaseMessage from langchain_core.output_parsers import StrOutputParser from langchain_core.prompts import ( @@ -28,7 +29,6 @@ from langgraph.prebuilt import InjectedState, create_react_agent from langgraph.types import Command from pydantic import BaseModel, Field, ValidationError -from buttercup.common.llm import ButtercupLLM, create_default_llm_with_temperature from buttercup.patcher.agents.common import ( CodeSnippetKey, CodeSnippetRequest, diff --git a/patcher/src/buttercup/patcher/agents/tools.py b/patcher/src/buttercup/patcher/agents/tools.py index be0d77d0..99d1518d 100644 --- a/patcher/src/buttercup/patcher/agents/tools.py +++ b/patcher/src/buttercup/patcher/agents/tools.py @@ -6,14 +6,14 @@ import logging from pathlib import Path from typing import Annotated +from buttercup.common.challenge_task import ChallengeTask, CommandResult +from buttercup.program_model.codequery import CodeQueryPersistent +from buttercup.program_model.utils.common import Function, TypeDefinition from langchain_core.tools import tool from langgraph.prebuilt import InjectedState -from buttercup.common.challenge_task import ChallengeTask, CommandResult from buttercup.patcher.agents.common import BaseCtxState, CodeSnippetKey, ContextCodeSnippet from buttercup.patcher.utils import find_file_in_source_dir, get_challenge, get_codequery, truncate_output -from buttercup.program_model.codequery import CodeQueryPersistent -from buttercup.program_model.utils.common import Function, TypeDefinition logger = logging.getLogger(__name__) diff --git a/patcher/src/buttercup/patcher/patcher.py b/patcher/src/buttercup/patcher/patcher.py index 82aeb9bf..abaa9901 100644 --- a/patcher/src/buttercup/patcher/patcher.py +++ b/patcher/src/buttercup/patcher/patcher.py @@ -7,17 +7,17 @@ from functools import reduce from pathlib import Path from typing import Any -from langchain_community.cache import SQLiteCache -from langchain_core.globals import set_llm_cache -from langchain_core.runnables import Runnable, RunnableConfig -from redis import Redis - from buttercup.common import node_local from buttercup.common.challenge_task import ChallengeTask from buttercup.common.datastructures.msg_pb2 import ConfirmedVulnerability, Patch from buttercup.common.queues import GroupNames, QueueFactory, QueueNames, ReliableQueue, RQItem from buttercup.common.task_registry import TaskRegistry from buttercup.common.utils import serve_loop +from langchain_community.cache import SQLiteCache +from langchain_core.globals import set_llm_cache +from langchain_core.runnables import Runnable, RunnableConfig +from redis import Redis + from buttercup.patcher.agents.leader import PatcherLeaderAgent from buttercup.patcher.utils import PatchInput, PatchInputPoV, PatchOutput diff --git a/patcher/src/buttercup/patcher/utils.py b/patcher/src/buttercup/patcher/utils.py index cc90af4d..1941a808 100644 --- a/patcher/src/buttercup/patcher/utils.py +++ b/patcher/src/buttercup/patcher/utils.py @@ -8,14 +8,13 @@ from functools import lru_cache from pathlib import Path from typing import Any, cast +from buttercup.common.challenge_task import ChallengeTask +from buttercup.program_model.codequery import CodeQueryPersistent from langchain_core.exceptions import OutputParserException from langchain_core.messages import AIMessage from langchain_core.runnables import Runnable, RunnableConfig from pydantic import BaseModel -from buttercup.common.challenge_task import ChallengeTask -from buttercup.program_model.codequery import CodeQueryPersistent - VALID_PATCH_EXTENSIONS = (".c", ".h", ".in", ".java") CHAIN_CALL_TYPE = Callable[[Callable, Runnable, dict[str, Any], RunnableConfig | None, Any], Any] diff --git a/patcher/tests/test_context_retriever.py b/patcher/tests/test_context_retriever.py index 6da06f46..bef2d37b 100644 --- a/patcher/tests/test_context_retriever.py +++ b/patcher/tests/test_context_retriever.py @@ -9,6 +9,8 @@ from pathlib import Path from unittest.mock import MagicMock, patch import pytest +from buttercup.common.challenge_task import ChallengeTask, CommandResult +from buttercup.common.task_meta import TaskMeta from langchain_core.language_models import BaseChatModel from langchain_core.messages import AIMessage from langchain_core.messages.tool import ToolCall @@ -18,8 +20,6 @@ from langgraph.types import Command from pydantic import BaseModel from redis import Redis -from buttercup.common.challenge_task import ChallengeTask, CommandResult -from buttercup.common.task_meta import TaskMeta from buttercup.patcher.agents.common import ( CodeSnippetKey, CodeSnippetRequest, diff --git a/patcher/tests/test_patcher.py b/patcher/tests/test_patcher.py index c8c51d40..e30d6e2a 100644 --- a/patcher/tests/test_patcher.py +++ b/patcher/tests/test_patcher.py @@ -4,12 +4,12 @@ from pathlib import Path from unittest.mock import MagicMock, patch import pytest -from redis import Redis - from buttercup.common.challenge_task import ChallengeTask, TaskMeta from buttercup.common.datastructures.msg_pb2 import BuildOutput, ConfirmedVulnerability, Crash, Task, TracedCrash from buttercup.common.queues import RQItem from buttercup.common.task_registry import TaskRegistry +from redis import Redis + from buttercup.patcher.agents.common import ( CodeSnippetRequest, PatchAttempt, diff --git a/patcher/tests/test_qe.py b/patcher/tests/test_qe.py index c0148f60..bbaa4d2b 100644 --- a/patcher/tests/test_qe.py +++ b/patcher/tests/test_qe.py @@ -5,12 +5,12 @@ from pathlib import Path from unittest.mock import MagicMock, patch import pytest +from buttercup.common.challenge_task import ChallengeTask, ChallengeTaskError from langchain_core.language_models import BaseChatModel from langchain_core.messages import AIMessage from langchain_core.runnables import RunnableSequence from langgraph.types import Command -from buttercup.common.challenge_task import ChallengeTask, ChallengeTaskError from buttercup.patcher.agents.common import ( PatchAttempt, PatcherAgentName, diff --git a/patcher/tests/test_reflection.py b/patcher/tests/test_reflection.py index a2e3ef01..e1d8d46e 100644 --- a/patcher/tests/test_reflection.py +++ b/patcher/tests/test_reflection.py @@ -7,13 +7,13 @@ from pathlib import Path from unittest.mock import MagicMock, patch import pytest +from buttercup.common.challenge_task import ChallengeTask +from buttercup.common.task_meta import TaskMeta from langchain_core.language_models import BaseChatModel from langchain_core.runnables import Runnable, RunnableSequence from langgraph.constants import END from langgraph.types import Command -from buttercup.common.challenge_task import ChallengeTask -from buttercup.common.task_meta import TaskMeta from buttercup.patcher.agents.common import ( ExecutionInfo, PatchAttempt, diff --git a/patcher/tests/test_rootcause.py b/patcher/tests/test_rootcause.py index c4f9c40c..0eb89e4a 100644 --- a/patcher/tests/test_rootcause.py +++ b/patcher/tests/test_rootcause.py @@ -8,12 +8,12 @@ from pathlib import Path from unittest.mock import MagicMock, patch import pytest +from buttercup.common.challenge_task import ChallengeTask +from buttercup.common.task_meta import TaskMeta from langchain_core.language_models import BaseChatModel from langchain_core.messages import AIMessage from langchain_core.runnables import Runnable, RunnableSequence -from buttercup.common.challenge_task import ChallengeTask -from buttercup.common.task_meta import TaskMeta from buttercup.patcher.agents.common import ( CodeSnippetKey, ContextCodeSnippet, diff --git a/patcher/tests/test_swe.py b/patcher/tests/test_swe.py index 18d4962c..41c70d79 100644 --- a/patcher/tests/test_swe.py +++ b/patcher/tests/test_swe.py @@ -7,11 +7,11 @@ from pathlib import Path from unittest.mock import MagicMock, patch import pytest +from buttercup.common.challenge_task import ChallengeTask +from buttercup.common.task_meta import TaskMeta from langchain_core.language_models import BaseChatModel from langchain_core.messages import AIMessage -from buttercup.common.challenge_task import ChallengeTask -from buttercup.common.task_meta import TaskMeta from buttercup.patcher.agents.common import ContextCodeSnippet from buttercup.patcher.agents.swe import ( CodeSnippetChange, diff --git a/patcher/tests/test_utils.py b/patcher/tests/test_utils.py index b554a9f4..c54ffcc3 100644 --- a/patcher/tests/test_utils.py +++ b/patcher/tests/test_utils.py @@ -4,10 +4,10 @@ from pathlib import Path from unittest.mock import patch import pytest -from langchain_core.runnables import RunnableConfig - from buttercup.common.challenge_task import ChallengeTask from buttercup.common.task_meta import TaskMeta +from langchain_core.runnables import RunnableConfig + from buttercup.patcher.agents.config import PatcherConfig from buttercup.patcher.utils import find_file_in_source_dir diff --git a/program-model/src/buttercup/program_model/__cli__.py b/program-model/src/buttercup/program_model/__cli__.py index a0311922..c478790e 100644 --- a/program-model/src/buttercup/program_model/__cli__.py +++ b/program-model/src/buttercup/program_model/__cli__.py @@ -1,11 +1,11 @@ import logging -from pydantic_settings import get_subcommand -from redis import Redis - from buttercup.common.datastructures.msg_pb2 import IndexRequest from buttercup.common.logger import setup_package_logger from buttercup.common.telemetry import init_telemetry +from pydantic_settings import get_subcommand +from redis import Redis + from buttercup.program_model.program_model import ProgramModel from buttercup.program_model.settings import ( ProcessCommand, diff --git a/program-model/src/buttercup/program_model/api/fuzzy_imports_resolver.py b/program-model/src/buttercup/program_model/api/fuzzy_imports_resolver.py index bbdadeef..be22b14e 100644 --- a/program-model/src/buttercup/program_model/api/fuzzy_imports_resolver.py +++ b/program-model/src/buttercup/program_model/api/fuzzy_imports_resolver.py @@ -3,6 +3,7 @@ from collections import defaultdict from pathlib import Path from buttercup.common.challenge_task import ChallengeTask + from buttercup.program_model.utils.common import Function, TypeDefinition diff --git a/program-model/src/buttercup/program_model/api/tree_sitter.py b/program-model/src/buttercup/program_model/api/tree_sitter.py index ab506879..4cd9ae00 100644 --- a/program-model/src/buttercup/program_model/api/tree_sitter.py +++ b/program-model/src/buttercup/program_model/api/tree_sitter.py @@ -7,10 +7,10 @@ from functools import lru_cache from pathlib import Path from typing import Any -from tree_sitter_language_pack import get_language, get_parser - from buttercup.common.challenge_task import ChallengeTask from buttercup.common.project_yaml import Language, ProjectYaml +from tree_sitter_language_pack import get_language, get_parser + from buttercup.program_model.utils.common import ( Function, FunctionBody, diff --git a/program-model/src/buttercup/program_model/codequery.py b/program-model/src/buttercup/program_model/codequery.py index d032a898..bc07904b 100644 --- a/program-model/src/buttercup/program_model/codequery.py +++ b/program-model/src/buttercup/program_model/codequery.py @@ -12,12 +12,12 @@ from pathlib import Path from typing import ClassVar import rapidfuzz -from opentelemetry import trace -from opentelemetry.trace import Status, StatusCode - from buttercup.common.challenge_task import ChallengeTask, ChallengeTaskError from buttercup.common.project_yaml import Language, ProjectYaml from buttercup.common.telemetry import CRSActionCategory, set_crs_attributes +from opentelemetry import trace +from opentelemetry.trace import Status, StatusCode + from buttercup.program_model.api.fuzzy_imports_resolver import ( FuzzyCImportsResolver, FuzzyJavaImportsResolver, diff --git a/program-model/src/buttercup/program_model/program_model.py b/program-model/src/buttercup/program_model/program_model.py index 90575d80..09caa933 100644 --- a/program-model/src/buttercup/program_model/program_model.py +++ b/program-model/src/buttercup/program_model/program_model.py @@ -3,10 +3,6 @@ from dataclasses import dataclass, field from pathlib import Path from typing import Any -from opentelemetry import trace -from opentelemetry.trace import Status, StatusCode -from redis import Redis - from buttercup.common import node_local from buttercup.common.challenge_task import ChallengeTask from buttercup.common.datastructures.msg_pb2 import IndexOutput, IndexRequest @@ -19,6 +15,10 @@ from buttercup.common.queues import ( from buttercup.common.task_registry import TaskRegistry from buttercup.common.telemetry import CRSActionCategory, set_crs_attributes from buttercup.common.utils import serve_loop +from opentelemetry import trace +from opentelemetry.trace import Status, StatusCode +from redis import Redis + from buttercup.program_model.codequery import CodeQueryPersistent logger = logging.getLogger(__name__) diff --git a/program-model/tests/c/test_dropbear.py b/program-model/tests/c/test_dropbear.py index a2d99bd5..ea8d97c3 100644 --- a/program-model/tests/c/test_dropbear.py +++ b/program-model/tests/c/test_dropbear.py @@ -1,6 +1,6 @@ import pytest - from buttercup.common.challenge_task import ChallengeTask + from buttercup.program_model.codequery import CodeQuery from ..common import ( diff --git a/program-model/tests/c/test_freerdp.py b/program-model/tests/c/test_freerdp.py index 5d75b961..cf3ac72b 100644 --- a/program-model/tests/c/test_freerdp.py +++ b/program-model/tests/c/test_freerdp.py @@ -1,6 +1,6 @@ import pytest - from buttercup.common.challenge_task import ChallengeTask + from buttercup.program_model.codequery import CodeQuery from ..common import ( diff --git a/program-model/tests/c/test_fuzzy_imports_resolver.py b/program-model/tests/c/test_fuzzy_imports_resolver.py index 0f57faac..11a62f53 100644 --- a/program-model/tests/c/test_fuzzy_imports_resolver.py +++ b/program-model/tests/c/test_fuzzy_imports_resolver.py @@ -1,6 +1,6 @@ import pytest - from buttercup.common.challenge_task import ChallengeTask + from buttercup.program_model.api.fuzzy_imports_resolver import FuzzyCImportsResolver diff --git a/program-model/tests/c/test_hdf5.py b/program-model/tests/c/test_hdf5.py index 00b4ba45..2662107c 100644 --- a/program-model/tests/c/test_hdf5.py +++ b/program-model/tests/c/test_hdf5.py @@ -1,6 +1,6 @@ import pytest - from buttercup.common.challenge_task import ChallengeTask + from buttercup.program_model.codequery import CodeQuery from buttercup.program_model.utils.common import TypeDefinitionType diff --git a/program-model/tests/c/test_libjpeg_turbo.py b/program-model/tests/c/test_libjpeg_turbo.py index 12f4befa..666204c2 100644 --- a/program-model/tests/c/test_libjpeg_turbo.py +++ b/program-model/tests/c/test_libjpeg_turbo.py @@ -1,8 +1,8 @@ """CodeQuery primitives testing""" import pytest - from buttercup.common.challenge_task import ChallengeTask + from buttercup.program_model.codequery import CodeQuery from buttercup.program_model.utils.common import TypeDefinitionType diff --git a/program-model/tests/c/test_libpng.py b/program-model/tests/c/test_libpng.py index 5613f8d0..3ba2bdea 100644 --- a/program-model/tests/c/test_libpng.py +++ b/program-model/tests/c/test_libpng.py @@ -1,6 +1,6 @@ import pytest - from buttercup.common.challenge_task import ChallengeTask + from buttercup.program_model.codequery import CodeQuery from ..common import ( diff --git a/program-model/tests/c/test_libxml2.py b/program-model/tests/c/test_libxml2.py index ab2de052..4e86ffd1 100644 --- a/program-model/tests/c/test_libxml2.py +++ b/program-model/tests/c/test_libxml2.py @@ -1,6 +1,6 @@ import pytest - from buttercup.common.challenge_task import ChallengeTask + from buttercup.program_model.codequery import CodeQuery from ..common import ( diff --git a/program-model/tests/c/test_sqlite.py b/program-model/tests/c/test_sqlite.py index 970de1e5..8886b8ad 100644 --- a/program-model/tests/c/test_sqlite.py +++ b/program-model/tests/c/test_sqlite.py @@ -1,6 +1,6 @@ import pytest - from buttercup.common.challenge_task import ChallengeTask + from buttercup.program_model.codequery import CodeQuery from ..common import ( diff --git a/program-model/tests/common.py b/program-model/tests/common.py index e8d1b844..5583a57c 100644 --- a/program-model/tests/common.py +++ b/program-model/tests/common.py @@ -3,9 +3,9 @@ from dataclasses import dataclass from pathlib import Path import pytest - from buttercup.common.challenge_task import ChallengeTask from buttercup.common.project_yaml import Language + from buttercup.program_model.codequery import CodeQuery from buttercup.program_model.utils.common import ( Function, diff --git a/program-model/tests/conftest.py b/program-model/tests/conftest.py index 157fadcb..4fdaf3a2 100644 --- a/program-model/tests/conftest.py +++ b/program-model/tests/conftest.py @@ -6,9 +6,9 @@ from pathlib import Path from unittest.mock import patch import pytest - from buttercup.common.challenge_task import ChallengeTask from buttercup.common.task_meta import TaskMeta + from buttercup.program_model.codequery import CodeQuery logger = logging.getLogger(__name__) diff --git a/program-model/tests/java/test_bc.py b/program-model/tests/java/test_bc.py index caa1e29e..e9a6fbdb 100644 --- a/program-model/tests/java/test_bc.py +++ b/program-model/tests/java/test_bc.py @@ -1,8 +1,8 @@ """CodeQuery primitives testing""" import pytest - from buttercup.common.challenge_task import ChallengeTask + from buttercup.program_model.codequery import CodeQuery from ..common import ( diff --git a/program-model/tests/java/test_checkstyle.py b/program-model/tests/java/test_checkstyle.py index e7a081ee..3be7993a 100644 --- a/program-model/tests/java/test_checkstyle.py +++ b/program-model/tests/java/test_checkstyle.py @@ -1,8 +1,8 @@ """CodeQuery primitives testing""" import pytest - from buttercup.common.challenge_task import ChallengeTask + from buttercup.program_model.codequery import CodeQuery from ..common import ( diff --git a/program-model/tests/java/test_commons_codec.py b/program-model/tests/java/test_commons_codec.py index 3429cc2d..7f7ee5fd 100644 --- a/program-model/tests/java/test_commons_codec.py +++ b/program-model/tests/java/test_commons_codec.py @@ -1,8 +1,8 @@ """CodeQuery primitives testing""" import pytest - from buttercup.common.challenge_task import ChallengeTask + from buttercup.program_model.codequery import CodeQuery from ..common import ( diff --git a/program-model/tests/java/test_commons_compress.py b/program-model/tests/java/test_commons_compress.py index 1c35a72d..e1877c98 100644 --- a/program-model/tests/java/test_commons_compress.py +++ b/program-model/tests/java/test_commons_compress.py @@ -1,6 +1,6 @@ import pytest - from buttercup.common.challenge_task import ChallengeTask + from buttercup.program_model.codequery import CodeQuery from ..common import ( diff --git a/program-model/tests/java/test_graphql.py b/program-model/tests/java/test_graphql.py index 9f0feebf..00c494bc 100644 --- a/program-model/tests/java/test_graphql.py +++ b/program-model/tests/java/test_graphql.py @@ -1,8 +1,8 @@ """CodeQuery primitives testing""" import pytest - from buttercup.common.challenge_task import ChallengeTask + from buttercup.program_model.codequery import CodeQuery from ..common import ( diff --git a/program-model/tests/java/test_log4j2.py b/program-model/tests/java/test_log4j2.py index f491bb46..be9a92de 100644 --- a/program-model/tests/java/test_log4j2.py +++ b/program-model/tests/java/test_log4j2.py @@ -3,8 +3,8 @@ from pathlib import Path import pytest - from buttercup.common.challenge_task import ChallengeTask + from buttercup.program_model.codequery import CodeQuery from ..common import ( diff --git a/program-model/tests/java/test_zookeeper.py b/program-model/tests/java/test_zookeeper.py index 0f4780b8..b87509f7 100644 --- a/program-model/tests/java/test_zookeeper.py +++ b/program-model/tests/java/test_zookeeper.py @@ -1,8 +1,8 @@ """CodeQuery primitives testing""" import pytest - from buttercup.common.challenge_task import ChallengeTask + from buttercup.program_model.codequery import CodeQuery from buttercup.program_model.utils.common import TypeDefinitionType diff --git a/program-model/tests/test_codequery.py b/program-model/tests/test_codequery.py index 98ee5ccd..00b68b07 100644 --- a/program-model/tests/test_codequery.py +++ b/program-model/tests/test_codequery.py @@ -6,9 +6,9 @@ from pathlib import Path from unittest.mock import patch import pytest - from buttercup.common.challenge_task import ChallengeTask from buttercup.common.task_meta import TaskMeta + from buttercup.program_model.codequery import CodeQuery, CodeQueryPersistent from buttercup.program_model.utils.common import TypeDefinitionType diff --git a/program-model/tests/test_fuzzy.py b/program-model/tests/test_fuzzy.py index cc8e7d5c..fd467080 100644 --- a/program-model/tests/test_fuzzy.py +++ b/program-model/tests/test_fuzzy.py @@ -1,8 +1,8 @@ """Fuzzy matching testing""" import pytest - from buttercup.common.challenge_task import ChallengeTask + from buttercup.program_model.codequery import CodeQuery diff --git a/program-model/tests/test_macros.py b/program-model/tests/test_macros.py index 42bb24ae..cca8f33d 100644 --- a/program-model/tests/test_macros.py +++ b/program-model/tests/test_macros.py @@ -1,8 +1,8 @@ """Macros testing""" import pytest - from buttercup.common.challenge_task import ChallengeTask + from buttercup.program_model.codequery import CodeQuery from .common import ( diff --git a/program-model/tests/test_program_model.py b/program-model/tests/test_program_model.py index d56225e8..9f9bb2ae 100644 --- a/program-model/tests/test_program_model.py +++ b/program-model/tests/test_program_model.py @@ -1,10 +1,10 @@ from unittest.mock import MagicMock, Mock, patch import pytest -from redis import Redis - from buttercup.common.datastructures.msg_pb2 import IndexRequest from buttercup.common.task_registry import TaskRegistry +from redis import Redis + from buttercup.program_model.program_model import ProgramModel diff --git a/program-model/tests/test_tree_sitter.py b/program-model/tests/test_tree_sitter.py index e82c0390..c49ccf41 100644 --- a/program-model/tests/test_tree_sitter.py +++ b/program-model/tests/test_tree_sitter.py @@ -2,9 +2,9 @@ from dataclasses import dataclass from pathlib import Path import pytest - from buttercup.common.challenge_task import ChallengeTask from buttercup.common.task_meta import TaskMeta + from buttercup.program_model.api.tree_sitter import CodeTS, TypeDefinitionType diff --git a/seed-gen/src/buttercup/seed_gen/_cli.py b/seed-gen/src/buttercup/seed_gen/_cli.py index 0ce84eb1..ae51dc5e 100644 --- a/seed-gen/src/buttercup/seed_gen/_cli.py +++ b/seed-gen/src/buttercup/seed_gen/_cli.py @@ -6,10 +6,6 @@ import shutil import tempfile from pathlib import Path -from pydantic_settings import get_subcommand -from redis import Redis - -import buttercup.seed_gen.cli_load_dotenv # noqa: F401 from buttercup.common.challenge_task import ChallengeTask from buttercup.common.datastructures.msg_pb2 import BuildOutput from buttercup.common.logger import setup_package_logger @@ -17,6 +13,10 @@ from buttercup.common.project_yaml import ProjectYaml from buttercup.common.reproduce_multiple import ReproduceMultiple from buttercup.common.telemetry import init_telemetry from buttercup.program_model.codequery import CodeQueryPersistent +from pydantic_settings import get_subcommand +from redis import Redis + +import buttercup.seed_gen.cli_load_dotenv # noqa: F401 from buttercup.seed_gen.config import ProcessCommand, Settings from buttercup.seed_gen.seed_explore import SeedExploreTask from buttercup.seed_gen.seed_gen_bot import SeedGenBot diff --git a/seed-gen/src/buttercup/seed_gen/find_harness.py b/seed-gen/src/buttercup/seed_gen/find_harness.py index 2c05e864..e7bf03b6 100644 --- a/seed-gen/src/buttercup/seed_gen/find_harness.py +++ b/seed-gen/src/buttercup/seed_gen/find_harness.py @@ -6,12 +6,11 @@ from dataclasses import dataclass from pathlib import Path import rapidfuzz -from pydantic import BaseModel -from redis import Redis - from buttercup.common.maps import CoverageMap from buttercup.common.project_yaml import Language, ProjectYaml from buttercup.program_model.codequery import CONTAINER_SRC_DIR, CodeQuery +from pydantic import BaseModel +from redis import Redis logger = logging.getLogger(__name__) diff --git a/seed-gen/src/buttercup/seed_gen/function_selector.py b/seed-gen/src/buttercup/seed_gen/function_selector.py index cb599327..8b94e376 100644 --- a/seed-gen/src/buttercup/seed_gen/function_selector.py +++ b/seed-gen/src/buttercup/seed_gen/function_selector.py @@ -2,10 +2,9 @@ import logging import random import numpy as np -from redis import Redis - from buttercup.common.datastructures.msg_pb2 import FunctionCoverage, WeightedHarness from buttercup.common.maps import CoverageMap +from redis import Redis logger = logging.getLogger(__name__) diff --git a/seed-gen/src/buttercup/seed_gen/seed_explore.py b/seed-gen/src/buttercup/seed_gen/seed_explore.py index 7d078067..0fcb8a3b 100644 --- a/seed-gen/src/buttercup/seed_gen/seed_explore.py +++ b/seed-gen/src/buttercup/seed_gen/seed_explore.py @@ -2,13 +2,13 @@ import logging from pathlib import Path from typing import override +from buttercup.common.llm import get_langfuse_callbacks +from buttercup.common.telemetry import CRSActionCategory, set_crs_attributes from langchain_core.runnables import RunnableConfig from langgraph.types import Command from opentelemetry import trace from pydantic import Field -from buttercup.common.llm import get_langfuse_callbacks -from buttercup.common.telemetry import CRSActionCategory, set_crs_attributes from buttercup.seed_gen.prompt.seed_explore import ( PYTHON_SEED_EXPLORE_SYSTEM_PROMPT, PYTHON_SEED_EXPLORE_USER_PROMPT, diff --git a/seed-gen/src/buttercup/seed_gen/seed_gen_bot.py b/seed-gen/src/buttercup/seed_gen/seed_gen_bot.py index e97441b6..0ea9bee9 100644 --- a/seed-gen/src/buttercup/seed_gen/seed_gen_bot.py +++ b/seed-gen/src/buttercup/seed_gen/seed_gen_bot.py @@ -4,8 +4,6 @@ import random import tempfile from pathlib import Path -from redis import Redis - from buttercup.common.challenge_task import ChallengeTask from buttercup.common.corpus import Corpus, CrashDir from buttercup.common.datastructures.msg_pb2 import BuildOutput, BuildType, WeightedHarness @@ -16,6 +14,8 @@ from buttercup.common.reproduce_multiple import ReproduceMultiple from buttercup.common.sarif_store import SARIFStore from buttercup.common.stack_parsing import CrashSet from buttercup.program_model.codequery import CodeQueryPersistent +from redis import Redis + from buttercup.seed_gen.function_selector import FunctionSelector from buttercup.seed_gen.seed_explore import SeedExploreTask from buttercup.seed_gen.seed_init import SeedInitTask diff --git a/seed-gen/src/buttercup/seed_gen/seed_init.py b/seed-gen/src/buttercup/seed_gen/seed_init.py index e3b179b2..e9ffad73 100644 --- a/seed-gen/src/buttercup/seed_gen/seed_init.py +++ b/seed-gen/src/buttercup/seed_gen/seed_init.py @@ -3,12 +3,12 @@ from dataclasses import dataclass from pathlib import Path from typing import override +from buttercup.common.llm import get_langfuse_callbacks +from buttercup.common.telemetry import CRSActionCategory, set_crs_attributes from langchain_core.runnables import RunnableConfig from langgraph.types import Command from opentelemetry import trace -from buttercup.common.llm import get_langfuse_callbacks -from buttercup.common.telemetry import CRSActionCategory, set_crs_attributes from buttercup.seed_gen.prompt.seed_init import ( PYTHON_SEED_INIT_SYSTEM_PROMPT, PYTHON_SEED_INIT_USER_PROMPT, diff --git a/seed-gen/src/buttercup/seed_gen/task.py b/seed-gen/src/buttercup/seed_gen/task.py index f242076d..14a60862 100644 --- a/seed-gen/src/buttercup/seed_gen/task.py +++ b/seed-gen/src/buttercup/seed_gen/task.py @@ -7,6 +7,11 @@ from enum import Enum from pathlib import Path from typing import Annotated, Any, ClassVar +from buttercup.common.challenge_task import ChallengeTask +from buttercup.common.llm import ButtercupLLM, create_default_llm, get_langfuse_callbacks +from buttercup.common.project_yaml import ProjectYaml +from buttercup.program_model.codequery import CodeQueryPersistent +from buttercup.program_model.utils.common import Function, TypeDefinition from langchain.prompts import ChatPromptTemplate from langchain_core.language_models import BaseChatModel from langchain_core.messages import BaseMessage, ToolMessage @@ -18,11 +23,6 @@ from langgraph.types import Command from pydantic import BaseModel, ConfigDict, Field from redis import Redis -from buttercup.common.challenge_task import ChallengeTask -from buttercup.common.llm import ButtercupLLM, create_default_llm, get_langfuse_callbacks -from buttercup.common.project_yaml import ProjectYaml -from buttercup.program_model.codequery import CodeQueryPersistent -from buttercup.program_model.utils.common import Function, TypeDefinition from buttercup.seed_gen.find_harness import HarnessInfo, get_harness_source from buttercup.seed_gen.sandbox.sandbox import sandbox_exec_funcs from buttercup.seed_gen.utils import extract_code diff --git a/seed-gen/src/buttercup/seed_gen/vuln_base_task.py b/seed-gen/src/buttercup/seed_gen/vuln_base_task.py index 5569ffdc..4d910d4e 100644 --- a/seed-gen/src/buttercup/seed_gen/vuln_base_task.py +++ b/seed-gen/src/buttercup/seed_gen/vuln_base_task.py @@ -8,15 +8,6 @@ from dataclasses import dataclass from pathlib import Path from typing import Annotated, Any, ClassVar -from langchain_core.output_parsers import StrOutputParser -from langchain_core.prompts.chat import ChatPromptTemplate -from langchain_core.runnables import RunnableConfig -from langgraph.graph import END, StateGraph -from langgraph.prebuilt import ToolNode -from langgraph.types import Command -from opentelemetry import trace -from pydantic import Field - from buttercup.common import stack_parsing from buttercup.common.challenge_task import ChallengeTaskError from buttercup.common.corpus import CrashDir @@ -28,6 +19,15 @@ from buttercup.common.reproduce_multiple import ReproduceMultiple, ReproduceResu from buttercup.common.sarif_store import SARIFBroadcastDetail from buttercup.common.stack_parsing import CrashSet from buttercup.common.telemetry import CRSActionCategory, set_crs_attributes +from langchain_core.output_parsers import StrOutputParser +from langchain_core.prompts.chat import ChatPromptTemplate +from langchain_core.runnables import RunnableConfig +from langgraph.graph import END, StateGraph +from langgraph.prebuilt import ToolNode +from langgraph.types import Command +from opentelemetry import trace +from pydantic import Field + from buttercup.seed_gen.prompt.vuln_discovery import ( C_CWE_LIST, COMMON_CWE_LIST, diff --git a/seed-gen/test/conftest.py b/seed-gen/test/conftest.py index 36445f40..2bb3a435 100644 --- a/seed-gen/test/conftest.py +++ b/seed-gen/test/conftest.py @@ -5,17 +5,17 @@ from pathlib import Path from unittest.mock import MagicMock, Mock import pytest -from langchain_core.language_models import BaseChatModel -from langchain_core.messages import AIMessage -from langchain_core.messages.tool import ToolCall -from redis import Redis - from buttercup.common.challenge_task import ChallengeTask from buttercup.common.project_yaml import Language, ProjectYaml from buttercup.common.reproduce_multiple import ReproduceMultiple from buttercup.common.stack_parsing import CrashSet from buttercup.common.task_meta import TaskMeta from buttercup.program_model.codequery import CodeQueryPersistent +from langchain_core.language_models import BaseChatModel +from langchain_core.messages import AIMessage +from langchain_core.messages.tool import ToolCall +from redis import Redis + from buttercup.seed_gen.find_harness import HarnessInfo diff --git a/seed-gen/test/test_find_harness.py b/seed-gen/test/test_find_harness.py index 1044e7de..6ca77e5b 100644 --- a/seed-gen/test/test_find_harness.py +++ b/seed-gen/test/test_find_harness.py @@ -7,13 +7,13 @@ from pathlib import Path from unittest.mock import MagicMock, patch import pytest -from redis import Redis - -import buttercup.seed_gen.find_harness from buttercup.common.challenge_task import ChallengeTask from buttercup.common.maps import FunctionCoverage from buttercup.common.task_meta import TaskMeta from buttercup.program_model.codequery import CONTAINER_SRC_DIR, CodeQuery +from redis import Redis + +import buttercup.seed_gen.find_harness from buttercup.seed_gen.find_harness import ( find_jazzer_harnesses, find_libfuzzer_harnesses, diff --git a/seed-gen/test/test_vuln_discovery_full.py b/seed-gen/test/test_vuln_discovery_full.py index 731687cb..ca8ecb31 100644 --- a/seed-gen/test/test_vuln_discovery_full.py +++ b/seed-gen/test/test_vuln_discovery_full.py @@ -3,11 +3,11 @@ from unittest.mock import MagicMock, Mock, patch import pytest +from buttercup.common.datastructures.msg_pb2 import BuildOutput, Crash +from buttercup.common.reproduce_multiple import ReproduceResult from langchain_core.messages import AIMessage from langchain_core.messages.tool import ToolCall -from buttercup.common.datastructures.msg_pb2 import BuildOutput, Crash -from buttercup.common.reproduce_multiple import ReproduceResult from buttercup.seed_gen.vuln_discovery_full import VulnDiscoveryFullTask from test.conftest import ( mock_sandbox_exec_funcs,