scale-gp-beta 0.1.0a10__py3-none-any.whl → 0.1.0a12__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -437,8 +437,7 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
437
437
  headers = httpx.Headers(headers_dict)
438
438
 
439
439
  idempotency_header = self._idempotency_header
440
- if idempotency_header and options.method.lower() != "get" and idempotency_header not in headers:
441
- options.idempotency_key = options.idempotency_key or self._idempotency_key()
440
+ if idempotency_header and options.idempotency_key and idempotency_header not in headers:
442
441
  headers[idempotency_header] = options.idempotency_key
443
442
 
444
443
  # Don't set these headers if they were already set or removed by the caller. We check
@@ -903,7 +902,6 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
903
902
  self,
904
903
  cast_to: Type[ResponseT],
905
904
  options: FinalRequestOptions,
906
- remaining_retries: Optional[int] = None,
907
905
  *,
908
906
  stream: Literal[True],
909
907
  stream_cls: Type[_StreamT],
@@ -914,7 +912,6 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
914
912
  self,
915
913
  cast_to: Type[ResponseT],
916
914
  options: FinalRequestOptions,
917
- remaining_retries: Optional[int] = None,
918
915
  *,
919
916
  stream: Literal[False] = False,
920
917
  ) -> ResponseT: ...
@@ -924,7 +921,6 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
924
921
  self,
925
922
  cast_to: Type[ResponseT],
926
923
  options: FinalRequestOptions,
927
- remaining_retries: Optional[int] = None,
928
924
  *,
929
925
  stream: bool = False,
930
926
  stream_cls: Type[_StreamT] | None = None,
@@ -934,125 +930,109 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
934
930
  self,
935
931
  cast_to: Type[ResponseT],
936
932
  options: FinalRequestOptions,
937
- remaining_retries: Optional[int] = None,
938
933
  *,
939
934
  stream: bool = False,
940
935
  stream_cls: type[_StreamT] | None = None,
941
936
  ) -> ResponseT | _StreamT:
942
- if remaining_retries is not None:
943
- retries_taken = options.get_max_retries(self.max_retries) - remaining_retries
944
- else:
945
- retries_taken = 0
946
-
947
- return self._request(
948
- cast_to=cast_to,
949
- options=options,
950
- stream=stream,
951
- stream_cls=stream_cls,
952
- retries_taken=retries_taken,
953
- )
937
+ cast_to = self._maybe_override_cast_to(cast_to, options)
954
938
 
955
- def _request(
956
- self,
957
- *,
958
- cast_to: Type[ResponseT],
959
- options: FinalRequestOptions,
960
- retries_taken: int,
961
- stream: bool,
962
- stream_cls: type[_StreamT] | None,
963
- ) -> ResponseT | _StreamT:
964
939
  # create a copy of the options we were given so that if the
965
940
  # options are mutated later & we then retry, the retries are
966
941
  # given the original options
967
942
  input_options = model_copy(options)
968
-
969
- cast_to = self._maybe_override_cast_to(cast_to, options)
970
- options = self._prepare_options(options)
971
-
972
- remaining_retries = options.get_max_retries(self.max_retries) - retries_taken
973
- request = self._build_request(options, retries_taken=retries_taken)
974
- self._prepare_request(request)
975
-
976
- if options.idempotency_key:
943
+ if input_options.idempotency_key is None and input_options.method.lower() != "get":
977
944
  # ensure the idempotency key is reused between requests
978
- input_options.idempotency_key = options.idempotency_key
945
+ input_options.idempotency_key = self._idempotency_key()
979
946
 
980
- kwargs: HttpxSendArgs = {}
981
- if self.custom_auth is not None:
982
- kwargs["auth"] = self.custom_auth
947
+ response: httpx.Response | None = None
948
+ max_retries = input_options.get_max_retries(self.max_retries)
983
949
 
984
- log.debug("Sending HTTP Request: %s %s", request.method, request.url)
950
+ retries_taken = 0
951
+ for retries_taken in range(max_retries + 1):
952
+ options = model_copy(input_options)
953
+ options = self._prepare_options(options)
985
954
 
986
- try:
987
- response = self._client.send(
988
- request,
989
- stream=stream or self._should_stream_response_body(request=request),
990
- **kwargs,
991
- )
992
- except httpx.TimeoutException as err:
993
- log.debug("Encountered httpx.TimeoutException", exc_info=True)
955
+ remaining_retries = max_retries - retries_taken
956
+ request = self._build_request(options, retries_taken=retries_taken)
957
+ self._prepare_request(request)
994
958
 
995
- if remaining_retries > 0:
996
- return self._retry_request(
997
- input_options,
998
- cast_to,
999
- retries_taken=retries_taken,
1000
- stream=stream,
1001
- stream_cls=stream_cls,
1002
- response_headers=None,
1003
- )
959
+ kwargs: HttpxSendArgs = {}
960
+ if self.custom_auth is not None:
961
+ kwargs["auth"] = self.custom_auth
1004
962
 
1005
- log.debug("Raising timeout error")
1006
- raise APITimeoutError(request=request) from err
1007
- except Exception as err:
1008
- log.debug("Encountered Exception", exc_info=True)
963
+ log.debug("Sending HTTP Request: %s %s", request.method, request.url)
1009
964
 
