Skip to content

Commit 62a5e85

Browse files
committed
fix: use top-level direct imports where possible, inline only where circular
Move imports from mteb.get_tasks, mteb.models.get_model_meta, and mteb.benchmarks.get_benchmark to top-level in files where it doesn't cause circular dependencies (abs_encoder, cache, deprecated_evaluator). Keep inline imports only in task_metadata.py and task_result.py where circular dependency chains make top-level imports impossible. Replace `import mteb` with direct submodule imports throughout.
1 parent ebf4db7 commit 62a5e85

File tree

4 files changed

+8
-15
lines changed

4 files changed

+8
-15
lines changed

mteb/abstasks/task_metadata.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -587,11 +587,10 @@ def _create_dataset_card_data(
587587
multilinguality = "translated"
588588

589589
if self.adapted_from is not None:
590-
import mteb
590+
from mteb.get_tasks import get_tasks
591591

592592
source_datasets = [
593-
task.metadata.dataset["path"]
594-
for task in mteb.get_tasks(self.adapted_from)
593+
task.metadata.dataset["path"] for task in get_tasks(self.adapted_from)
595594
]
596595
source_datasets.append(self.dataset["path"])
597596
else:

mteb/cache.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919
from mteb._helpful_enum import HelpfulStrEnum
2020
from mteb.abstasks import AbsTask
2121
from mteb.benchmarks.benchmark import Benchmark
22+
from mteb.benchmarks.get_benchmark import get_benchmark
2223
from mteb.models import ModelMeta
24+
from mteb.models.get_model_meta import get_model_metas
2325
from mteb.models.model_meta import _serialize_experiment_kwargs_to_name
2426
from mteb.results import BenchmarkResults, ModelResult, TaskResult
2527

@@ -545,11 +547,9 @@ def _rebuild_from_full_repository(self, quick_cache_path: Path) -> BenchmarkResu
545547
# Download or update the full repository
546548
self.download_from_remote()
547549

548-
import mteb
549-
550550
all_model_names = [
551551
model_meta.name
552-
for model_meta in mteb.get_model_metas()
552+
for model_meta in get_model_metas()
553553
if model_meta.name is not None
554554
]
555555

@@ -862,9 +862,7 @@ def load_results(
862862
... )
863863
"""
864864
if isinstance(tasks, str):
865-
import mteb
866-
867-
tasks = mteb.get_benchmark(tasks)
865+
tasks = get_benchmark(tasks)
868866

869867
if isinstance(load_experiments, str):
870868
load_experiments = LoadExperimentEnum.from_str(load_experiments)

mteb/deprecated_evaluator.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
from mteb.abstasks import AbsTask
1919
from mteb.benchmarks import Benchmark
20+
from mteb.get_tasks import get_tasks
2021
from mteb.models import (
2122
CrossEncoderWrapper,
2223
ModelMeta,
@@ -155,8 +156,6 @@ def mteb_benchmarks(self):
155156
@classmethod
156157
def mteb_tasks(cls):
157158
"""Get all tasks available in the MTEB."""
158-
from mteb.get_tasks import get_tasks
159-
160159
tasks = get_tasks()
161160
instance = cls(tasks)
162161
instance._display_tasks(tasks, name="MTEB tasks")

mteb/models/abs_encoder.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from typing import TYPE_CHECKING, Any, Literal, cast, get_args, overload
77

88
from mteb.abstasks.task_metadata import TaskType
9+
from mteb.get_tasks import get_task
910
from mteb.similarity_functions import (
1011
cos_sim,
1112
dot_score,
@@ -165,8 +166,6 @@ def validate_task_to_prompt_name(
165166

166167
if task_name not in task_types and task_name not in prompt_types:
167168
try:
168-
from mteb.get_tasks import get_task
169-
170169
get_task(task_name=task_name)
171170
except KeyError:
172171
msg = f"Task name {task_name} is not valid. {valid_keys_msg}"
@@ -225,8 +224,6 @@ def get_instruction(
225224
if prompt:
226225
return prompt
227226

228-
from mteb.get_tasks import get_task
229-
230227
abstask = get_task(task_name=task_metadata.name)
231228
return abstask.abstask_prompt
232229

0 commit comments

Comments
 (0)