rapidata 1.6.4__py3-none-any.whl → 1.7.1__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.

Potentially problematic release.


This version of rapidata might be problematic. Click here for more details.

Files changed (26) hide show
  1. rapidata/api_client/__init__.py +6 -1
  2. rapidata/api_client/api/__init__.py +1 -0
  3. rapidata/api_client/api/client_api.py +836 -0
  4. rapidata/api_client/api/identity_api.py +305 -49
  5. rapidata/api_client/api/order_api.py +7 -7
  6. rapidata/api_client/models/__init__.py +5 -1
  7. rapidata/api_client/models/clients_query_result.py +107 -0
  8. rapidata/api_client/models/clients_query_result_paged_result.py +105 -0
  9. rapidata/api_client/models/create_bridge_token_result.py +89 -0
  10. rapidata/api_client/models/create_client_model.py +1 -1
  11. rapidata/api_client/models/problem_details.py +133 -0
  12. rapidata/api_client/models/query_model.py +8 -8
  13. rapidata/api_client/models/read_bridge_token_keys_result.py +99 -0
  14. rapidata/api_client_README.md +10 -2
  15. rapidata/rapidata_client/assets/media_asset.py +54 -2
  16. rapidata/rapidata_client/dataset/rapidata_dataset.py +13 -7
  17. rapidata/rapidata_client/order/rapidata_order.py +14 -9
  18. rapidata/rapidata_client/order/rapidata_order_builder.py +5 -1
  19. rapidata/rapidata_client/referee/early_stopping_referee.py +4 -3
  20. rapidata/rapidata_client/simple_builders/simple_classification_builders.py +17 -10
  21. rapidata/rapidata_client/simple_builders/simple_compare_builders.py +31 -10
  22. rapidata/service/credential_manager.py +1 -1
  23. {rapidata-1.6.4.dist-info → rapidata-1.7.1.dist-info}/METADATA +1 -1
  24. {rapidata-1.6.4.dist-info → rapidata-1.7.1.dist-info}/RECORD +26 -20
  25. {rapidata-1.6.4.dist-info → rapidata-1.7.1.dist-info}/LICENSE +0 -0
  26. {rapidata-1.6.4.dist-info → rapidata-1.7.1.dist-info}/WHEEL +0 -0
@@ -4,7 +4,10 @@ Defines the MediaAsset class for handling media file paths within assets.
4
4
  """
5
5
 
6
6
  import os
7
+ from io import BytesIO
7
8
  from rapidata.rapidata_client.assets.base_asset import BaseAsset
9
+ import requests
10
+ import re
8
11
 
9
12
  class MediaAsset(BaseAsset):
10
13
  """MediaAsset Class
@@ -23,11 +26,60 @@ class MediaAsset(BaseAsset):
23
26
  Initialize a MediaAsset instance.
24
27
 
25
28
  Args:
26
- path (str): The file system path to the media asset.
29
+ path (str): The file system path to the media asset or a link to an image.
27
30
 
28
31
  Raises:
29
32
  FileNotFoundError: If the provided file path does not exist.
30
33
  """
34
+ if re.match(r'^https?://', path):
35
+ self.path = MediaAsset.get_image_bytes(path)
36
+ self.name = path.split('/')[-1]
37
+ if not self.name.endswith(('.jpg', '.jpeg', '.png', '.gif')):
38
+ self.name += '.jpg'
39
+ return
40
+
31
41
  if not os.path.exists(path):
32
42
  raise FileNotFoundError(f"File not found: {path}, please provide a valid local file path.")
33
- self.path = path
43
+
44
+ self.path: str | bytes = path
45
+ self.name = path
46
+
47
+ def set_custom_name(self, name: str) -> 'MediaAsset':
48
+ """
49
+ Set a custom name for the media asset, will only work with links.
50
+
51
+ Args:
52
+ name (str): The custom name to be set.
53
+ """
54
+ if isinstance(self.path, bytes):
55
+ if not name.endswith(('.jpg', '.jpeg', '.png', '.gif')):
56
+ name += '.jpg'
57
+ self.name = name
58
+ else:
59
+ raise ValueError("Custom name can only be set for links.")
60
+ return self
61
+
62
+ @staticmethod
63
+ def get_image_bytes(image_url: str) -> bytes:
64
+ """
65
+ Downloads an image from a URL and converts it to bytes.
66
+ Validates that the URL points to an actual image.
67
+
68
+ Args:
69
+ image_url (str): URL of the image
70
+
71
+ Returns:
72
+ bytes: Image data as bytes
73
+
74
+ Raises:
75
+ ValueError: If URL doesn't point to an image
76
+ requests.exceptions.RequestException: If download fails
77
+ """
78
+ response = requests.get(image_url)
79
+ response.raise_for_status()
80
+
81
+ content_type = response.headers.get('content-type', '')
82
+ if not content_type.startswith('image/'):
83
+ raise ValueError(f'URL does not point to an image. Content-Type: {content_type}')
84
+
85
+ return BytesIO(response.content).getvalue()
@@ -15,6 +15,8 @@ from rapidata.service.openapi_service import OpenAPIService
15
15
  from concurrent.futures import ThreadPoolExecutor, as_completed
16
16
  from tqdm import tqdm
17
17
 
18
+ from typing import cast
19
+
18
20
 
19
21
  class RapidataDataset:
20
22
 
@@ -80,16 +82,12 @@ class RapidataDataset:
80
82
 
81
83
  def upload_datapoint(media_asset: MediaAsset | MultiAsset, meta: Metadata | None) -> None:
82
84
  if isinstance(media_asset, MediaAsset):
83
- paths = [media_asset.path]
85
+ assets = [media_asset]
84
86
  elif isinstance(media_asset, MultiAsset):
85
- paths = [asset.path for asset in media_asset.assets if isinstance(asset, MediaAsset)]
87
+ assets = media_asset.assets
86
88
  else:
87
89
  raise ValueError(f"Unsupported asset type: {type(media_asset)}")
88
90
 
89
- assert all(
90
- os.path.exists(media_path) for media_path in paths
91
- ), "All media paths must exist on the local filesystem."
92
-
93
91
  meta_model = meta.to_model() if meta else None
94
92
  model = DatapointMetadataModel(
95
93
  datasetId=self.dataset_id,
@@ -100,9 +98,17 @@ class RapidataDataset:
100
98
  ),
101
99
  )
102
100
 
101
+ files: list[tuple[str, bytes] | str] = []
102
+ for asset in assets:
103
+ if isinstance(asset, MediaAsset):
104
+ if isinstance(asset.path, bytes):
105
+ files.append((asset.name, asset.path))
106
+ else:
107
+ files.append(cast(str, asset.path))
108
+
103
109
  self.openapi_service.dataset_api.dataset_create_datapoint_post(
104
110
  model=model,
105
- files=paths # type: ignore
111
+ files=files # type: ignore
106
112
  )
107
113
 
108
114
  total_uploads = len(media_paths)
@@ -53,16 +53,15 @@ class RapidataOrder:
53
53
  Prameter:
54
54
  How often to refresh the progress bar, in seconds.
55
55
  """