1010
- if remaining_retries > 0:
1011
- return self._retry_request(
1012
- input_options,
1013
- cast_to,
1014
- retries_taken=retries_taken,
1015
- stream=stream,
1016
- stream_cls=stream_cls,
1017
- response_headers=None,
965
+ response = None
966
+ try:
967
+ response = self._client.send(
968
+ request,
969
+ stream=stream or self._should_stream_response_body(request=request),
970
+ **kwargs,
1018
971
  )
972
+ except httpx.TimeoutException as err:
973
+ log.debug("Encountered httpx.TimeoutException", exc_info=True)
974
+
975
+ if remaining_retries > 0:
976
+ self._sleep_for_retry(
977
+ retries_taken=retries_taken,
978
+ max_retries=max_retries,
979
+ options=input_options,
980
+ response=None,
981
+ )
982
+ continue
983
+
984
+ log.debug("Raising timeout error")
985
+ raise APITimeoutError(request=request) from err
986
+ except Exception as err:
987
+ log.debug("Encountered Exception", exc_info=True)
988
+
989
+ if remaining_retries > 0:
990
+ self._sleep_for_retry(
991
+ retries_taken=retries_taken,
992
+ max_retries=max_retries,
993
+ options=input_options,
994
+ response=None,
995
+ )
996
+ continue
997
+
998
+ log.debug("Raising connection error")
999
+ raise APIConnectionError(request=request) from err
1000
+
1001
+ log.debug(
1002
+ 'HTTP Response: %s %s "%i %s" %s',
1003
+ request.method,
1004
+ request.url,
1005
+ response.status_code,
1006
+ response.reason_phrase,
1007
+ response.headers,
1008
+ )
1019
1009
 
1020
- log.debug("Raising connection error")
1021
- raise APIConnectionError(request=request) from err
1022
-
1023
- log.debug(
1024
- 'HTTP Response: %s %s "%i %s" %s',
1025
- request.method,
1026
- request.url,
1027
- response.status_code,
1028
- response.reason_phrase,
1029
- response.headers,
1030
- )
1010
+ try:
1011
+ response.raise_for_status()
1012
+ except httpx.HTTPStatusError as err: # thrown on 4xx and 5xx status code
1013
+ log.debug("Encountered httpx.HTTPStatusError", exc_info=True)
1014
+
1015
+ if remaining_retries > 0 and self._should_retry(err.response):
1016
+ err.response.close()
1017
+ self._sleep_for_retry(
1018
+ retries_taken=retries_taken,
1019
+ max_retries=max_retries,
1020
+ options=input_options,
1021
+ response=response,
1022
+ )
1023
+ continue
1031
1024
 
1032
- try:
1033
- response.raise_for_status()
1034
- except httpx.HTTPStatusError as err: # thrown on 4xx and 5xx status code
1035
- log.debug("Encountered httpx.HTTPStatusError", exc_info=True)
1036
-
1037
- if remaining_retries > 0 and self._should_retry(err.response):
1038
- err.response.close()
1039
- return self._retry_request(
1040
- input_options,
1041
- cast_to,
1042
- retries_taken=retries_taken,
1043
- response_headers=err.response.headers,
1044
- stream=stream,
1045
- stream_cls=stream_cls,
1046
- )
1025
+ # If the response is streamed then we need to explicitly read the response
1026
+ # to completion before attempting to access the response text.
1027
+ if not err.response.is_closed:
1028
+ err.response.read()
1047
1029
 
1048
- # If the response is streamed then we need to explicitly read the response
1049
- # to completion before attempting to access the response text.
1050
- if not err.response.is_closed:
1051
- err.response.read()
1030
+ log.debug("Re-raising status error")
1031
+ raise self._make_status_error_from_response(err.response) from None
1052
1032
 
1053
- log.debug("Re-raising status error")
1054
- raise self._make_status_error_from_response(err.response) from None
1033
+ break
1055
1034
 
1035
+ assert response is not None, "could not resolve response (should never happen)"
1056
1036
  return self._process_response(
1057
1037
  cast_to=cast_to,
1058
1038
  options=options,
@@ -1062,37 +1042,20 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
1062
1042
  retries_taken=retries_taken,
1063
1043
  )
1064
1044
 
1065
- def _retry_request(
1066
- self,
1067
- options: FinalRequestOptions,
1068
- cast_to: Type[ResponseT],
1069
- *,
1070
- retries_taken: int,
1071
- response_headers: httpx.Headers | None,
1072
- stream: bool,
1073
- stream_cls: type[_StreamT] | None,
1074
- ) -> ResponseT | _StreamT:
1075
- remaining_retries = options.get_max_retries(self.max_retries) - retries_taken
1045
+ def _sleep_for_retry(
1046
+ self, *, retries_taken: int, max_retries: int, options: FinalRequestOptions, response: httpx.Response | None
1047
+ ) -> None:
1048
+ remaining_retries = max_retries - retries_taken
1076
1049
  if remaining_retries == 1:
1077
1050
  log.debug("1 retry left")
1078
1051
  else:
1079
1052
  log.debug("%i retries left", remaining_retries)
1080
1053
 
1081
- timeout = self._calculate_retry_timeout(remaining_retries, options, response_headers)
1054
+ timeout = self._calculate_retry_timeout(remaining_retries, options, response.headers if response else None)
1082
1055
  log.info("Retrying request to %s in %f seconds", options.url, timeout)
1083
1056
 
1084
- # In a synchronous context we are blocking the entire thread. Up to the library user to run the client in a
1085
- # different thread if necessary.
1086
1057
  time.sleep(timeout)
1087
1058
 
1088
- return self._request(
1089
- options=options,
1090
- cast_to=cast_to,
1091
- retries_taken=retries_taken + 1,
1092
- stream=stream,
1093
- stream_cls=stream_cls,
1094
- )
1095
-
1096
1059
  def _process_response(
1097
1060
  self,
1098
1061
  *,
@@ -1436,7 +1399,6 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1436
1399
  options: FinalRequestOptions,
1437
1400
  *,
1438
1401
  stream: Literal[False] = False,
1439
- remaining_retries: Optional[int] = None,
1440
1402
  ) -> ResponseT: ...
1441
1403
 
1442
1404
  @overload
@@ -1447,7 +1409,6 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1447
1409
  *,
1448
1410
  stream: Literal[True],
1449
1411
  stream_cls: type[_AsyncStreamT],
1450
- remaining_retries: Optional[int] = None,
1451
1412
  ) -> _AsyncStreamT: ...
1452
1413
 
1453
1414
  @overload
@@ -1458,7 +1419,6 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1458
1419
  *,
1459
1420
  stream: bool,
1460
1421
  stream_cls: type[_AsyncStreamT] | None = None,
1461
- remaining_retries: Optional[int] = None,
1462
1422
  ) -> ResponseT | _AsyncStreamT: ...
1463
1423
 
1464
1424
  async def request(
@@ -1468,120 +1428,111 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1468
1428
  *,
1469
1429
  stream: bool = False,
1470
1430
  stream_cls: type[_AsyncStreamT] | None = None,
1471
- remaining_retries: Optional[int] = None,
1472
- ) -> ResponseT | _AsyncStreamT:
1473
- if remaining_retries is not None:
1474
- retries_taken = options.get_max_retries(self.max_retries) - remaining_retries
1475
- else:
1476
- retries_taken = 0
1477
-
1478
- return await self._request(
1479
- cast_to=cast_to,
1480
- options=options,
1481
- stream=stream,
1482
- stream_cls=stream_cls,
1483
- retries_taken=retries_taken,
1484
- )
1485
-
1486
- async def _request(
1487
- self,
1488
- cast_to: Type[ResponseT],
1489
- options: FinalRequestOptions,
1490
- *,
1491
- stream: bool,
1492
- stream_cls: type[_AsyncStreamT] | None,
1493
- retries_taken: int,
1494
1431
  ) -> ResponseT | _AsyncStreamT:
1495
1432
  if self._platform is None:
1496
1433
  # `get_platform` can make blocking IO calls so we
1497
1434
  # execute it earlier while we are in an async context
1498
1435
  self._platform = await asyncify(get_platform)()
1499
1436
 
1437
+ cast_to = self._maybe_override_cast_to(cast_to, options)
1438
+
1500
1439
  # create a copy of the options we were given so that if the
1501
1440
  # options are mutated later & we then retry, the retries are
1502
1441
  # given the original options
1503
1442
  input_options = model_copy(options)
1504
-
1505
- cast_to = self._maybe_override_cast_to(cast_to, options)
1506
- options = await self._prepare_options(options)
1507
-
1508
- remaining_retries = options.get_max_retries(self.max_retries) - retries_taken
1509
- request = self._build_request(options, retries_taken=retries_taken)
1510
- await self._prepare_request(request)
1511
-
1512
- if options.idempotency_key:
1443
+ if input_options.idempotency_key is None and input_options.method.lower() != "get":
1513
1444
  # ensure the idempotency key is reused between requests
1514
- input_options.idempotency_key = options.idempotency_key
1445
+ input_options.idempotency_key = self._idempotency_key()
1515
1446
 
1516
- kwargs: HttpxSendArgs = {}
1517
- if self.custom_auth is not None:
1518
- kwargs["auth"] = self.custom_auth
1447
+ response: httpx.Response | None = None
1448
+ max_retries = input_options.get_max_retries(self.max_retries)
1519
1449
 
