Skip to content

Commit ff33d8e

Browse files
committed
move runs to run with better class name
2 parents 48fa391 + 567eca4 commit ff33d8e

36 files changed

Lines changed: 860 additions & 363 deletions

openml/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
utils,
3434
)
3535
from .__version__ import __version__
36+
from ._api import _backend
3637
from .datasets import OpenMLDataFeature, OpenMLDataset
3738
from .evaluations import OpenMLEvaluation
3839
from .flows import OpenMLFlow
@@ -109,6 +110,7 @@ def populate_cache(
109110
"OpenMLTask",
110111
"__version__",
111112
"_api_calls",
113+
"_backend",
112114
"config",
113115
"datasets",
114116
"evaluations",

openml/_api/__init__.py

Lines changed: 94 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,95 @@
1-
from openml._api.runtime.core import APIContext
1+
from .clients import (
2+
HTTPCache,
3+
HTTPClient,
4+
MinIOClient,
5+
)
6+
from .resources import (
7+
API_REGISTRY,
8+
DatasetAPI,
9+
DatasetV1API,
10+
DatasetV2API,
11+
EstimationProcedureAPI,
12+
EstimationProcedureV1API,
13+
EstimationProcedureV2API,
14+
EvaluationAPI,
15+
EvaluationMeasureAPI,
16+
EvaluationMeasureV1API,
17+
EvaluationMeasureV2API,
18+
EvaluationV1API,
19+
EvaluationV2API,
20+
FallbackProxy,
21+
FlowAPI,
22+
FlowV1API,
23+
FlowV2API,
24+
ResourceAPI,
25+
ResourceV1API,
26+
ResourceV2API,
27+
RunAPI,
28+
RunV1API,
29+
RunV2API,
30+
SetupAPI,
31+
SetupV1API,
32+
SetupV2API,
33+
StudyAPI,
34+
StudyV1API,
35+
StudyV2API,
36+
TaskAPI,
37+
TaskV1API,
38+
TaskV2API,
39+
)
40+
from .setup import (
41+
APIBackend,
42+
APIBackendBuilder,
43+
APIConfig,
44+
CacheConfig,
45+
Config,
46+
ConnectionConfig,
47+
_backend,
48+
)
249

3-
4-
def set_api_version(version: str, *, strict: bool = False) -> None:
5-
api_context.set_version(version=version, strict=strict)
6-
7-
8-
api_context = APIContext()
50+
__all__ = [
51+
"API_REGISTRY",
52+
"APIBackend",
53+
"APIBackendBuilder",
54+
"APIConfig",
55+
"CacheConfig",
56+
"Config",
57+
"ConnectionConfig",
58+
"DatasetAPI",
59+
"DatasetV1API",
60+
"DatasetV2API",
61+
"EstimationProcedureAPI",
62+
"EstimationProcedureV1API",
63+
"EstimationProcedureV2API",
64+
"EvaluationAPI",
65+
"EvaluationMeasureAPI",
66+
"EvaluationMeasureV1API",
67+
"EvaluationMeasureV2API",
68+
"EvaluationV1API",
69+
"EvaluationV2API",
70+
"FallbackProxy",
71+
"FallbackProxy",
72+
"FlowAPI",
73+
"FlowV1API",
74+
"FlowV2API",
75+
"HTTPCache",
76+
"HTTPClient",
77+
"MinIOClient",
78+
"ResourceAPI",
79+
"ResourceAPI",
80+
"ResourceV1API",
81+
"ResourceV2API",
82+
"RunAPI",
83+
"RunV1API",
84+
"RunV2API",
85+
"SetupAPI",
86+
"SetupV1API",
87+
"SetupV2API",
88+
"StudyAPI",
89+
"StudyV1API",
90+
"StudyV2API",
91+
"TaskAPI",
92+
"TaskV1API",
93+
"TaskV2API",
94+
"_backend",
95+
]

openml/_api/clients/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
from .http import HTTPCache, HTTPClient
2+
from .minio import MinIOClient
23

34
__all__ = [
45
"HTTPCache",
56
"HTTPClient",
7+
"MinIOClient",
68
]

openml/_api/clients/http.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from requests import Response
1717

1818
from openml.__version__ import __version__
19-
from openml._api.config import RetryPolicy
19+
from openml.enums import RetryPolicy
2020
from openml.exceptions import (
2121
OpenMLNotAuthorizedError,
2222
OpenMLServerError,

openml/_api/clients/minio.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from __future__ import annotations
2+
3+
from pathlib import Path
4+
5+
from openml.__version__ import __version__
6+
7+
8+
class MinIOClient:
9+
def __init__(self, path: Path | None = None) -> None:
10+
self.path = path
11+
self.headers: dict[str, str] = {"user-agent": f"openml-python/{__version__}"}

openml/_api/resources/__init__.py

Lines changed: 64 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,65 @@
1-
from openml._api.resources.base.fallback import FallbackProxy
2-
from openml._api.resources.datasets import DatasetsV1, DatasetsV2
3-
from openml._api.resources.runs import RunsV1, RunsV2
4-
from openml._api.resources.tasks import TasksV1, TasksV2
1+
from ._registry import API_REGISTRY
2+
from .base import (
3+
DatasetAPI,
4+
EstimationProcedureAPI,
5+
EvaluationAPI,
6+
EvaluationMeasureAPI,
7+
FallbackProxy,
8+
FlowAPI,
9+
ResourceAPI,
10+
ResourceV1API,
11+
ResourceV2API,
12+
RunAPI,
13+
SetupAPI,
14+
StudyAPI,
15+
TaskAPI,
16+
)
17+
from .dataset import DatasetV1API, DatasetV2API
18+
from .estimation_procedure import (
19+
EstimationProcedureV1API,
20+
EstimationProcedureV2API,
21+
)
22+
from .evaluation import EvaluationV1API, EvaluationV2API
23+
from .evaluation_measure import EvaluationMeasureV1API, EvaluationMeasureV2API
24+
from .flow import FlowV1API, FlowV2API
25+
from .run import RunV1API, RunV2API
26+
from .setup import SetupV1API, SetupV2API
27+
from .study import StudyV1API, StudyV2API
28+
from .task import TaskV1API, TaskV2API
529

6-
__all__ = ["DatasetsV1", "DatasetsV2", "FallbackProxy", "RunsV1", "RunsV2", "TasksV1", "TasksV2"]
30+
__all__ = [
31+
"API_REGISTRY",
32+
"DatasetAPI",
33+
"DatasetV1API",
34+
"DatasetV2API",
35+
"EstimationProcedureAPI",
36+
"EstimationProcedureV1API",
37+
"EstimationProcedureV2API",
38+
"EvaluationAPI",
39+
"EvaluationMeasureAPI",
40+
"EvaluationMeasureV1API",
41+
"EvaluationMeasureV2API",
42+
"EvaluationV1API",
43+
"EvaluationV2API",
44+
"FallbackProxy",
45+
"FallbackProxy",
46+
"FlowAPI",
47+
"FlowV1API",
48+
"FlowV2API",
49+
"ResourceAPI",
50+
"ResourceAPI",
51+
"ResourceV1API",
52+
"ResourceV2API",
53+
"RunAPI",
54+
"RunV1API",
55+
"RunV2API",
56+
"SetupAPI",
57+
"SetupV1API",
58+
"SetupV2API",
59+
"StudyAPI",
60+
"StudyV1API",
61+
"StudyV2API",
62+
"TaskAPI",
63+
"TaskV1API",
64+
"TaskV2API",
65+
]

openml/_api/resources/_registry.py

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
from __future__ import annotations
2+
3+
from typing import TYPE_CHECKING
4+
5+
from openml.enums import APIVersion, ResourceType
6+
7+
from .dataset import DatasetV1API, DatasetV2API
8+
from .estimation_procedure import (
9+
EstimationProcedureV1API,
10+
EstimationProcedureV2API,
11+
)
12+
from .evaluation import EvaluationV1API, EvaluationV2API
13+
from .evaluation_measure import EvaluationMeasureV1API, EvaluationMeasureV2API
14+
from .flow import FlowV1API, FlowV2API
15+
from .run import RunV1API, RunV2API
16+
from .setup import SetupV1API, SetupV2API
17+
from .study import StudyV1API, StudyV2API
18+
from .task import TaskV1API, TaskV2API
19+
20+
if TYPE_CHECKING:
21+
from .base import ResourceAPI
22+
23+
API_REGISTRY: dict[
24+
APIVersion,
25+
dict[ResourceType, type[ResourceAPI]],
26+
] = {
27+
APIVersion.V1: {
28+
ResourceType.DATASET: DatasetV1API,
29+
ResourceType.TASK: TaskV1API,
30+
ResourceType.EVALUATION_MEASURE: EvaluationMeasureV1API,
31+
ResourceType.ESTIMATION_PROCEDURE: EstimationProcedureV1API,
32+
ResourceType.EVALUATION: EvaluationV1API,
33+
ResourceType.FLOW: FlowV1API,
34+
ResourceType.STUDY: StudyV1API,
35+
ResourceType.RUN: RunV1API,
36+
ResourceType.SETUP: SetupV1API,
37+
},
38+
APIVersion.V2: {
39+
ResourceType.DATASET: DatasetV2API,
40+
ResourceType.TASK: TaskV2API,
41+
ResourceType.EVALUATION_MEASURE: EvaluationMeasureV2API,
42+
ResourceType.ESTIMATION_PROCEDURE: EstimationProcedureV2API,
43+
ResourceType.EVALUATION: EvaluationV2API,
44+
ResourceType.FLOW: FlowV2API,
45+
ResourceType.STUDY: StudyV2API,
46+
ResourceType.RUN: RunV2API,
47+
ResourceType.SETUP: SetupV2API,
48+
},
49+
}
Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,30 @@
1-
from openml._api.resources.base.base import APIVersion, ResourceAPI, ResourceType
2-
from openml._api.resources.base.fallback import FallbackProxy
3-
from openml._api.resources.base.resources import DatasetsAPI, RunsAPI, TasksAPI
4-
from openml._api.resources.base.versions import ResourceV1, ResourceV2
1+
from .base import ResourceAPI
2+
from .fallback import FallbackProxy
3+
from .resources import (
4+
DatasetAPI,
5+
EstimationProcedureAPI,
6+
EvaluationAPI,
7+
EvaluationMeasureAPI,
8+
FlowAPI,
9+
RunAPI,
10+
SetupAPI,
11+
StudyAPI,
12+
TaskAPI,
13+
)
14+
from .versions import ResourceV1API, ResourceV2API
515

616
__all__ = [
7-
"APIVersion",
8-
"DatasetsAPI",
17+
"DatasetAPI",
18+
"EstimationProcedureAPI",
19+
"EvaluationAPI",
20+
"EvaluationMeasureAPI",
921
"FallbackProxy",
22+
"FlowAPI",
1023
"ResourceAPI",
11-
"ResourceType",
12-
"ResourceV1",
13-
"ResourceV2",
14-
"RunsAPI",
15-
"TasksAPI",
24+
"ResourceV1API",
25+
"ResourceV2API",
26+
"RunAPI",
27+
"SetupAPI",
28+
"StudyAPI",
29+
"TaskAPI",
1630
]

openml/_api/resources/base/base.py

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from __future__ import annotations
22

33
from abc import ABC, abstractmethod
4-
from enum import Enum
54
from typing import TYPE_CHECKING, NoReturn
65

76
from openml.exceptions import OpenMLNotSupportedError
@@ -10,34 +9,17 @@
109
from collections.abc import Mapping
1110
from typing import Any
1211

13-
from openml._api.clients import HTTPClient
14-
15-
16-
class APIVersion(str, Enum):
17-
V1 = "v1"
18-
V2 = "v2"
19-
20-
21-
class ResourceType(str, Enum):
22-
DATASET = "dataset"
23-
TASK = "task"
24-
TASK_TYPE = "task_type"
25-
EVALUATION_MEASURE = "evaluation_measure"
26-
ESTIMATION_PROCEDURE = "estimation_procedure"
27-
EVALUATION = "evaluation"
28-
FLOW = "flow"
29-
STUDY = "study"
30-
RUN = "run"
31-
SETUP = "setup"
32-
USER = "user"
12+
from openml._api.clients import HTTPClient, MinIOClient
13+
from openml.enums import APIVersion, ResourceType
3314

3415

3516
class ResourceAPI(ABC):
3617
api_version: APIVersion
3718
resource_type: ResourceType
3819

39-
def __init__(self, http: HTTPClient):
20+
def __init__(self, http: HTTPClient, minio: MinIOClient | None = None):
4021
self._http = http
22+
self._minio = minio
4123

4224
@abstractmethod
4325
def delete(self, resource_id: int) -> bool: ...

0 commit comments

Comments
 (0)