56
- total_rapids = self._get_workflow_progress().total
57
- with tqdm(total=total_rapids, desc="Processing order", unit="rapids") as pbar:
58
- completed_rapids = 0
56
+ with tqdm(total=100, desc="Processing order", unit="%", bar_format="{desc}: {percentage:3.0f}%|{bar}| completed [{elapsed}<{remaining}, {rate_fmt}]") as pbar:
57
+ last_percentage = 0
59
58
  while True:
60
- current_completed = self._get_workflow_progress().completed
61
- if current_completed > completed_rapids:
62
- pbar.update(current_completed - completed_rapids)
63
- completed_rapids = current_completed
59
+ current_percentage = self._get_workflow_progress().completion_percentage
60
+ if current_percentage > last_percentage:
61
+ pbar.update(current_percentage - last_percentage)
62
+ last_percentage = current_percentage
64
63
 
65
- if completed_rapids >= total_rapids:
64
+ if current_percentage >= 100:
66
65
  break
67
66
 
68
67
  sleep(refresh_rate)
@@ -71,7 +70,7 @@ class RapidataOrder:
71
70
  if self._workflow_id:
72
71
  return self._workflow_id
73
72
 
74
- for _ in range(2):
73
+ for _ in range(10):
75
74
  try:
76
75
  order_result = self.openapi_service.order_api.order_get_by_id_get(self.order_id)
77
76
  pipeline = self.openapi_service.pipeline_api.pipeline_id_get(order_result.pipeline_id)
@@ -130,3 +129,9 @@ class RapidataOrder:
130
129
  The RapidataDataset instance.
131
130
  """
132
131
  return self._dataset
132
+
133
+ def __str__(self) -> str:
134
+ return f"name: '{self.name}' order id: {self.order_id}"
135
+
136
+ def __repr__(self) -> str:
137
+ return f"name: '{self.name}' order id: {self.order_id}"
@@ -110,13 +110,14 @@ class RapidataOrderBuilder:
110
110
  priority=self._priority,
111
111
  )
112
112
 
113
- def create(self, submit: bool = True, max_workers: int = 10) -> RapidataOrder:
113
+ def create(self, submit: bool = True, max_workers: int = 10, disable_link=False) -> RapidataOrder:
114
114
  """
115
115
  Create the Rapidata order by making the necessary API calls based on the builder's configuration.
116
116
 
117
117
  Args:
118
118
  submit (bool, optional): Whether to submit the order upon creation. Defaults to True.
119
119
  max_workers (int, optional): The maximum number of worker threads for processing media paths. Defaults to 10.
120
+ disable_link (bool, optional): Whether to disable the link to the order. Defaults to False.
120
121
 
121
122
  Raises:
122
123
  ValueError: If both media paths and texts are provided, or if neither is provided.
@@ -200,6 +201,9 @@ class RapidataOrderBuilder:
200
201
  if submit:
201
202
  order.submit()
202
203
 
204
+ if not disable_link:
205
+ print(f"Order '{self._name}' is now viewable under https://app.rapidata.ai/order/detail/{order.order_id}.")
206
+
203
207
  return order
204
208
 
205
209
  def workflow(self, workflow: Workflow) -> "RapidataOrderBuilder":
