rapidata 0.1.12__py3-none-any.whl → 0.1.14__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.
@@ -14,6 +14,7 @@ from rapidata.api_client.models.bounding_box_truth import BoundingBoxTruth
14
14
  from rapidata.api_client.models.classify_payload import ClassifyPayload
15
15
  from rapidata.api_client.models.compare_payload import ComparePayload
16
16
  from rapidata.api_client.models.compare_truth import CompareTruth
17
+ from rapidata.api_client.models.datapoint_metadata_model_metadata_inner import DatapointMetadataModelMetadataInner
17
18
  from rapidata.api_client.models.empty_validation_truth import EmptyValidationTruth
18
19
  from rapidata.api_client.models.free_text_payload import FreeTextPayload
19
20
  from rapidata.api_client.models.line_payload import LinePayload
@@ -27,6 +28,7 @@ from rapidata.api_client.models.polygon_truth import PolygonTruth
27
28
  from rapidata.api_client.models.transcription_payload import TranscriptionPayload
28
29
  from rapidata.api_client.models.transcription_truth import TranscriptionTruth
29
30
  from rapidata.rapidata_client.dataset.validation_rapid_parts import ValidatioRapidParts
31
+ from rapidata.rapidata_client.metadata.base_metadata import Metadata
30
32
  from rapidata.rapidata_client.types import RapidAsset
31
33
  from rapidata.service.openapi_service import OpenAPIService
32
34
 
@@ -61,7 +63,7 @@ class RapidataValidationSet:
61
63
  | PolygonTruth
62
64
  | TranscriptionTruth
63
65
  ),
64
- metadata: Any,
66
+ metadata: list[Metadata],
65
67
  media_paths: RapidAsset,
66
68
  randomCorrectProbability: float,
67
69
  ):
@@ -69,7 +71,7 @@ class RapidataValidationSet:
69
71
  validationSetId=self.id,
70
72
  payload=AddValidationRapidModelPayload(payload),
71
73
  truth=AddValidationRapidModelTruth(truths),
72
- metadata=metadata or [],
74
+ metadata=[DatapointMetadataModelMetadataInner(meta.to_model()) for meta in metadata],
73
75
  randomCorrectProbability=randomCorrectProbability,
74
76
  )
75
77
 
@@ -19,6 +19,7 @@ from rapidata.api_client.models.polygon_payload import PolygonPayload
19
19
  from rapidata.api_client.models.polygon_truth import PolygonTruth
20
20
  from rapidata.api_client.models.transcription_payload import TranscriptionPayload
21
21
  from rapidata.api_client.models.transcription_truth import TranscriptionTruth
22
+ from rapidata.rapidata_client.metadata.base_metadata import Metadata
22
23
  from rapidata.rapidata_client.types import RapidAsset
23
24
 
24
25
 
@@ -48,5 +49,5 @@ class ValidatioRapidParts:
48
49
  | PolygonTruth
49
50
  | TranscriptionTruth
50
51
  )
51
- metadata: Any
52
+ metadata: list[Metadata]
52
53
  randomCorrectProbability: float
@@ -1,13 +1,4 @@
1
- from dataclasses import dataclass
2
1
  import os
3
- from typing import Any, Union
4
- from rapidata.api_client.models.add_validation_rapid_model import AddValidationRapidModel
5
- from rapidata.api_client.models.add_validation_rapid_model_payload import (
6
- AddValidationRapidModelPayload,
7
- )
8
- from rapidata.api_client.models.add_validation_rapid_model_truth import (
9
- AddValidationRapidModelTruth,
10
- )
11
2
  from rapidata.api_client.models.attach_category_truth import AttachCategoryTruth
12
3
  from rapidata.api_client.models.classify_payload import ClassifyPayload
13
4
  from rapidata.api_client.models.compare_payload import ComparePayload
@@ -15,14 +6,14 @@ from rapidata.api_client.models.compare_truth import CompareTruth
15
6
  from rapidata.api_client.models.transcription_payload import TranscriptionPayload
16
7
  from rapidata.api_client.models.transcription_truth import TranscriptionTruth
17
8
  from rapidata.api_client.models.transcription_word import TranscriptionWord
18
- from rapidata.rapidata_client.dataset.rapidata_validation_set import RapidataValidationSet
9
+ from rapidata.rapidata_client.dataset.rapidata_validation_set import (
10
+ RapidataValidationSet,
11
+ )
19
12
  from rapidata.rapidata_client.dataset.validation_rapid_parts import ValidatioRapidParts
13
+ from rapidata.rapidata_client.metadata.base_metadata import Metadata
20
14
  from rapidata.service.openapi_service import OpenAPIService
21
15
 
22
16
 
