Skip to content

Commit d609de2

Browse files
committed
Include delete custom metric
1 parent 866b9f2 commit d609de2

File tree

5 files changed

+109
-11
lines changed

5 files changed

+109
-11
lines changed

aimon/resources/datasets/datasets.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ def create(
116116
# multipart/form-data; boundary=---abc--
117117
extra_headers = {"Content-Type": "multipart/form-data", **(extra_headers or {})}
118118
return self._post(
119-
"/v1/dataset",
119+
"/v2/dataset",
120120
body=maybe_transform(body, dataset_create_params.DatasetCreateParams),
121121
files=files,
122122
options=make_request_options(
@@ -233,7 +233,7 @@ async def create(
233233
# multipart/form-data; boundary=---abc--
234234
extra_headers = {"Content-Type": "multipart/form-data", **(extra_headers or {})}
235235
return await self._post(
236-
"/v1/dataset",
236+
"/v2/dataset",
237237
body=await async_maybe_transform(body, dataset_create_params.DatasetCreateParams),
238238
files=files,
239239
options=make_request_options(

aimon/resources/metrics.py

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
)
1818
from .._base_client import make_request_options
1919
from ..types.metric_list_response import MetricListResponse
20+
from ..types.metric_delete_response import MetricDeleteResponse
2021

2122
__all__ = ["MetricsResource", "AsyncMetricsResource"]
2223

@@ -103,6 +104,39 @@ def list(
103104
cast_to=MetricListResponse,
104105
)
105106

107+
def delete(
108+
self,
109+
uuid: str,
110+
*,
111+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
112+
# The extra values given here take precedence over values defined on the client or passed to this method.
113+
extra_headers: Headers | None = None,
114+
extra_query: Query | None = None,
115+
extra_body: Body | None = None,
116+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
117+
) -> MetricDeleteResponse:
118+
"""
119+
Delete a custom metric
120+
121+
Args:
122+
extra_headers: Send extra headers
123+
124+
extra_query: Add additional query parameters to the request
125+
126+
extra_body: Add additional JSON properties to the request
127+
128+
timeout: Override the client-level default timeout for this request, in seconds
129+
"""
130+
if not uuid:
131+
raise ValueError(f"Expected a non-empty value for `uuid` but received {uuid!r}")
132+
return self._delete(
133+
f"/v1/custom-metric/{uuid}",
134+
options=make_request_options(
135+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
136+
),
137+
cast_to=MetricDeleteResponse,
138+
)
139+
106140

107141
class AsyncMetricsResource(AsyncAPIResource):
108142
@cached_property
@@ -186,6 +220,39 @@ async def list(
186220
cast_to=MetricListResponse,
187221
)
188222

223+
async def delete(
224+
self,
225+
uuid: str,
226+
*,
227+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
228+
# The extra values given here take precedence over values defined on the client or passed to this method.
229+
extra_headers: Headers | None = None,
230+
extra_query: Query | None = None,
231+
extra_body: Body | None = None,
232+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
233+
) -> MetricDeleteResponse:
234+
"""
235+
Delete a custom metric
236+
237+
Args:
238+
extra_headers: Send extra headers
239+
240+
extra_query: Add additional query parameters to the request
241+
242+
extra_body: Add additional JSON properties to the request
243+
244+
timeout: Override the client-level default timeout for this request, in seconds
245+
"""
246+
if not uuid:
247+
raise ValueError(f"Expected a non-empty value for `uuid` but received {uuid!r}")
248+
return await self._delete(
249+
f"/v1/custom-metric/{uuid}",
250+
options=make_request_options(
251+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
252+
),
253+
cast_to=MetricDeleteResponse,
254+
)
255+
189256

190257
class MetricsResourceWithRawResponse:
191258
def __init__(self, metrics: MetricsResource) -> None:
@@ -197,6 +264,9 @@ def __init__(self, metrics: MetricsResource) -> None:
197264
self.list = to_raw_response_wrapper(
198265
metrics.list,
199266
)
267+
self.delete = to_raw_response_wrapper(
268+
metrics.delete,
269+
)
200270

201271

202272
class AsyncMetricsResourceWithRawResponse:
@@ -209,6 +279,9 @@ def __init__(self, metrics: AsyncMetricsResource) -> None:
209279
self.list = async_to_raw_response_wrapper(
210280
metrics.list,
211281
)
282+
self.delete = async_to_raw_response_wrapper(
283+
metrics.delete,
284+
)
212285

213286

214287
class MetricsResourceWithStreamingResponse:
@@ -221,6 +294,9 @@ def __init__(self, metrics: MetricsResource) -> None:
221294
self.list = to_streamed_response_wrapper(
222295
metrics.list,
223296
)
297+
self.delete = to_streamed_response_wrapper(
298+
metrics.delete,
299+
)
224300

225301

226302
class AsyncMetricsResourceWithStreamingResponse:
@@ -233,3 +309,6 @@ def __init__(self, metrics: AsyncMetricsResource) -> None:
233309
self.list = async_to_streamed_response_wrapper(
234310
metrics.list,
235311
)
312+
self.delete = async_to_streamed_response_wrapper(
313+
metrics.delete,
314+
)

aimon/types/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from .dataset_create_params import DatasetCreateParams as DatasetCreateParams
1616
from .model_create_response import ModelCreateResponse as ModelCreateResponse
1717
from .model_retrieve_params import ModelRetrieveParams as ModelRetrieveParams
18+
from .metric_delete_response import MetricDeleteResponse as MetricDeleteResponse
1819
from .user_validate_response import UserValidateResponse as UserValidateResponse
1920
from .analyze_create_response import AnalyzeCreateResponse as AnalyzeCreateResponse
2021
from .inference_detect_params import InferenceDetectParams as InferenceDetectParams
@@ -31,4 +32,4 @@
3132
from .application_delete_response import ApplicationDeleteResponse as ApplicationDeleteResponse
3233
from .application_retrieve_params import ApplicationRetrieveParams as ApplicationRetrieveParams
3334
from .evaluation_retrieve_response import EvaluationRetrieveResponse as EvaluationRetrieveResponse
34-
from .application_retrieve_response import ApplicationRetrieveResponse as ApplicationRetrieveResponse
35+
from .application_retrieve_response import ApplicationRetrieveResponse as ApplicationRetrieveResponse
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from typing import Optional
4+
5+
from .._models import BaseModel
6+
7+
__all__ = ["MetricDeleteResponse"]
8+
9+
10+
class MetricDeleteResponse(BaseModel):
11+
message: Optional[str] = None

tests/test_low_level_api.py

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -286,8 +286,11 @@ def test_dataset_collection_create_retrieve(self):
286286
dataset_base_name = f"{self.prefix}_dataset_{i}.csv"
287287
try:
288288
with open(temp_file_path, 'rb') as f:
289-
dataset_args = json.dumps({"name": dataset_base_name, "description": f"Test dataset {i}"})
290-
dataset = self.client.datasets.create(file=f, json_data=dataset_args)
289+
dataset = self.client.datasets.create(
290+
file=f,
291+
name=dataset_base_name,
292+
description=f"Test dataset {i}"
293+
)
291294
dataset_shas.append(dataset.sha)
292295
self.log_info(f"Prerequisite dataset {i} created: {dataset_base_name} (SHA: {dataset.sha})")
293296
except Exception as e:
@@ -339,9 +342,11 @@ def test_evaluation_create_retrieve(self):
339342

340343
temp_file_path = self.create_temp_dataset_file()
341344
with open(temp_file_path, 'rb') as f:
342-
# Add description field to json_data
343-
dataset_args = json.dumps({"name": self.dataset_name, "description": f"Prereq dataset {self.timestamp}"})
344-
dataset = self.client.datasets.create(file=f, json_data=dataset_args)
345+
dataset = self.client.datasets.create(
346+
file=f,
347+
name=self.dataset_name,
348+
description=f"Prereq dataset {self.timestamp}"
349+
)
345350

346351
# Add description to collection create call
347352
collection = self.client.datasets.collection.create(name=self.collection_name, dataset_ids=[dataset.sha], description=f"Prereq collection {self.timestamp}")
@@ -400,9 +405,11 @@ def test_evaluation_run_create(self):
400405
app = self.client.applications.create(name=self.app_name, model_name=model.name, stage="evaluation", type="qa")
401406
temp_file_path = self.create_temp_dataset_file()
402407
with open(temp_file_path, 'rb') as f:
403-
# Add description field to json_data
404-
dataset_args = json.dumps({"name": self.dataset_name, "description": f"Prereq dataset {self.timestamp}"})
405-
dataset = self.client.datasets.create(file=f, json_data=dataset_args)
408+
dataset = self.client.datasets.create(
409+
file=f,
410+
name=self.dataset_name,
411+
description=f"Prereq dataset {self.timestamp}"
412+
)
406413
# Add description to collection create call
407414
collection = self.client.datasets.collection.create(name=self.collection_name, dataset_ids=[dataset.sha], description=f"Prereq collection {self.timestamp}")
408415
evaluation = self.client.evaluations.create(

0 commit comments

Comments
 (0)