@@ -8,14 +8,15 @@ from rapidata.api_client.models.early_stopping_referee_model import (
8
8
  class EarlyStoppingReferee(Referee):
9
9
  """A referee that stops the task when confidence in the winning category exceeds a threshold.
10
10
 
11
- This referee implements an early stopping mechanism for classification tasks.
11
+ This referee implements an early stopping mechanism for classification & compare tasks.
12
12
  It terminates the task when the confidence in the leading category surpasses
13
13
  a specified threshold or when the maximum number of votes is reached.
14
14
 
15
15
  The threshold behaves logarithmically, meaning small increments (e.g., from 0.99
16
16
  to 0.999) can significantly impact the stopping criteria.
17
17
 
18
- This referee is supported for the classification and compare tasks.
18
+ This referee is supported for the classification and compare tasks (in compare,
19
+ the two options are treated as the categories).
19
20
 
20
21
  Attributes:
21
22
  threshold (float): The confidence threshold for early stopping.
@@ -23,7 +24,7 @@ class EarlyStoppingReferee(Referee):
23
24
  """
24
25
 
25
26
  def __init__(self, threshold: float = 0.999, max_vote_count: int = 100):
26
- """Initialize the ClassifyEarlyStoppingReferee.
27
+ """Initialize the EarlyStoppingReferee.
27
28
 
28
29
  Args:
29
30
  threshold (float, optional): The confidence threshold for early stopping.
@@ -11,11 +11,11 @@ from rapidata.rapidata_client.assets import MediaAsset
11
11
  from typing import Sequence
12
12
 
13
13
  class ClassificationOrderBuilder:
14
- def __init__(self, name: str, question: str, options: list[str], media_paths: list[str], openapi_service: OpenAPIService):
14
+ def __init__(self, name: str, question: str, options: list[str], media_assets: list[MediaAsset], openapi_service: OpenAPIService):
15
15
  self._order_builder = RapidataOrderBuilder(name=name, openapi_service=openapi_service)
16
16
  self._question = question
17
17
  self._options = options
18
- self._media_paths = media_paths
18
+ self._media_assets = media_assets
19
19
  self._responses_required = 10
20
20
  self._probability_threshold = None
21
21
  self._metadata = None
@@ -51,8 +51,6 @@ class ClassificationOrderBuilder:
51
51
  else:
52
52
  referee = NaiveReferee(responses=self._responses_required)
53
53
 
54
- assets = [MediaAsset(path=media_path) for media_path in self._media_paths]
55
-
56
54
  selection: list[Selection] = ([ValidationSelection(amount=1, validation_set_id=self._validation_set_id), LabelingSelection(amount=2)]
57
55
  if self._validation_set_id
58
56
  else [LabelingSelection(amount=3)])
@@ -65,7 +63,7 @@ class ClassificationOrderBuilder:
65
63
  )
66
64
  )
67
65
  .referee(referee)
68
- .media(assets, metadata=self._metadata) # type: ignore
66
+ .media(self._media_assets, metadata=self._metadata)
69
67
  .selections(selection)
70
68
  .create(submit=submit, max_workers=max_upload_workers))
71
69
 
@@ -73,23 +71,32 @@ class ClassificationOrderBuilder:
73
71
 
74
72
 
75
73
  class ClassificationMediaBuilder:
76
- "test"
77
74
  def __init__(self, name: str, question: str, options: list[str], openapi_service: OpenAPIService):
78
75
  self._openapi_service = openapi_service
79
76
  self._name = name
80
77
  self._question = question
81
78
  self._options = options
82
- self._media_paths = None
79
+ self._media_assets = []
83
80
 
84
81
  def media(self, media_paths: list[str]) -> ClassificationOrderBuilder:
85
82
  """Set the media assets for the classification order by providing the local paths to the files."""
86
- self._media_paths = media_paths
83
+ if not isinstance(media_paths, list) or not all(isinstance(path, str) for path in media_paths):
84
+ raise ValueError("Media paths must be a list of strings, the strings being file paths")
85
+
86
+ invalid_paths = []
87
+ for path in media_paths:
88
+ try:
89
+ self._media_assets.append(MediaAsset(path))
90
+ except FileNotFoundError:
91
+ invalid_paths.append(path)
92
+ if invalid_paths:
93
+ raise FileNotFoundError(f"Could not find the following files: {invalid_paths}")
87
94
  return self._build()
88
95
 
89
96
  def _build(self) -> ClassificationOrderBuilder:
90
- if self._media_paths is None:
97
+ if not self._media_assets:
91
98
  raise ValueError("Media paths are required")
92
- return ClassificationOrderBuilder(self._name, self._question, self._options, self._media_paths, openapi_service=self._openapi_service)
99
+ return ClassificationOrderBuilder(self._name, self._question, self._options, self._media_assets, openapi_service=self._openapi_service)
93
100
 
94
101
 
95
102
  class ClassificationOptionsBuilder:
@@ -7,14 +7,15 @@ from rapidata.rapidata_client.selection.validation_selection import ValidationSe
7
7
  from rapidata.rapidata_client.selection.labeling_selection import LabelingSelection
8
8
  from rapidata.rapidata_client.selection.base_selection import Selection
9
9
  from rapidata.rapidata_client.assets import MultiAsset, MediaAsset
10
+ from rapidata.rapidata_client.order.rapidata_order import RapidataOrder
10
11
  from typing import Sequence
11
12
 
12
13
  class CompareOrderBuilder:
13
- def __init__(self, name:str, criteria: str, media_paths: list[list[str]], openapi_service: OpenAPIService):
14
+ def __init__(self, name:str, criteria: str, media_assets: list[MultiAsset], openapi_service: OpenAPIService):
14
15
  self._order_builder = RapidataOrderBuilder(name=name, openapi_service=openapi_service)
15
16
  self._name = name
16
17
  self._criteria = criteria
17
- self._media_paths = media_paths
18
+ self._media_assets = media_assets
18
19
  self._responses_required = 10
19
20
  self._metadata = None
20
21
  self._validation_set_id = None
@@ -40,7 +41,7 @@ class CompareOrderBuilder:
40
41
  self._probability_threshold = probability_threshold
41
42
  return self
42
43
 
43
- def create(self, submit: bool = True, max_upload_workers: int = 10):
44
+ def create(self, submit: bool = True, max_upload_workers: int = 10) -> RapidataOrder:
44
45
  if self._probability_threshold and self._responses_required:
45
46
  referee = EarlyStoppingReferee(
46
47
  max_vote_count=self._responses_required,
@@ -53,7 +54,6 @@ class CompareOrderBuilder:
53
54
  if self._validation_set_id
54
55
  else [LabelingSelection(amount=3)])
55
56
 
56
- media_paths = [MultiAsset([MediaAsset(path=path) for path in paths]) for paths in self._media_paths]
57
57
  order = (self._order_builder
58
58
  .workflow(
59
59
  CompareWorkflow(
@@ -61,7 +61,7 @@ class CompareOrderBuilder:
61
61
  )
62
62
  )
63
63
  .referee(referee)
64
- .media(media_paths, metadata=self._metadata) # type: ignore
64
+ .media(self._media_assets, metadata=self._metadata)
65
65
  .selections(selection)
66
66
  .create(submit=submit, max_workers=max_upload_workers))
67
67
 
@@ -72,18 +72,39 @@ class CompareMediaBuilder:
72
72
  self._openapi_service = openapi_service
73
73
  self._name = name
74
74
  self._criteria = criteria
75
- self._media_paths = None
75
+ self._media_assets = []
76
76
 
77
77
  def media(self, media_paths: list[list[str]]) -> CompareOrderBuilder:
78
78
  """Set the media assets for the comparison order by providing the local paths to the files."""
79
- self._media_paths = media_paths
79
+ if not isinstance(media_paths, list) \
80
+ or not all([isinstance(matchup_paths, list) for matchup_paths in media_paths]) \
81
+ or not all([isinstance(path, str) for matchup_paths in media_paths for path in matchup_paths]):
82
+ raise ValueError("Media paths must be a list of lists. The inner list is a pair of file paths that will be shown together in a matchup.")
83
+
84
+ invalid_paths = []
85
+ for matchup_idx, matchup_paths in enumerate(media_paths):
86
+ matchup_assets = []
87
+ for path in matchup_paths:
88
+ try:
89
+ matchup_assets.append(MediaAsset(path=path))
90
+ except FileNotFoundError:
91
+ invalid_paths.append((matchup_idx, path))
92
+
93
+ if not invalid_paths:
94
+ self._media_assets.append(MultiAsset(matchup_assets))
95
+
96
+ if invalid_paths:
97
+ error_msg = "Could not find the following files:\n"
98
+ for matchup_idx, path in invalid_paths:
99
+ error_msg += f" Matchup {matchup_idx + 1}: {path}\n"
100
+ raise FileNotFoundError(error_msg.rstrip())
80
101
  return self._build()
81
102
 
82
103
  def _build(self) -> CompareOrderBuilder:
83
- if self._media_paths is None:
104
+ if not self._media_assets:
84
105
  raise ValueError("Media paths are required")
85
- assert all([len(path) == 2 for path in self._media_paths]), "The media paths must come in pairs for comparison tasks."
86
- return CompareOrderBuilder(self._name, self._criteria, self._media_paths, self._openapi_service)
106
+ assert all([len(path) == 2 for path in self._media_assets]), "The media paths must come in pairs for comparison tasks."
107
+ return CompareOrderBuilder(self._name, self._criteria, self._media_assets, self._openapi_service)
87
108
 
88
109
  class CompareCriteriaBuilder:
89
110
  def __init__(self, name: str, openapi_service: OpenAPIService):
@@ -54,7 +54,7 @@ class CredentialManager:
54
54
  self,
55
55
  endpoint: str,
56
56
  cert_path: str | None = None,
57
- poll_timeout: int = 60,
57
+ poll_timeout: int = 300,
58
58
  poll_interval: int = 1,
59
59
  ):
60
60
  self.endpoint = endpoint
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rapidata
3
- Version: 1.6.4
3
+ Version: 1.7.1
4
4
  Summary: Rapidata package containing the Rapidata Python Client to interact with the Rapidata Web API in an easy way.
5
5
  License: Apache-2.0
6
6
  Author: Rapidata AG
@@ -1,14 +1,15 @@
1
1
  rapidata/__init__.py,sha256=PwuTW_WL75klRHmgTPKVqIVQJg32Uq48TBxxYI6qUvI,621
2
- rapidata/api_client/__init__.py,sha256=qjZpyMWRZgTrH3dtHsT1niqRKVVU92e_HCsoH2H8ypc,23396
3
- rapidata/api_client/api/__init__.py,sha256=S0oVoAVMys10M-Z1SqirMdnHMYSHH3Lz6iph1CfILc0,1004
2
+ rapidata/api_client/__init__.py,sha256=_a54alu_li0bczRUOYgepLIrQY-dTwcEMuV12LyvLLM,23815
3
+ rapidata/api_client/api/__init__.py,sha256=h0wnYolEBVduAU_7YBLFnwHcwXgZg_krSgarsWxz4zs,1061
4
4
  rapidata/api_client/api/campaign_api.py,sha256=DxPFqt9F6c9OpXu_Uxhsrib2NVwnbcZFa3Vkrj7cIuA,40474
5
+ rapidata/api_client/api/client_api.py,sha256=hJR9NO3YMHE-7SYwFM88p1aBW5qdmkOf7AKdq7-QZ4A,32719
5
6
  rapidata/api_client/api/coco_api.py,sha256=4QYkW7c0SZvs-HOYmj585yL0KNr6Xc16ajS7b72yI6w,24972
6
7
  rapidata/api_client/api/compare_workflow_api.py,sha256=2P5Z1zvlEc6zmrmeSN67l1LONpchz6g0v0olfD8M_o8,12652