23
-
24
-
25
-
26
17
  class ValidationSetBuilder:
27
18
 
28
19
  def __init__(self, name: str, openapi_service: OpenAPIService):
@@ -42,7 +33,10 @@ class ValidationSetBuilder:
42
33
  if self.validation_set_id is None:
43
34
  raise ValueError("Failed to create validation set")
44
35
 
45
- validation_set = RapidataValidationSet(validation_set_id=self.validation_set_id, openapi_service=self.openapi_service)
36
+ validation_set = RapidataValidationSet(
37
+ validation_set_id=self.validation_set_id,
38
+ openapi_service=self.openapi_service,
39
+ )
46
40
 
47
41
  for rapid_part in self._rapid_parts:
48
42
  validation_set.add_validation_rapid(
@@ -52,14 +46,19 @@ class ValidationSetBuilder:
52
46
  media_paths=rapid_part.media_paths,
53
47
  randomCorrectProbability=rapid_part.randomCorrectProbability,
54
48
  )
55
-
49
+
56
50
  return validation_set
57
51
 
58
52
  def add_classify_rapid(
59
- self, media_path: str, question: str, categories: list[str], truths: list[str]
53
+ self,
54
+ media_path: str,
55
+ question: str,
56
+ categories: list[str],
57
+ truths: list[str],
58
+ metadata: list[Metadata] = [],
60
59
  ):
61
60
  payload = ClassifyPayload(
62
- _t="ClassifyPaylod", possibleCategories=categories, title=question
61
+ _t="ClassifyPayload", possibleCategories=categories, title=question
63
62
  )
64
63
  model_truth = AttachCategoryTruth(
65
64
  correctCategories=truths, _t="AttachCategoryTruth"
@@ -71,14 +70,20 @@ class ValidationSetBuilder:
71
70
  media_paths=media_path,
72
71
  payload=payload,
73
72
  truths=model_truth,
74
- metadata=None,
73
+ metadata=metadata,
75
74
  randomCorrectProbability=len(truths) / len(categories),
76
75
  )
77
76
  )
78
77
 
79
78
  return self
80
79
 
81
- def add_compare_rapid(self, media_paths: list[str], question: str, truth: str):
80
+ def add_compare_rapid(
81
+ self,
82
+ media_paths: list[str],
83
+ question: str,
84
+ truth: str,
85
+ metadata: list[Metadata] = [],
86
+ ):
82
87
  payload = ComparePayload(_t="ComparePayload", criteria=question)
83
88
  # take only last part of truth path
84
89
  truth = os.path.basename(truth)
@@ -91,7 +96,6 @@ class ValidationSetBuilder:
91
96
  for media_path in media_paths:
92
97
  if not os.path.exists(media_path):
93
98
  raise FileNotFoundError(f"File not found: {media_path}")
94
-
95
99
 
96
100
  self._rapid_parts.append(
97
101
  ValidatioRapidParts(
@@ -99,7 +103,7 @@ class ValidationSetBuilder:
99
103
  media_paths=media_paths,
100
104
  payload=payload,
101
105
  truths=model_truth,
102
- metadata=None,
106
+ metadata=metadata,
103
107
  randomCorrectProbability=1 / len(media_paths),
104
108
  )
105
109
  )
@@ -113,6 +117,7 @@ class ValidationSetBuilder:
113
117
  transcription: list[str],
114
118
  correct_words: list[str],
115
119
  strict_grading: bool | None = None,
120
+ metadata: list[Metadata] = [],
116
121
  ):
117
122
  transcription_words = [
118
123
  TranscriptionWord(word=word, wordIndex=i)
@@ -143,7 +148,7 @@ class ValidationSetBuilder:
143
148
  media_paths=media_path,
144
149
  payload=payload,
145
150
  truths=model_truth,
146
- metadata=None,
151
+ metadata=metadata,
147
152
  randomCorrectProbability=1 / len(transcription),
148
153
  )
149
154
  )
@@ -3,9 +3,13 @@ from rapidata.api_client.models.create_order_model import CreateOrderModel
3
3
  from rapidata.api_client.models.create_order_model_referee import (
4
4
  CreateOrderModelReferee,
5
5
  )
6
+ from rapidata.api_client.models.create_order_model_user_filters_inner import (
7
+ CreateOrderModelUserFiltersInner,
8
+ )
6
9
  from rapidata.api_client.models.create_order_model_workflow import (
7
10
  CreateOrderModelWorkflow,
8
11
  )
12
+ from rapidata.api_client.models.country_user_filter_model import CountryUserFilterModel
9
13
  from rapidata.rapidata_client.feature_flags import FeatureFlags
10
14
  from rapidata.rapidata_client.metadata.base_metadata import Metadata