1520
- try:
1521
- response = await self._client.send(
1522
- request,
1523
- stream=stream or self._should_stream_response_body(request=request),
1524
- **kwargs,
1525
- )
1526
- except httpx.TimeoutException as err:
1527
- log.debug("Encountered httpx.TimeoutException", exc_info=True)
1450
+ retries_taken = 0
1451
+ for retries_taken in range(max_retries + 1):
1452
+ options = model_copy(input_options)
1453
+ options = await self._prepare_options(options)
1528
1454
 
1529
- if remaining_retries > 0:
1530
- return await self._retry_request(
1531
- input_options,
1532
- cast_to,
1533
- retries_taken=retries_taken,
1534
- stream=stream,
1535
- stream_cls=stream_cls,
1536
- response_headers=None,
1537
- )
1455
+ remaining_retries = max_retries - retries_taken
1456
+ request = self._build_request(options, retries_taken=retries_taken)
1457
+ await self._prepare_request(request)
1538
1458
 
1539
- log.debug("Raising timeout error")
1540
- raise APITimeoutError(request=request) from err
1541
- except Exception as err:
1542
- log.debug("Encountered Exception", exc_info=True)
1459
+ kwargs: HttpxSendArgs = {}
1460
+ if self.custom_auth is not None:
1461
+ kwargs["auth"] = self.custom_auth
1543
1462
 
1544
- if remaining_retries > 0:
1545
- return await self._retry_request(
1546
- input_options,
1547
- cast_to,
1548
- retries_taken=retries_taken,
1549
- stream=stream,
1550
- stream_cls=stream_cls,
1551
- response_headers=None,
1552
- )
1463
+ log.debug("Sending HTTP Request: %s %s", request.method, request.url)
1553
1464
 
1554
- log.debug("Raising connection error")
1555
- raise APIConnectionError(request=request) from err
1465
+ response = None
1466
+ try:
1467
+ response = await self._client.send(
1468
+ request,
1469
+ stream=stream or self._should_stream_response_body(request=request),
1470
+ **kwargs,
1471
+ )
1472
+ except httpx.TimeoutException as err:
1473
+ log.debug("Encountered httpx.TimeoutException", exc_info=True)
1474
+
1475
+ if remaining_retries > 0:
1476
+ await self._sleep_for_retry(
1477
+ retries_taken=retries_taken,
1478
+ max_retries=max_retries,
1479
+ options=input_options,
1480
+ response=None,
1481
+ )
1482
+ continue
1483
+
1484
+ log.debug("Raising timeout error")
1485
+ raise APITimeoutError(request=request) from err
1486
+ except Exception as err:
1487
+ log.debug("Encountered Exception", exc_info=True)
1488
+
1489
+ if remaining_retries > 0:
1490
+ await self._sleep_for_retry(
1491
+ retries_taken=retries_taken,
1492
+ max_retries=max_retries,
1493
+ options=input_options,
1494
+ response=None,
1495
+ )
1496
+ continue
1497
+
1498
+ log.debug("Raising connection error")
1499
+ raise APIConnectionError(request=request) from err
1500
+
1501
+ log.debug(
1502
+ 'HTTP Response: %s %s "%i %s" %s',
1503
+ request.method,
1504
+ request.url,
1505
+ response.status_code,
1506
+ response.reason_phrase,
1507
+ response.headers,
1508
+ )
1556
1509
 
1557
- log.debug(
1558
- 'HTTP Request: %s %s "%i %s"', request.method, request.url, response.status_code, response.reason_phrase
1559
- )
1510
+ try:
1511
+ response.raise_for_status()
1512
+ except httpx.HTTPStatusError as err: # thrown on 4xx and 5xx status code
1513
+ log.debug("Encountered httpx.HTTPStatusError", exc_info=True)
1514
+
1515
+ if remaining_retries > 0 and self._should_retry(err.response):
1516
+ await err.response.aclose()
1517
+ await self._sleep_for_retry(
1518
+ retries_taken=retries_taken,
1519
+ max_retries=max_retries,
1520
+ options=input_options,
1521
+ response=response,
1522
+ )
1523
+ continue
1560
1524
 
1561
- try:
1562
- response.raise_for_status()
1563
- except httpx.HTTPStatusError as err: # thrown on 4xx and 5xx status code
1564
- log.debug("Encountered httpx.HTTPStatusError", exc_info=True)
1565
-
1566
- if remaining_retries > 0 and self._should_retry(err.response):
1567
- await err.response.aclose()
1568
- return await self._retry_request(
1569
- input_options,
1570
- cast_to,
1571
- retries_taken=retries_taken,
1572
- response_headers=err.response.headers,
1573
- stream=stream,
1574
- stream_cls=stream_cls,
1575
- )
1525
+ # If the response is streamed then we need to explicitly read the response
1526
+ # to completion before attempting to access the response text.
1527
+ if not err.response.is_closed:
1528
+ await err.response.aread()
1576
1529
 
1577
- # If the response is streamed then we need to explicitly read the response
1578
- # to completion before attempting to access the response text.
1579
- if not err.response.is_closed:
1580
- await err.response.aread()
1530
+ log.debug("Re-raising status error")
1531
+ raise self._make_status_error_from_response(err.response) from None
1581
1532
 
1582
- log.debug("Re-raising status error")
1583
- raise self._make_status_error_from_response(err.response) from None
1533
+ break
1584
1534
 
1535
+ assert response is not None, "could not resolve response (should never happen)"
1585
1536
  return await self._process_response(
1586
1537
  cast_to=cast_to,
1587
1538
  options=options,
@@ -1591,35 +1542,20 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1591
1542
  retries_taken=retries_taken,
1592
1543
  )
1593
1544
 
1594
- async def _retry_request(
1595
- self,
1596
- options: FinalRequestOptions,
1597
- cast_to: Type[ResponseT],
1598
- *,
1599
- retries_taken: int,
1600
- response_headers: httpx.Headers | None,
1601
- stream: bool,
1602
- stream_cls: type[_AsyncStreamT] | None,
1603
- ) -> ResponseT | _AsyncStreamT:
1604
- remaining_retries = options.get_max_retries(self.max_retries) - retries_taken
1545
+ async def _sleep_for_retry(
1546
+ self, *, retries_taken: int, max_retries: int, options: FinalRequestOptions, response: httpx.Response | None
1547
+ ) -> None:
1548
+ remaining_retries = max_retries - retries_taken
1605
1549
  if remaining_retries == 1:
1606
1550
  log.debug("1 retry left")
1607
1551
  else:
1608
1552
  log.debug("%i retries left", remaining_retries)
1609
1553
 
1610
- timeout = self._calculate_retry_timeout(remaining_retries, options, response_headers)
1554
+ timeout = self._calculate_retry_timeout(remaining_retries, options, response.headers if response else None)
1611
1555
  log.info("Retrying request to %s in %f seconds", options.url, timeout)
1612
1556
 
1613
1557
  await anyio.sleep(timeout)
1614
1558
 