7
8
  rapidata/api_client/api/datapoint_api.py,sha256=CdLFVMrVylj2_D6Ll58_4ME604-7mgWCyXF5SpKmyfI,31668
8
9
  rapidata/api_client/api/dataset_api.py,sha256=9v2bBPYnRDKWvAvB7cJoew-O_bkmuocjpcg75hjkAkQ,92297
9
- rapidata/api_client/api/identity_api.py,sha256=RtAhKQPJeDi4LaSDTEb5S219wancNyNqFKfKDeiPFco,23579
10
+ rapidata/api_client/api/identity_api.py,sha256=tb4TK0sNdZBXnVX6fhwc_iaogxQl9rsGBDKiF1x-vBU,34190
10
11
  rapidata/api_client/api/newsletter_api.py,sha256=9ZqGDB4_AEQZfRA61RRYkyQ06WjXH-aCwJUe60c2H4w,22575
11
- rapidata/api_client/api/order_api.py,sha256=llSmHHwivLmcJJ5XCNwZw6KBySIOJmLtr5d27hoCApU,209409
12
+ rapidata/api_client/api/order_api.py,sha256=JGGwHq-WBa8lcPoTQExYzsTyrDfgwHBrqW_FUFtqSD4,209360
12
13
  rapidata/api_client/api/pipeline_api.py,sha256=-2KuB0C1P7veSMmOqXKSJpLN_5xdM_5JbUTSluEUpPA,33246
13
14
  rapidata/api_client/api/rapid_api.py,sha256=q7LJiweMnln2fs_KOzwVlO4bEk564kNkvPschqySUE8,54426
14
15
  rapidata/api_client/api/rapidata_identity_api_api.py,sha256=-kgoDuLdh-R4MQ7JPi3kQ0WDFKbmI0MkCjxwHXBmksA,9824
@@ -20,7 +21,7 @@ rapidata/api_client/api_client.py,sha256=EDhxAOUc5JFWvFsF1zc726Q7GoEFkuB8uor5SlG
20
21
  rapidata/api_client/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
21
22
  rapidata/api_client/configuration.py,sha256=g472vHVPLBotq8EkfSXP4sbp7xnn-3sb8O8BBlRWK1I,15931
22
23
  rapidata/api_client/exceptions.py,sha256=eLLd1fxM0Ygf3IIG6aNx9hdy79drst5Cem0UjI_NamM,5978
23
- rapidata/api_client/models/__init__.py,sha256=ORUPTcjrZCCLWcP4flfRBESc2lIjTmzFOe42K6tJRDY,21851
24
+ rapidata/api_client/models/__init__.py,sha256=aTRZtqID7DFL4-9XQICxgNwcCD59Xl8lSQFvXU6Ztr0,22213
24
25
  rapidata/api_client/models/add_campaign_artifact_result.py,sha256=4IvFVS-tLlL6eHsWp-IZ_ul5T30-h3YEwd2B5ioBbgY,2582
25
26
  rapidata/api_client/models/add_campaign_model.py,sha256=OJzkfvQlrp6j6ffwVShouUCW-MQZw60BGUJpqjbSGs8,6853
26
27
  rapidata/api_client/models/add_validation_rapid_model.py,sha256=-HRHMK-o6dgGjUqfsP_woZcFxfN7nuJ-L1CUaK9nihY,4918
@@ -53,6 +54,8 @@ rapidata/api_client/models/classification_metadata.py,sha256=nNvX8m7sRkhxPiLaCtM
53
54
  rapidata/api_client/models/classification_metadata_filter_config.py,sha256=Piv8LaeS856jP5SCbXpOAR-zbqVtXQTUtXxdIC6ViB4,3128
54
55
  rapidata/api_client/models/classification_metadata_model.py,sha256=XMTa4UxpKTbnYYzVnQ0eQ_DbvaxcAzPmvm9T1r9qOfg,3141
55
56
  rapidata/api_client/models/classify_payload.py,sha256=UmIU4mE6pR3KdrxEzFTgPTsN0H8YUPiUaZuy2JOTnAE,3104
57
+ rapidata/api_client/models/clients_query_result.py,sha256=lv38h62z_UlwRsNtParP1GzoJwCJCi99V-OC_j_KUxE,3519
58
+ rapidata/api_client/models/clients_query_result_paged_result.py,sha256=EielWNLAwC_usC_Zqaw0t9fXoHQShOluoCKFzExYanY,3518
56
59
  rapidata/api_client/models/clone_dataset_model.py,sha256=FF8AFEmI1VGDI0w9BRF3L_kPK_ZHYWRz-dB0WObI0mM,3259
57
60
  rapidata/api_client/models/clone_order_model.py,sha256=VAs3yUGy6XvTZHO5TYiE4kBxMTQ2DlUqFu8fY2w0_TY,2787
58
61
  rapidata/api_client/models/clone_order_result.py,sha256=YKZzWptburCz3N9bahiEtWviYEfUXOPOmuI1xRihmqk,2644
@@ -78,7 +81,8 @@ rapidata/api_client/models/count_classification_metadata_filter_config.py,sha256
78
81
  rapidata/api_client/models/count_metadata.py,sha256=jZPGQjbV49uZo6DYrKGisLlSdQNZ6y_nfPMgsKbB1Bs,3165
79
82
  rapidata/api_client/models/count_metadata_model.py,sha256=nbQxNJQ3q0iwYstvb9NWPIwkRsq3J-nHiLts91WvXdw,3044
80
83
  rapidata/api_client/models/country_user_filter_model.py,sha256=8DjS-0yga8yRBMze691dU7IWOJYuw4iTo8ih3H132cs,2982