11
15
  from rapidata.rapidata_client.dataset.rapidata_dataset import RapidataDataset
@@ -16,6 +20,7 @@ from rapidata.rapidata_client.order.rapidata_order import RapidataOrder
16
20
  from rapidata.rapidata_client.referee import Referee
17
21
  from rapidata.service.openapi_service import OpenAPIService
18
22
 
23
+
19
24
  class RapidataOrderBuilder:
20
25
  """
21
26
  Builder object for creating Rapidata orders.
@@ -42,26 +47,30 @@ class RapidataOrderBuilder:
42
47
  self._aggregator: AggregatorType | None = None
43
48
  self._validation_set_id: str | None = None
44
49
  self._feature_flags: FeatureFlags | None = None
50
+ self._country_codes: list[str] | None = None
45
51
 
46
- def create(self, submit=True) -> RapidataOrder:
47
- """
48
- Actually makes the API calls to create the order based on how the order builder was configures. Returns a RapidataOrder instance based on the created order with order_id and dataset_id.
49
-
50
- :return: The created RapidataOrder instance.
51
- :rtype: RapidataOrder
52
- :raises ValueError: If no workflow is provided.
53
- """
52
+ def _to_model(self) -> CreateOrderModel:
54
53
  if self._workflow is None:
55
54
  raise ValueError("You must provide a blueprint to create an order.")
56
55
 
57
56
  if self._referee is None:
58
57
  print("No referee provided, using default NaiveReferee.")
59
58
  self._referee = NaiveReferee()
59
+ if self._country_codes is None:
60
+ country_filter = None
61
+ else:
62
+ country_filter = CountryUserFilterModel(
63
+ _t="CountryFilter", countries=self._country_codes
64
+ )
60
65
 
61
- order_model = CreateOrderModel(
66
+ return CreateOrderModel(
62
67
  orderName=self._name,
63
68
  workflow=CreateOrderModelWorkflow(self._workflow.to_model()),
64
- userFilters=[],
69
+ userFilters=(
70
+ [CreateOrderModelUserFiltersInner(country_filter)]
71
+ if country_filter
72
+ else []
73
+ ),
65
74
  referee=CreateOrderModelReferee(self._referee.to_model()),
66
75
  validationSetId=self._validation_set_id,
67
76
  featureFlags=(
@@ -71,6 +80,16 @@ class RapidataOrderBuilder:
71
80
  ),
72
81
  )
73
82
 
83
+ def create(self, submit=True) -> RapidataOrder:
84
+ """
85
+ Actually makes the API calls to create the order based on how the order builder was configures. Returns a RapidataOrder instance based on the created order with order_id and dataset_id.
86
+
87
+ :return: The created RapidataOrder instance.
88
+ :rtype: RapidataOrder
89
+ :raises ValueError: If no workflow is provided.
90
+ """
91
+ order_model = self._to_model()
92
+
74
93
  result = self._openapi_service.order_api.order_create_post(
75
94
  create_order_model=order_model
76
95
  )
@@ -143,7 +162,7 @@ class RapidataOrderBuilder:
143
162
  self._feature_flags = feature_flags
144
163
  return self
145
164
 
146
- def target_country_codes(self, country_codes: list[str]):
165
+ def country_filter(self, country_codes: list[str]):
147
166
  """
148
167
  Set the target country codes for the order.
149
168
 
@@ -152,12 +171,7 @@ class RapidataOrderBuilder:
152
171
  :return: The updated RapidataOrderBuilder instance.
153
172
  :rtype: RapidataOrderBuilder
154
173
  """
155
- if self._workflow is None:
156
- raise ValueError(
157
- "You must set the workflow before setting the target country codes."
158
- )
159
-
160
- self._workflow.target_country_codes(country_codes)
174
+ self._country_codes = country_codes
161
175
  return self
162
176
 
163
177
  def aggregator(self, aggregator: AggregatorType):
@@ -172,7 +186,7 @@ class RapidataOrderBuilder:
172
186
  self._aggregator = aggregator
173
187
  return self
174
188
 
175
- def validation_set(self, validation_set_id: str):
189
+ def validation_set_id(self, validation_set_id: str):
176
190
  """
177
191
  Set the validation set for the order.
178
192
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rapidata
3
- Version: 0.1.12
3
+ Version: 0.1.14
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
@@ -195,9 +195,9 @@ rapidata/rapidata_client/country_codes/__init__.py,sha256=Y8qeG2IMjvMGvhaPydq0nh
195
195
  rapidata/rapidata_client/country_codes/country_codes.py,sha256=Q0HMX7uHJQDeLCFPP5bq4iYi6pgcDWEcl2ONGhjgoeU,286