1615
- return await self._request(
1616
- options=options,
1617
- cast_to=cast_to,
1618
- retries_taken=retries_taken + 1,
1619
- stream=stream,
1620
- stream_cls=stream_cls,
1621
- )
1622
-
1623
1559
  async def _process_response(
1624
1560
  self,
1625
1561
  *,
scale_gp_beta/_client.py CHANGED
@@ -19,10 +19,7 @@ from ._types import (
19
19
  ProxiesTypes,
20
20
  RequestOptions,
21
21
  )
22
- from ._utils import (
23
- is_given,
24
- get_async_library,
25
- )
22
+ from ._utils import is_given, get_async_library
26
23
  from ._version import __version__
27
24
  from .resources import spans, models, datasets, inference, completions, evaluations, dataset_items, evaluation_items
28
25
  from ._streaming import Stream as Stream, AsyncStream as AsyncStream
scale_gp_beta/_models.py CHANGED
@@ -626,8 +626,8 @@ def _build_discriminated_union_meta(*, union: type, meta_annotations: tuple[Any,
626
626
  # Note: if one variant defines an alias then they all should
627
627
  discriminator_alias = field_info.alias
628
628
 
629
- if field_info.annotation and is_literal_type(field_info.annotation):
630
- for entry in get_args(field_info.annotation):
629
+ if (annotation := getattr(field_info, "annotation", None)) and is_literal_type(annotation):
630
+ for entry in get_args(annotation):
631
631
  if isinstance(entry, str):
632
632
  mapping[entry] = variant
633
633
 
@@ -235,7 +235,7 @@ class BaseAPIResponse(Generic[R]):
235
235
  # split is required to handle cases where additional information is included
236
236
  # in the response, e.g. application/json; charset=utf-8
237
237
  content_type, *_ = response.headers.get("content-type", "*").split(";")
238
- if content_type != "application/json":
238
+ if not content_type.endswith("json"):
239
239
  if is_basemodel(cast_to):
240
240
  try:
241
241
  data = response.json()
@@ -72,8 +72,16 @@ def _extract_items(
72
72
  from .._files import assert_is_file_content
73
73
 
74
74
  # We have exhausted the path, return the entry we found.
75
- assert_is_file_content(obj, key=flattened_key)
76
75
  assert flattened_key is not None
76
+
77
+ if is_list(obj):
78
+ files: list[tuple[str, FileTypes]] = []
79
+ for entry in obj:
80
+ assert_is_file_content(entry, key=flattened_key + "[]" if flattened_key else "")
81
+ files.append((flattened_key + "[]", cast(FileTypes, entry)))
82
+ return files
83
+
84
+ assert_is_file_content(obj, key=flattened_key)
77
85
  return [(flattened_key, cast(FileTypes, obj))]
78
86
 
79
87
  index += 1
scale_gp_beta/_version.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "scale_gp_beta"
4
- __version__ = "0.1.0-alpha.10" # x-release-please-version
4
+ __version__ = "0.1.0-alpha.12" # x-release-please-version
@@ -8,11 +8,7 @@ from typing_extensions import Literal, overload
8
8
  import httpx
9
9
 
10
10
  from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
11
- from ..._utils import (
12
- required_args,
13
- maybe_transform,
14
- async_maybe_transform,
15
- )
11
+ from ..._utils import required_args, maybe_transform, async_maybe_transform
16
12
  from ..._compat import cached_property
17
13
  from ..._resource import SyncAPIResource, AsyncAPIResource
18
14
  from ..._response import (
@@ -9,11 +9,7 @@ import httpx
9
9
 
10
10
  from ..types import completion_create_params
11
11
  from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
12
- from .._utils import (
13
- required_args,
14
- maybe_transform,
15
- async_maybe_transform,
16
- )
12
+ from .._utils import required_args, maybe_transform, async_maybe_transform
17
13
  from .._compat import cached_property
18
14
  from .._resource import SyncAPIResource, AsyncAPIResource
19
15
  from .._response import (
@@ -13,10 +13,7 @@ from ..types import (
13
13
  dataset_item_batch_create_params,
14
14
  )
15
15
  from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
16
- from .._utils import (
17
- maybe_transform,
18
- async_maybe_transform,
19
- )
16
+ from .._utils import maybe_transform, async_maybe_transform
20
17
  from .._compat import cached_property
21
18
  from .._resource import SyncAPIResource, AsyncAPIResource
22
19
  from .._response import (
@@ -6,17 +6,9 @@ from typing import Dict, List, Iterable, Optional
6
6
 
7
7
  import httpx
8
8
 
9
- from ..types import (
10
- dataset_list_params,
11
- dataset_create_params,
12
- dataset_update_params,
13
- dataset_retrieve_params,
14
- )
9
+ from ..types import dataset_list_params, dataset_create_params, dataset_update_params, dataset_retrieve_params
15
10
  from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
16
- from .._utils import (
17
- maybe_transform,
18
- async_maybe_transform,
19
- )
11
+ from .._utils import maybe_transform, async_maybe_transform
20
12
  from .._compat import cached_property
21
13
  from .._resource import SyncAPIResource, AsyncAPIResource
22
14
  from .._response import (
@@ -8,10 +8,7 @@ import httpx
8
8
 
9
9
  from ..types import evaluation_item_list_params, evaluation_item_retrieve_params
10
10
  from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
11
- from .._utils import (
12
- maybe_transform,
13
- async_maybe_transform,
14
- )
11
+ from .._utils import maybe_transform, async_maybe_transform
15
12
  from .._compat import cached_property
16
13
  from .._resource import SyncAPIResource, AsyncAPIResource
17
14
  from .._response import (
@@ -9,11 +9,7 @@ import httpx
9
9
 
10
10
  from ..types import evaluation_list_params, evaluation_create_params, evaluation_retrieve_params
11
11
  from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
12
- from .._utils import (
13
- required_args,
14
- maybe_transform,
15
- async_maybe_transform,
16
- )
12
+ from .._utils import required_args, maybe_transform, async_maybe_transform
17
13
  from .._compat import cached_property
18
14
  from .._resource import SyncAPIResource, AsyncAPIResource
19
15
  from .._response import (
@@ -16,12 +16,7 @@ from .content import (
16
16
  AsyncContentResourceWithStreamingResponse,
17
17
  )
18
18
  from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven, FileTypes
19
- from ..._utils import (
20
- extract_files,
21
- maybe_transform,
22
- deepcopy_minimal,
23
- async_maybe_transform,
24
- )
19
+ from ..._utils import extract_files, maybe_transform, deepcopy_minimal, async_maybe_transform
25
20
  from ..._compat import cached_property
26
21
  from ..._resource import SyncAPIResource, AsyncAPIResource
27
22
  from ..._response import (
@@ -8,10 +8,7 @@ import httpx
8
8
 
9
9
  from ..types import inference_create_params
10
10
  from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
11
- from .._utils import (
12
- maybe_transform,
13
- async_maybe_transform,
14
- )
11
+ from .._utils import maybe_transform, async_maybe_transform
15
12
  from .._compat import cached_property
16
13
  from .._resource import SyncAPIResource, AsyncAPIResource
17
14
  from .._response import (
@@ -9,11 +9,7 @@ import httpx
9
9
 
10
10
  from ..types import model_list_params, model_create_params, model_update_params
11
11
  from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
12
- from .._utils import (
13
- required_args,
14
- maybe_transform,
15
- async_maybe_transform,
16
- )
12
+ from .._utils import required_args, maybe_transform, async_maybe_transform
17
13
  from .._compat import cached_property
18
14
  from .._resource import SyncAPIResource, AsyncAPIResource
19
15
  from .._response import (
@@ -10,11 +10,7 @@ import httpx
10
10
 
11
11
  from ..types import span_list_params, span_create_params, span_update_params
12
12
  from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
13
- from .._utils import (
14
- required_args,
15
- maybe_transform,
16
- async_maybe_transform,
17
- )
13
+ from .._utils import required_args, maybe_transform, async_maybe_transform
18
14
  from .._compat import cached_property
19
15
  from .._resource import SyncAPIResource, AsyncAPIResource
20
16
  from .._response import (
@@ -256,11 +252,11 @@ class SpansResource(SyncAPIResource):
256
252
  self,
257
253
  *,
258
254
  ending_before: Optional[str] | NotGiven = NOT_GIVEN,
259
- from_ts: Union[str, datetime, None] | NotGiven = NOT_GIVEN,
255
+ from_ts: int | NotGiven = NOT_GIVEN,
260
256
  limit: int | NotGiven = NOT_GIVEN,
261
257
  parents_only: Optional[bool] | NotGiven = NOT_GIVEN,
262
258
  starting_after: Optional[str] | NotGiven = NOT_GIVEN,
263
- to_ts: Union[str, datetime, None] | NotGiven = NOT_GIVEN,
259
+ to_ts: int | NotGiven = NOT_GIVEN,
264
260
  trace_id: Optional[str] | NotGiven = NOT_GIVEN,
265
261
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
266
262
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -273,6 +269,10 @@ class SpansResource(SyncAPIResource):
273
269
  List Spans
274
270
 
275
271
  Args:
272
+ from_ts: The starting (oldest) timestamp window in seconds.
273
+
274
+ to_ts: The ending (most recent) timestamp in seconds.
275
+
276
276
  extra_headers: Send extra headers
277
277
 
278
278
  extra_query: Add additional query parameters to the request
@@ -532,11 +532,11 @@ class AsyncSpansResource(AsyncAPIResource):
532
532
  self,
533
533
  *,
534
534
  ending_before: Optional[str] | NotGiven = NOT_GIVEN,
535
- from_ts: Union[str, datetime, None] | NotGiven = NOT_GIVEN,
535
+ from_ts: int | NotGiven = NOT_GIVEN,
536
536
  limit: int | NotGiven = NOT_GIVEN,
537
537
  parents_only: Optional[bool] | NotGiven = NOT_GIVEN,
538
538
  starting_after: Optional[str] | NotGiven = NOT_GIVEN,
539
- to_ts: Union[str, datetime, None] | NotGiven = NOT_GIVEN,
539
+ to_ts: int | NotGiven = NOT_GIVEN,
540
540
  trace_id: Optional[str] | NotGiven = NOT_GIVEN,
541
541
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
542
542
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -549,6 +549,10 @@ class AsyncSpansResource(AsyncAPIResource):
549
549
  List Spans
550
550
 
551
551
  Args:
552
+ from_ts: The starting (oldest) timestamp window in seconds.
553
+
554
+ to_ts: The ending (most recent) timestamp in seconds.
555
+
552
556
  extra_headers: Send extra headers
553
557
 
554
558
  extra_query: Add additional query parameters to the request
@@ -21,6 +21,15 @@ __all__ = [
21
21
  "ApplicationVariantV1EvaluationTaskConfigurationOverridesAgenticApplicationOverrides",
22
22
  "ApplicationVariantV1EvaluationTaskConfigurationOverridesAgenticApplicationOverridesInitialState",
23
23
  "ApplicationVariantV1EvaluationTaskConfigurationOverridesAgenticApplicationOverridesPartialTrace",
24
+ "MetricEvaluationTask",
25
+ "MetricEvaluationTaskConfiguration",
26
+ "MetricEvaluationTaskConfigurationBleuScorerConfigWithItemLocator",
27
+ "MetricEvaluationTaskConfigurationMeteorScorerConfigWithItemLocator",
28
+ "MetricEvaluationTaskConfigurationCosineSimilarityScorerConfigWithItemLocator",
29
+ "MetricEvaluationTaskConfigurationF1ScorerConfigWithItemLocator",
30
+ "MetricEvaluationTaskConfigurationRougeScorer1ConfigWithItemLocator",
31
+ "MetricEvaluationTaskConfigurationRougeScorer2ConfigWithItemLocator",
32
+ "MetricEvaluationTaskConfigurationRougeScorerLConfigWithItemLocator",
24
33
  ]
25
34
 
26
35
 
@@ -199,7 +208,91 @@ class ApplicationVariantV1EvaluationTask(BaseModel):
199
208
  task_type: Optional[Literal["application_variant"]] = None
200
209
 
201
210
 
211
+ class MetricEvaluationTaskConfigurationBleuScorerConfigWithItemLocator(BaseModel):
212
+ candidate: str
213
+
214
+ reference: str
215
+
216
+ type: Literal["bleu"]
217
+
218
+
219
+ class MetricEvaluationTaskConfigurationMeteorScorerConfigWithItemLocator(BaseModel):
220
+ candidate: str
221
+
222
+ reference: str
223
+
224
+ type: Literal["meteor"]
225
+
226
+
227
+ class MetricEvaluationTaskConfigurationCosineSimilarityScorerConfigWithItemLocator(BaseModel):
228
+ candidate: str
229
+
230
+ reference: str
231
+
232
+ type: Literal["cosine_similarity"]
233
+
234
+
235
+ class MetricEvaluationTaskConfigurationF1ScorerConfigWithItemLocator(BaseModel):
236
+ candidate: str
237
+
238
+ reference: str
239
+
240
+ type: Literal["f1"]
241
+
242
+
243
+ class MetricEvaluationTaskConfigurationRougeScorer1ConfigWithItemLocator(BaseModel):
244
+ candidate: str
245
+
246
+ reference: str
247
+
248
+ type: Literal["rouge1"]
249
+
250
+
251
+ class MetricEvaluationTaskConfigurationRougeScorer2ConfigWithItemLocator(BaseModel):
252
+ candidate: str
253
+
254
+ reference: str
255
+
256
+ type: Literal["rouge2"]
257
+
258
+
259
+ class MetricEvaluationTaskConfigurationRougeScorerLConfigWithItemLocator(BaseModel):
260
+ candidate: str
261
+
262
+ reference: str
263
+
264
+ type: Literal["rougeL"]
265
+
266
+
267
+ MetricEvaluationTaskConfiguration: TypeAlias = Annotated[
268
+ Union[
269
+ MetricEvaluationTaskConfigurationBleuScorerConfigWithItemLocator,
270
+ MetricEvaluationTaskConfigurationMeteorScorerConfigWithItemLocator,
271
+ MetricEvaluationTaskConfigurationCosineSimilarityScorerConfigWithItemLocator,
272
+ MetricEvaluationTaskConfigurationF1ScorerConfigWithItemLocator,
273
+ MetricEvaluationTaskConfigurationRougeScorer1ConfigWithItemLocator,
274
+ MetricEvaluationTaskConfigurationRougeScorer2ConfigWithItemLocator,
275
+ MetricEvaluationTaskConfigurationRougeScorerLConfigWithItemLocator,
276
+ ],
277
+ PropertyInfo(discriminator="type"),
278
+ ]
279
+
280
+
281
+ class MetricEvaluationTask(BaseModel):
282
+ configuration: MetricEvaluationTaskConfiguration
283
+
284
+ alias: Optional[str] = None
285
+ """Alias to title the results column. Defaults to the `task_type`"""
286
+
287
+ task_type: Optional[Literal["metric"]] = None
288
+
289
+
202
290
  EvaluationTask: TypeAlias = Annotated[
203
- Union[ChatCompletionEvaluationTask, GenericInferenceEvaluationTask, ApplicationVariantV1EvaluationTask],
291
+ Union[
292
+ ChatCompletionEvaluationTask,
293
+ GenericInferenceEvaluationTask,
294
+ ApplicationVariantV1EvaluationTask,
295
+ MetricEvaluationTask,
296
+ ],
204
297
  PropertyInfo(discriminator="task_type"),
205
298
  ]
@@ -20,6 +20,15 @@ __all__ = [
20
20
  "ApplicationVariantV1EvaluationTaskConfigurationOverridesAgenticApplicationOverrides",
21
21
  "ApplicationVariantV1EvaluationTaskConfigurationOverridesAgenticApplicationOverridesInitialState",
22
22
  "ApplicationVariantV1EvaluationTaskConfigurationOverridesAgenticApplicationOverridesPartialTrace",
23
+ "MetricEvaluationTask",
24
+ "MetricEvaluationTaskConfiguration",
25
+ "MetricEvaluationTaskConfigurationBleuScorerConfigWithItemLocator",
26
+ "MetricEvaluationTaskConfigurationMeteorScorerConfigWithItemLocator",
27
+ "MetricEvaluationTaskConfigurationCosineSimilarityScorerConfigWithItemLocator",
28
+ "MetricEvaluationTaskConfigurationF1ScorerConfigWithItemLocator",
29
+ "MetricEvaluationTaskConfigurationRougeScorer1ConfigWithItemLocator",
30
+ "MetricEvaluationTaskConfigurationRougeScorer2ConfigWithItemLocator",
31
+ "MetricEvaluationTaskConfigurationRougeScorerLConfigWithItemLocator",
23
32
  ]
24
33
 
25
34
 
@@ -201,6 +210,85 @@ class ApplicationVariantV1EvaluationTask(TypedDict, total=False):
201
210
  task_type: Literal["application_variant"]
202
211
 
203
212
 
213
+ class MetricEvaluationTaskConfigurationBleuScorerConfigWithItemLocator(TypedDict, total=False):
214
+ candidate: Required[str]
215
+
216
+ reference: Required[str]
217
+
218
+ type: Required[Literal["bleu"]]
219
+
220
+
221
+ class MetricEvaluationTaskConfigurationMeteorScorerConfigWithItemLocator(TypedDict, total=False):
222
+ candidate: Required[str]
223
+
224
+ reference: Required[str]
225
+
226
+ type: Required[Literal["meteor"]]
227
+
228
+
229
+ class MetricEvaluationTaskConfigurationCosineSimilarityScorerConfigWithItemLocator(TypedDict, total=False):
230
+ candidate: Required[str]
231
+
232
+ reference: Required[str]
233
+
234
+ type: Required[Literal["cosine_similarity"]]
235
+
236
+
237
+ class MetricEvaluationTaskConfigurationF1ScorerConfigWithItemLocator(TypedDict, total=False):
238
+ candidate: Required[str]
239
+
240
+ reference: Required[str]
241
+
242
+ type: Required[Literal["f1"]]
243
+
244
+
245
+ class MetricEvaluationTaskConfigurationRougeScorer1ConfigWithItemLocator(TypedDict, total=False):
246
+ candidate: Required[str]
247
+
248
+ reference: Required[str]
249
+
250
+ type: Required[Literal["rouge1"]]
251
+
252
+
253
+ class MetricEvaluationTaskConfigurationRougeScorer2ConfigWithItemLocator(TypedDict, total=False):
254
+ candidate: Required[str]
255
+
256
+ reference: Required[str]
257
+
258
+ type: Required[Literal["rouge2"]]
259
+
260
+
261
+ class MetricEvaluationTaskConfigurationRougeScorerLConfigWithItemLocator(TypedDict, total=False):
262
+ candidate: Required[str]
263
+
264
+ reference: Required[str]
265
+
266
+ type: Required[Literal["rougeL"]]
267
+
268
+
269
+ MetricEvaluationTaskConfiguration: TypeAlias = Union[
270
+ MetricEvaluationTaskConfigurationBleuScorerConfigWithItemLocator,
271
+ MetricEvaluationTaskConfigurationMeteorScorerConfigWithItemLocator,
272
+ MetricEvaluationTaskConfigurationCosineSimilarityScorerConfigWithItemLocator,
273
+ MetricEvaluationTaskConfigurationF1ScorerConfigWithItemLocator,
274
+ MetricEvaluationTaskConfigurationRougeScorer1ConfigWithItemLocator,
275
+ MetricEvaluationTaskConfigurationRougeScorer2ConfigWithItemLocator,
276
+ MetricEvaluationTaskConfigurationRougeScorerLConfigWithItemLocator,
277
+ ]
278
+
279
+
280
+ class MetricEvaluationTask(TypedDict, total=False):
281
+ configuration: Required[MetricEvaluationTaskConfiguration]
282
+
283
+ alias: str
284
+ """Alias to title the results column. Defaults to the `task_type`"""
285
+
286
+ task_type: Literal["metric"]
287
+
288
+
204
289
  EvaluationTaskParam: TypeAlias = Union[
205
- ChatCompletionEvaluationTask, GenericInferenceEvaluationTask, ApplicationVariantV1EvaluationTask
290
+ ChatCompletionEvaluationTask,
291
+ GenericInferenceEvaluationTask,
292
+ ApplicationVariantV1EvaluationTask,
293
+ MetricEvaluationTask,
206
294
  ]
@@ -2,11 +2,8 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Union, Optional
6
- from datetime import datetime
7
- from typing_extensions import Annotated, TypedDict
8
-
9
- from .._utils import PropertyInfo
5
+ from typing import Optional
6
+ from typing_extensions import TypedDict
10
7
 
11
8
  __all__ = ["SpanListParams"]
12
9
 
@@ -14,7 +11,8 @@ __all__ = ["SpanListParams"]
14
11
  class SpanListParams(TypedDict, total=False):
15
12
  ending_before: Optional[str]
16
13
 
17
- from_ts: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
14
+ from_ts: int
15
+ """The starting (oldest) timestamp window in seconds."""
18
16
 
19
17
  limit: int
20
18
 
@@ -22,6 +20,7 @@ class SpanListParams(TypedDict, total=False):
22
20
 
23
21
  starting_after: Optional[str]
24
22
 
25
- to_ts: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
23
+ to_ts: int
24
+ """The ending (most recent) timestamp in seconds."""
26
25
 
27
26
  trace_id: Optional[str]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: scale-gp-beta
3
- Version: 0.1.0a10
3
+ Version: 0.1.0a12
4
4
  Summary: The official Python library for the Scale GP API
5
5
  Project-URL: Homepage, https://github.com/scaleapi/sgp-python-beta
6
6
  Project-URL: Repository, https://github.com/scaleapi/sgp-python-beta
@@ -1,17 +1,17 @@
1
1
  scale_gp_beta/__init__.py,sha256=XmzYbUteZA7f7EPIFNKcPSnSgFpK6ovSlHY57Xk-WGo,2535
2
- scale_gp_beta/_base_client.py,sha256=YJ1dXCSFJrBs6RVovcusEB-HlBrPakhBQPtrxqU9q-0,66251
3
- scale_gp_beta/_client.py,sha256=IQedklB_0UJ4lYU56a4HDVoo46LN6oE3Hxy2qi312Qk,24504
2
+ scale_gp_beta/_base_client.py,sha256=8GtHz6aZm1Bzodrvusazgq3JJMpTHsCNyuUEw86he8M,64851
3
+ scale_gp_beta/_client.py,sha256=3pNXJs9TKLjfYoTjFIIoSdd4mwwX1cc-VUveMBmkl_8,24491
4
4
  scale_gp_beta/_compat.py,sha256=VWemUKbj6DDkQ-O4baSpHVLJafotzeXmCQGJugfVTIw,6580
5
5
  scale_gp_beta/_constants.py,sha256=S14PFzyN9-I31wiV7SmIlL5Ga0MLHxdvegInGdXH7tM,462
6
6
  scale_gp_beta/_exceptions.py,sha256=95GM5CLFtP-QMjjmzsr5ajjZOyEZvyaETfGmqNPR8YM,3226
7
7
  scale_gp_beta/_files.py,sha256=VHiUi-XDLm5MK8EbVoB2TdgX3jbYshIfxYLeKv5jaYI,3620
8
- scale_gp_beta/_models.py,sha256=q-l1tes71l6z-D5ffu9-G4UigTVVeJwiwIzA_gO4RFo,29045
8
+ scale_gp_beta/_models.py,sha256=mB2r2VWQq49jG-F0RIXDrBxPp3v-Eg12wMOtVTNxtv4,29057
9
9
  scale_gp_beta/_qs.py,sha256=AOkSz4rHtK4YI3ZU_kzea-zpwBUgEY8WniGmTPyEimc,4846
10
10
  scale_gp_beta/_resource.py,sha256=siZly_U6D0AOVLAzaOsqUdEFFzVMbWRj-ml30nvRp7E,1118
11
- scale_gp_beta/_response.py,sha256=ATtij8CjXVjmhdOWozU9Y0SP4Q_uxCYGFUHroxFnSc4,28853
11
+ scale_gp_beta/_response.py,sha256=GemuybPk0uemovTlGHyHkj-ScYTTDJA0jqH5FQqIPwQ,28852
12
12
  scale_gp_beta/_streaming.py,sha256=fcCSGXslmi2SmmkM05g2SACXHk2Mj7k1X5uMBu6U5s8,10112
13
13
  scale_gp_beta/_types.py,sha256=ScQhVBaKbtJrER3NkXbjokWE9DqSqREMIw9LE0NrFfA,6150
14
- scale_gp_beta/_version.py,sha256=iYnIL0agVeUM81QWxtR_H4N8cgZsCfwWpVtd418S8Fk,174
14
+ scale_gp_beta/_version.py,sha256=8Knp4MLFQyXpPmUI1ikQFJejcnJ6hlWsrVpiUf6jLlA,174
15
15
  scale_gp_beta/pagination.py,sha256=6AAa8_V0wARlMd1MIXijugYbG1mILGc2tHVKbUQbZyQ,2595
16
16
  scale_gp_beta/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  scale_gp_beta/_utils/__init__.py,sha256=PNZ_QJuzZEgyYXqkO1HVhGkj5IU9bglVUcw7H-Knjzw,2062
@@ -22,23 +22,23 @@ scale_gp_beta/_utils/_streams.py,sha256=SMC90diFFecpEg_zgDRVbdR3hSEIgVVij4taD-no
22
22
  scale_gp_beta/_utils/_sync.py,sha256=TpGLrrhRNWTJtODNE6Fup3_k7zrWm1j2RlirzBwre-0,2862
23
23
  scale_gp_beta/_utils/_transform.py,sha256=n7kskEWz6o__aoNvhFoGVyDoalNe6mJwp-g7BWkdj88,15617
24
24
  scale_gp_beta/_utils/_typing.py,sha256=D0DbbNu8GnYQTSICnTSHDGsYXj8TcAKyhejb0XcnjtY,4602
25
- scale_gp_beta/_utils/_utils.py,sha256=8UmbPOy_AAr2uUjjFui-VZSrVBHRj6bfNEKRp5YZP2A,12004
25
+ scale_gp_beta/_utils/_utils.py,sha256=ts4CiiuNpFiGB6YMdkQRh2SZvYvsl7mAF-JWHCcLDf4,12312
26
26
  scale_gp_beta/lib/.keep,sha256=wuNrz-5SXo3jJaJOJgz4vFHM41YH_g20F5cRQo0vLes,224
27
27
  scale_gp_beta/resources/__init__.py,sha256=Fyo05_2_pc5orfyTSIpxa3btmBTd45VasgibwSqbbKo,4942
28
- scale_gp_beta/resources/completions.py,sha256=sIeBtMECxyi6TQIq8ZX0r_k0HYZq-JoJZO3nPuTVrQc,31885
29
- scale_gp_beta/resources/dataset_items.py,sha256=BOx6ddLcDvL5L9HweCY62QnxflAs1jQJC-Ni-xzMUf0,22361
30
- scale_gp_beta/resources/datasets.py,sha256=vtKP_xJVsrv0iE9T5qc-YA0fPeK5DchmQ6Ob_iMmscw,21263
31
- scale_gp_beta/resources/evaluation_items.py,sha256=iD-srR9ZQQ3WAutxA98_MMj4_1h-B1_lZ_Ujb9F6Ino,11460
32
- scale_gp_beta/resources/evaluations.py,sha256=Ahf7wuNha6M_q5tbgkqcnAdLkq6IhFnf1fsSqonG3Hg,27006
33
- scale_gp_beta/resources/inference.py,sha256=_20eN0x0PZBPNLx2VrozQrJgRVjtlXPjeTpTcnuP0bU,7576
34
- scale_gp_beta/resources/models.py,sha256=85F8qPJN9lBPbfNm9F8bHpdJSsyekS9B3GDPJtCXaMA,32658
35
- scale_gp_beta/resources/spans.py,sha256=cm0bAIMRgyG6uEptkZMPzFEp9PQwo0Qpq1QLhMG2WoY,24554
28
+ scale_gp_beta/resources/completions.py,sha256=4esj9lGTJAxt6wFvON126DvEGkMIChRZ6uZBOf56Aac,31868
29
+ scale_gp_beta/resources/dataset_items.py,sha256=NDgojjDkmFtJqWTxMNvIPKk21ermXvX18cfY8Gtf3x0,22348
30
+ scale_gp_beta/resources/datasets.py,sha256=NBYaSP9G3xxENCpM3jQg1cEpvLu6XNzAOfs3YzVmYV8,21229
31
+ scale_gp_beta/resources/evaluation_items.py,sha256=r5BYvQKd3T2ucrjtJgYeeLtiH0Ay72MpDs6rmgELMfo,11447
32
+ scale_gp_beta/resources/evaluations.py,sha256=n8QQ1SDO7wehTRG_zRQsj5KNTn3GP_6p117VYUSGtOw,26989
33
+ scale_gp_beta/resources/inference.py,sha256=w1JD8S5P_SxhOtj1vDyg-23uP72zVVVU6lKU_YbqX4U,7563
34
+ scale_gp_beta/resources/models.py,sha256=hpbrASdfOjJY3zk1lliqnwOJ-IAvLEU5mi4ZQs-_YsU,32641
35
+ scale_gp_beta/resources/spans.py,sha256=2lEcw6jLLlydMroyRqykvzrqCY_1uKUSd1rIRFdyFAo,24717
36
36
  scale_gp_beta/resources/chat/__init__.py,sha256=BVAfz9TM3DT5W9f_mt0P9YRxL_MsUxKCWAH6u1iogmA,1041
37
37
  scale_gp_beta/resources/chat/chat.py,sha256=4OG_TrwVqYvV-7Ha8Nbc6iuXQuys9wKXgkxYmE6p6jk,3672
38
- scale_gp_beta/resources/chat/completions.py,sha256=RWxjo0AeHBATHzKlPFQsd4wZMt-L5phg5s0w6DqVJLg,46813
38
+ scale_gp_beta/resources/chat/completions.py,sha256=U8WYjCwIHyGtqx7Hay8I44nBr4pLYolYIsAzddwEDiE,46796
39
39
  scale_gp_beta/resources/files/__init__.py,sha256=VgAtqUimN5Kf_-lmEaNBnu_ApGegKsJQ1zNf-42MXFA,1002
40
40
  scale_gp_beta/resources/files/content.py,sha256=oJxb-28ZOUBgzE_MiAaJOcKFmtlB-N5APdhfZBNJna8,5762
41
- scale_gp_beta/resources/files/files.py,sha256=M8OdZoIi3fFjJL7oIn8w9TD6TVcASCMy1Ze1YZRbPMo,20530
41
+ scale_gp_beta/resources/files/files.py,sha256=78wqCwXRprEx-35voYSWeXB8hokeaMkDn2-akm5F8gw,20509
42
42
  scale_gp_beta/types/__init__.py,sha256=PXswtuIKTn38CCRpTeJhV_H8JH68A038rpKKwTmyd9Q,3486
43
43
  scale_gp_beta/types/completion.py,sha256=5eewo25sdqL4vutqvE8wmugE0Cw6YLzZ0_AD6yjP9NM,3259
44
44
  scale_gp_beta/types/completion_create_params.py,sha256=LE9vna29Kbh7E8qUq7EhQbcu7YuCF_h663maKtzOnhk,3063
@@ -63,8 +63,8 @@ scale_gp_beta/types/evaluation_item_list_params.py,sha256=LquF3dWIU6b7O_Sy_b0R2F
63
63
  scale_gp_beta/types/evaluation_item_retrieve_params.py,sha256=UYEKIAQ4dy92ZOSV1tWDZcvXG7_0BSpOND5Ehzs7QM4,296
64
64
  scale_gp_beta/types/evaluation_list_params.py,sha256=bAYktX3x-rEqNKbBocDyJ0Iqwwz2rZLPK9bHxlU4wYQ,443
65
65
  scale_gp_beta/types/evaluation_retrieve_params.py,sha256=_YuT-E2VO-f_SvHaIe24KBbhTNoK8T-3tVB6Ov6cqfg,356
66
- scale_gp_beta/types/evaluation_task.py,sha256=2ariEI9Hg63xvMo7AlVv74vKFnxxQkuRgm6ODcP_hew,6461
67
- scale_gp_beta/types/evaluation_task_param.py,sha256=8C43Kt2077v4XzU-QAKJe1qigmdsW1_L8PwB2t21QBo,5958
66
+ scale_gp_beta/types/evaluation_task.py,sha256=B6W-7Q9LXJlWcMimCA-FQAFfa6txg7LmGqx8Hterhms,9114
67
+ scale_gp_beta/types/evaluation_task_param.py,sha256=cJz1MyC4CSBuu1R6rGpHNZGrZaEjGdUPqhrGb5eRxDw,8785
68
68
  scale_gp_beta/types/file.py,sha256=Xkha0eSr1q6hkwjE9e2XNgk8kuHNoTEe1LXNhz6o-1k,528
69
69
  scale_gp_beta/types/file_create_params.py,sha256=KpXv6JCbd8BlgceTmBTewxOky2JTJaTW3mcGiVVU7wE,317
70
70
  scale_gp_beta/types/file_delete_response.py,sha256=lOsiaw8qrUOnH7smxb27-n7M4D1chfXlAUaMTRmdldY,336
@@ -83,7 +83,7 @@ scale_gp_beta/types/model_list_params.py,sha256=617LRolXLNCV8kadHK7XRGN-0woh0mvj
83
83
  scale_gp_beta/types/model_update_params.py,sha256=RFXvs-EIDHmNO-fnPB8H6B9DlK6bYVsiwFDMPPFHGII,3701
84
84
  scale_gp_beta/types/span.py,sha256=SeQzIFtCM2q3-4wHy-uzQOoEXRJnA1awxoHZH3-0h9E,792
85
85
  scale_gp_beta/types/span_create_params.py,sha256=KZu7-6WNpXOYr5J-1AMRdnzMsTzgQBRvUvsuRedbxQc,1588
86
- scale_gp_beta/types/span_list_params.py,sha256=sW5VB-7P8eUgLq_Iv-RLe6tp56oVNMkpfOIttsDPayg,665
86
+ scale_gp_beta/types/span_list_params.py,sha256=VVvM3RorGHaH3YEEcPdUJjNDU9uxUrIFqvmexh2Re9Q,568
87
87
  scale_gp_beta/types/span_update_params.py,sha256=pz03g-tLO_nziLUqZOtDMI-6HTlxvzayFEoISXDx9jw,510
88
88
  scale_gp_beta/types/chat/__init__.py,sha256=DA0PFPt0oaPb25RI7Cs3RQEJfDLg5-qBiU8l0S_3nnw,443
89
89
  scale_gp_beta/types/chat/chat_completion.py,sha256=oYOrsTBdGwV9e_mF4F06XmdyZI4pyw06IQ-0mFn0etk,8250
@@ -91,7 +91,7 @@ scale_gp_beta/types/chat/chat_completion_chunk.py,sha256=57-i6LyOk6IX2HZvXsoUC26
91
91
  scale_gp_beta/types/chat/completion_create_params.py,sha256=Y7vJNvNM4Sov77l55aS5YtyRnrf7isediu3nKr6YE-A,4505
92
92
  scale_gp_beta/types/chat/completion_create_response.py,sha256=0OhfoJW8azVRrZdXRRMuiJ7kEEeMDnKScxrr3sayzDo,374
93
93
  scale_gp_beta/types/files/__init__.py,sha256=OKfJYcKb4NObdiRObqJV_dOyDQ8feXekDUge2o_4pXQ,122
94
- scale_gp_beta-0.1.0a10.dist-info/METADATA,sha256=uCMZT4AxHoCQ8b4SrzsONWH3eOSKDiV6F-ukzxzAIgA,16942
95
- scale_gp_beta-0.1.0a10.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
96
- scale_gp_beta-0.1.0a10.dist-info/licenses/LICENSE,sha256=x49Bj8r_ZpqfzThbmfHyZ_bE88XvHdIMI_ANyLHFFRE,11338
97
- scale_gp_beta-0.1.0a10.dist-info/RECORD,,
94
+ scale_gp_beta-0.1.0a12.dist-info/METADATA,sha256=GBvVuBH4tEVKba9R-Drxp0nXTkMQlYRUYxQrLL7A5Mk,16942
95
+ scale_gp_beta-0.1.0a12.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
96
+ scale_gp_beta-0.1.0a12.dist-info/licenses/LICENSE,sha256=x49Bj8r_ZpqfzThbmfHyZ_bE88XvHdIMI_ANyLHFFRE,11338
97
+ scale_gp_beta-0.1.0a12.dist-info/RECORD,,