81
- rapidata/api_client/models/create_client_model.py,sha256=A6APevdq6MMcF5oqdDk2ACflwy8IKIUljtu2oVNnVbw,3262
84
+ rapidata/api_client/models/create_bridge_token_result.py,sha256=GWyYfjBSoZhQiAWaf-JHeRIoH1ZGs3BUGpSUFDuDEDY,2667
85
+ rapidata/api_client/models/create_client_model.py,sha256=dKJ6yhkDvgT8ipp_I8spaZLoiYz0THFZ7kbbJ4MMqwg,3327
82
86
  rapidata/api_client/models/create_client_result.py,sha256=OHBnTMyW5Nno39JHoJkcQbCGyol-Xe6v_NQYn2Kur7g,2672
83
87
  rapidata/api_client/models/create_complex_order_model.py,sha256=46n1IJRAIyCYCGXKvF5LjMVf4pXILC-kP86oU6YKo1w,3337
84
88
  rapidata/api_client/models/create_complex_order_model_pipeline.py,sha256=yF_-tOciVlAiDlWb1bptnoEFGlQis68WEI_EeviEFk8,4939
@@ -224,13 +228,14 @@ rapidata/api_client/models/polygon_result.py,sha256=MouWpVaG94B3CA_mRrCAguIN3k6k
224
228
  rapidata/api_client/models/polygon_truth.py,sha256=EmaG2vlgGLtQIHlBwT5dyRxp1OwX1i0waLFCIAiTNDs,2847
225
229
  rapidata/api_client/models/private_text_metadata_input.py,sha256=2v1OJ1FgMasHSytfKmE1pwyIYGO8DtHG6mqNcDgxW2A,3097
226
230
  rapidata/api_client/models/probabilistic_attach_category_referee_config.py,sha256=TU6IyF0kW0upKi08AY7XFLeBSmPfj3cniTwnLb3RT94,3315
231
+ rapidata/api_client/models/problem_details.py,sha256=00OWbk93SWXdEVNs8rceJq6CAlG4KIRYRR1sqasZ35Q,4506
227
232
  rapidata/api_client/models/prompt_metadata.py,sha256=I2zZbxyffAblh-Gjg58N0cAlTvZoc08aNH4v8J3WZhc,3166
228
233
  rapidata/api_client/models/prompt_metadata_input.py,sha256=6dTgZ2OPerrwmpHoEUyQRNuyva-BaCsqS-AANx1zdTI,3065
229
234
  rapidata/api_client/models/prompt_metadata_model.py,sha256=ZdJul9-8N8eGZbWkpJFMrCqeBNtidlQZxnihgioWR3w,3045
230
235
  rapidata/api_client/models/public_order_model.py,sha256=8UX2rY-Th5MzRArrMzORo79hrupHSk4U5UZXo1JpIww,2671
231
236
  rapidata/api_client/models/public_text_metadata_input.py,sha256=n9-TY_32304RZ4N6B5uA16YhseExJZjF14MmlCcdm1U,3089
232
237
  rapidata/api_client/models/query_campaigns_model.py,sha256=QFN637qh7qG0QjuJfTpimR57ACtItxTKn18rbdE-BKM,4138
233
- rapidata/api_client/models/query_model.py,sha256=EnFwrxlbwhrvG46DWgYPG3CERNIwWh6DdXX86LtEY7g,4193
238
+ rapidata/api_client/models/query_model.py,sha256=FP9dAgpgnlyxQfQhYWSvyTdRTjd9fDBdj8tdijLdw2g,4052
234
239
  rapidata/api_client/models/query_orders_model.py,sha256=eRLuM82LOiKNFywC7vfKlAUvCGolUfTU5w-GUO4TAdA,4126
235
240
  rapidata/api_client/models/query_validation_rapids_result.py,sha256=dVN6YAUcVxJb82dSoQf-LwNn0qJZW9AGOOe5c-s6GP8,3193
236
241
  rapidata/api_client/models/query_validation_rapids_result_asset.py,sha256=PuiKaLZqhcRSoTqtvK1CQa_gIN9FeDAfPSJaOqO-ke0,7269
@@ -243,6 +248,7 @@ rapidata/api_client/models/rapid_answer_result.py,sha256=oXYHKpjkXa_cxgJb8xUR_v8
243
248
  rapidata/api_client/models/rapid_result_model.py,sha256=JVUSCNErUbZimSIelKb7pgXjxdaHFX6ZjKahuRLbe7w,3048
244
249
  rapidata/api_client/models/rapid_result_model_result.py,sha256=RjA75vGoZW5fEHLxS3-z1TUesyax_qxPXW4aYhGFoPw,11681
245
250
  rapidata/api_client/models/rapid_skipped_model.py,sha256=3_YXlv4B8teo_xXWlXUMX2ybxgM29PWSw0JMha7qajY,2808
251
+ rapidata/api_client/models/read_bridge_token_keys_result.py,sha256=8L9QYKDCD5j1TU3zBdAxFpNJtB9AsVertXFgc_EV6vk,3209
246
252
  rapidata/api_client/models/register_temporary_customer_model.py,sha256=E4GPQtiA8FKa7aDUgQmQqOQuKm-CpWBfcRKhKWkMTSg,2643
247
253
  rapidata/api_client/models/request_password_reset_command.py,sha256=6bSYVzN3KNKd5u0Xl0vSjHRKI2uowIavU_wMbmLktvo,3174
248
254
  rapidata/api_client/models/root_filter.py,sha256=ee1rX_2CSUV7etI1sryrgZU1s85ifKVQ8PhpD6PMzRE,3363