196
196
  rapidata/rapidata_client/dataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
197
197
  rapidata/rapidata_client/dataset/rapidata_dataset.py,sha256=mVx-YU3N6lvr_0NCg7yGodeBJh8A_Y0tFWRrxcFg9-w,2506
198
- rapidata/rapidata_client/dataset/rapidata_validation_set.py,sha256=nfaENQOJZW5mZBY-4WAt-DFb3o46nN0J-QnHCLvEFPA,3308
199
- rapidata/rapidata_client/dataset/validation_rapid_parts.py,sha256=96kb88XOwXuVI7stwY4Th4K3fo9-lFM-v7QV3qsS3NY,2073
200
- rapidata/rapidata_client/dataset/validation_set_builder.py,sha256=UjKCgtQ23GM4CtiRrl1eQvD-eZFbiYCjdVf1iAVH8EI,5424
198
+ rapidata/rapidata_client/dataset/rapidata_validation_set.py,sha256=WvygSfVAFLd6Ha8uPgqWdS3pys5Kaf454hq0pGSsYao,3564
199
+ rapidata/rapidata_client/dataset/validation_rapid_parts.py,sha256=UmH2yFXrN1uWTUDniMKJ03_mRC-sZBsvR4JhDUbKfJo,2153
200
+ rapidata/rapidata_client/dataset/validation_set_builder.py,sha256=C1mBZUr_ch_8_2mb5EfT44HFM4KaWIRSl1yLsGIsOus,5333
201
201
  rapidata/rapidata_client/feature_flags/__init__.py,sha256=BNG_NQ4CrrC61fAWliImr8r581pIvegrkepVVbxcBw8,55
202
202
  rapidata/rapidata_client/feature_flags/feature_flags.py,sha256=uV4TPXc1oyqBRC9Ch3APprZwxBGnGMAl9DMFBUWmvnA,1048
203
203
  rapidata/rapidata_client/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -207,7 +207,7 @@ rapidata/rapidata_client/metadata/prompt_metadata.py,sha256=_FypjKWrC3iKUO_G2CVw
207
207
  rapidata/rapidata_client/metadata/transcription_metadata.py,sha256=THtDEVCON4UlcXHmXrjilaOLHys4TrktUOPGWnXaCcc,631
208
208
  rapidata/rapidata_client/order/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
209
209
  rapidata/rapidata_client/order/rapidata_order.py,sha256=4a0Sn1y1UmL7HydhaDBOus-g_yILqPQMnTXfLEzQB5g,2997
210
- rapidata/rapidata_client/order/rapidata_order_builder.py,sha256=AnrBTwZoQpXpZ88qLQzdGEhqHy_XZ5-pFO-C_JKLdxo,6485
210
+ rapidata/rapidata_client/order/rapidata_order_builder.py,sha256=ucNWVUejksTLIboQYeqExnOuxmhEfhNj56Cuo59FYaU,7000
211
211
  rapidata/rapidata_client/rapidata_client.py,sha256=BN3bfLEdNLYt7VZuEwDycNPT61wz66TTssjmNlRYlvU,2019
212
212
  rapidata/rapidata_client/referee/__init__.py,sha256=x0AxGCsR6TlDjfqQ00lB9V7QVS9EZCJzweNEIzx42PI,207
213
213
  rapidata/rapidata_client/referee/base_referee.py,sha256=bMy7cw0a-pGNbFu6u_1_Jplu0A483Ubj4oDQzh8vu8k,493
@@ -225,7 +225,7 @@ rapidata/service/local_file_service.py,sha256=pgorvlWcx52Uh3cEG6VrdMK_t__7dacQ_5
225
225
  rapidata/service/openapi_service.py,sha256=xNlISI5NZByLy1Yeasc5Uafj1IA2mWJTzxUU1TtwyQU,1402
226
226
  rapidata/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
227
227
  rapidata/utils/image_utils.py,sha256=TldO3eJWG8IhfJjm5MfNGO0mEDm1mQTsRoA0HLU1Uxs,404
228
- rapidata-0.1.12.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
229
- rapidata-0.1.12.dist-info/METADATA,sha256=DovtYrJwe4AJgFX-Zt5mMvfUiAMYcltIpMOCAc8ENpE,768
230
- rapidata-0.1.12.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
231
- rapidata-0.1.12.dist-info/RECORD,,
228
+ rapidata-0.1.14.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
229
+ rapidata-0.1.14.dist-info/METADATA,sha256=fJFwoFVeWplRXhdd4MWmc5HnLiCrojo_Htf-54CHDBo,768
230
+ rapidata-0.1.14.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
231
+ rapidata-0.1.14.dist-info/RECORD,,