@@ -313,18 +319,18 @@ rapidata/api_client/models/workflow_split_model.py,sha256=zthOSaUl8dbLhLymLK_lrP
313
319
  rapidata/api_client/models/workflow_split_model_filter_configs_inner.py,sha256=1Fx9uZtztiiAdMXkj7YeCqt7o6VkG9lKf7D7UP_h088,7447
314
320
  rapidata/api_client/models/workflow_state.py,sha256=5LAK1se76RCoozeVB6oxMPb8p_5bhLZJqn7q5fFQWis,850
315
321
  rapidata/api_client/rest.py,sha256=zmCIFQC2l1t-KZcq-TgEm3vco3y_LK6vRm3Q07K-xRI,9423
316
- rapidata/api_client_README.md,sha256=wSrVJxrpMg3zHtVmiiPgmFB8_8PQLQkkk4a0595zcHc,34887
322
+ rapidata/api_client_README.md,sha256=yO0AD07JTBsrZ2rZh2w654I0dV550EhURdYJbH3ak88,36148
317
323
  rapidata/rapidata_client/__init__.py,sha256=mmfjHy_GMA7xFU_haNwxjNRaCF505iPXhE4KC2dXObY,841
318
324
  rapidata/rapidata_client/assets/__init__.py,sha256=T-XKvMSkmyI8iYLUYDdZ3LrrSInHsGMUY_Tz77hhnlE,240
319
325
  rapidata/rapidata_client/assets/base_asset.py,sha256=B2YWH1NgaeYUYHDW3OPpHM_bqawHbH4EjnRCE2BYwiM,298
320
- rapidata/rapidata_client/assets/media_asset.py,sha256=4xU1k2abdHGwbkJAYNOZYyOPB__5VBRDvRjklegFufQ,887
326
+ rapidata/rapidata_client/assets/media_asset.py,sha256=sQsmpBoHhfSUSULBh30nuHPDZxlVUECFuCcr1sVqYag,2652
321
327
  rapidata/rapidata_client/assets/multi_asset.py,sha256=l6BysrDYWY13FTAw93cmnHN7HLUMrpG27qwOT7KNeLQ,1666
322
328
  rapidata/rapidata_client/assets/text_asset.py,sha256=a_En6wo0Ubgodl2KpBl1p_SxHSy_qRNme2bA3AtcPbY,516
323
329
  rapidata/rapidata_client/config.py,sha256=tQLgN6k_ATOX1GzZh38At2rgBDLStV6rJ6z0vsTTPjg,186
324
330
  rapidata/rapidata_client/country_codes/__init__.py,sha256=FB9Dcks44J6C6YBSYmTmNZ71tE130x6NO_3aLJ8fKzQ,40
325
331
  rapidata/rapidata_client/country_codes/country_codes.py,sha256=Q0HMX7uHJQDeLCFPP5bq4iYi6pgcDWEcl2ONGhjgoeU,286
326
332
  rapidata/rapidata_client/dataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
327
- rapidata/rapidata_client/dataset/rapidata_dataset.py,sha256=12mvcpHa-ZpDOFhSuqnSb6pFhR1q7rF98fgiDBuONdw,4935
333
+ rapidata/rapidata_client/dataset/rapidata_dataset.py,sha256=xF7wHyY_JPb91ryEN80rOFOpxjtUfQU677h6KQ7ee94,5078
328
334
  rapidata/rapidata_client/dataset/rapidata_validation_set.py,sha256=KhvHMML591h61I9lqXSmp_s2_VZAWmuCoixmA2rAI8c,10973
329
335
  rapidata/rapidata_client/dataset/validation_rapid_parts.py,sha256=uzpOZFqQu8bG6vmjcWWUNJPZsRe28OmnyalRE6ry8tk,2317
330
336
  rapidata/rapidata_client/dataset/validation_set_builder.py,sha256=ApYyEIwf9CQfnKJ2nZwK9FzgnY3Ff3BWetv75OlR-KM,8018
@@ -343,12 +349,12 @@ rapidata/rapidata_client/metadata/prompt_metadata.py,sha256=_FypjKWrC3iKUO_G2CVw
343
349
  rapidata/rapidata_client/metadata/public_text_metadata.py,sha256=LTiBQHs6izxQ6-C84d6Pf7lL4ENTDgg__HZnDKvzvMc,511
344
350
  rapidata/rapidata_client/metadata/transcription_metadata.py,sha256=THtDEVCON4UlcXHmXrjilaOLHys4TrktUOPGWnXaCcc,631
345
351
  rapidata/rapidata_client/order/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
346
- rapidata/rapidata_client/order/rapidata_order.py,sha256=t5ddz_6Dk2DOpsDQ2EiZHJJB1RzU-etKwBL0RErEsSY,4567
347
- rapidata/rapidata_client/order/rapidata_order_builder.py,sha256=b--9byhsiAW1fL0mVSPzGJT0X4MQ-tCC0BNjIm2vu-Q,16406
352
+ rapidata/rapidata_client/order/rapidata_order.py,sha256=maft6d1mUscgETVejlYY2GFfn7uvzCtq9GJ5dEnigYE,4793
353
+ rapidata/rapidata_client/order/rapidata_order_builder.py,sha256=QFlO3e4d3MVT76sAM9iU6zkG2BiSmac7WlY57jzdSQk,16680
348
354
  rapidata/rapidata_client/rapidata_client.py,sha256=a_OZBd3sldws3ElqZt_eyqrSzdUNLxynjG5XCNLmmnY,8032
349
355
  rapidata/rapidata_client/referee/__init__.py,sha256=E1VODxTjoQRnxzdgMh3aRlDLouxe1nWuvozEHXD2gq4,150
350
356
  rapidata/rapidata_client/referee/base_referee.py,sha256=bMy7cw0a-pGNbFu6u_1_Jplu0A483Ubj4oDQzh8vu8k,493
351
- rapidata/rapidata_client/referee/early_stopping_referee.py,sha256=Dg2Kk7OiLBtS3kknsLxyJIlS27xmPvsikFR6g4xlbTE,1862
357
+ rapidata/rapidata_client/referee/early_stopping_referee.py,sha256=V9c2Iau40-aPM06FYW5qwpJGa-usTCiZixoCCQWkrxI,1929
352
358
  rapidata/rapidata_client/referee/naive_referee.py,sha256=uOmrzCfpDopm6ww8u4Am5vz5qGNM7621HNJ-QIeH9wM,1164
353
359
  rapidata/rapidata_client/selection/__init__.py,sha256=RFdVUeo2bjCL1gPIL6HXzbpOBqY9kYedkNgb2_ANNLs,321
354
360
  rapidata/rapidata_client/selection/base_selection.py,sha256=Y3HkROPm4I4HLNiR0HuHKpvk236KkRlsoDxQATm_chY,138
@@ -361,8 +367,8 @@ rapidata/rapidata_client/settings/__init__.py,sha256=pqAmWPURaZ71rz6ogUH2rnfKL3r
361
367
  rapidata/rapidata_client/settings/feature_flags.py,sha256=aKnxl1kv4cC3TaHV-xfqYlvL3ATIB2-H0VKl1rUt8jQ,4658
362
368
  rapidata/rapidata_client/settings/settings.py,sha256=oglRs-xgMGW8t2DhHfWIjWGkPW9Bm_fIaTTcaQKy-b8,4410
363
369
  rapidata/rapidata_client/simple_builders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
364
- rapidata/rapidata_client/simple_builders/simple_classification_builders.py,sha256=gTb1OzJZjNW48ltrp0v9tcDjLee9_ZiLw78zYziVu_g,5520
365
- rapidata/rapidata_client/simple_builders/simple_compare_builders.py,sha256=GmNIUoAkoAHp0OnWLOgeI5-wnDiycuye0o1CUa9c3Q0,4808
370
+ rapidata/rapidata_client/simple_builders/simple_classification_builders.py,sha256=-fltx9dSP64e2i7spF3gKcEIYfY8ROZo2sb6JaQoMcQ,5938
371
+ rapidata/rapidata_client/simple_builders/simple_compare_builders.py,sha256=JoGXspVfqKaRNDsiZMS7xfyJ4TVflaQCE4PEQyiJajQ,5913
366
372
  rapidata/rapidata_client/workflow/__init__.py,sha256=xWuzAhBnbcUFfWcgYrzj8ZYLSOXyFtgfepgMrf0hNhU,290
367
373
  rapidata/rapidata_client/workflow/base_workflow.py,sha256=iDBeklFwOIbMuJHA7t-x_cwxfygJCG0SoXLBB7R53fQ,1395
368
374
  rapidata/rapidata_client/workflow/classify_workflow.py,sha256=NkyyBrlCDqYVQaCARR9EHYuREEtXond69kD6jbzcN3M,1713
@@ -371,11 +377,11 @@ rapidata/rapidata_client/workflow/evaluation_workflow.py,sha256=IBQoVFxOaeCDIBfa
371
377
  rapidata/rapidata_client/workflow/free_text_workflow.py,sha256=VaypoG3yKgsbtVyqxta3W28eDwdnGebCy2xDWPCBMyo,1566
372
378
  rapidata/rapidata_client/workflow/transcription_workflow.py,sha256=_KDtGCdRhauJm3jQHpwhY-Hq79CLg5I8q2RgOz5lo1g,1404
373
379
  rapidata/service/__init__.py,sha256=s9bS1AJZaWIhLtJX_ZA40_CK39rAAkwdAmymTMbeWl4,68
374
- rapidata/service/credential_manager.py,sha256=I0BvNsq7a2zJhPqXa-ESot9037cTu5TaC2iYJjWIRv0,7943
380
+ rapidata/service/credential_manager.py,sha256=4jiJaX4hnRKoU91-WnpLytOTvSWApSa8ezN8fGAp0dg,7944
375
381
  rapidata/service/local_file_service.py,sha256=pgorvlWcx52Uh3cEG6VrdMK_t__7dacQ_5AnfY14BW8,877
376
382
  rapidata/service/openapi_service.py,sha256=XNTCCBsC-3GwB2TxZ5XQaqzRnaViSIZ3yIWeVl9J20U,2472
377
383
  rapidata/service/token_manager.py,sha256=JZ5YbR5Di8dO3H4kK11d0kzWlrXxjgCmeNkHA4AapCM,6425
378
- rapidata-1.6.4.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
379
- rapidata-1.6.4.dist-info/METADATA,sha256=4ZrSMPGIdOa00Bw1wagYULKBk1PoKKbz8gIuDN4ME8Q,1056
380
- rapidata-1.6.4.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
381
- rapidata-1.6.4.dist-info/RECORD,,
384
+ rapidata-1.7.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
385
+ rapidata-1.7.1.dist-info/METADATA,sha256=F4UZerrLpfk-EahxFjzRpHx7Ui5Mci6hUop8hR6xJxs,1056
386
+ rapidata-1.7.1.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
387
+ rapidata-1.7.1.dist-info/RECORD,,