clarifai 10.3.1__py3-none-any.whl → 10.3.2__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.
- clarifai/client/input.py +32 -9
- clarifai/client/model.py +42 -27
- clarifai/constants/model.py +1 -0
- clarifai/datasets/upload/features.py +4 -0
- clarifai/datasets/upload/image.py +25 -2
- clarifai/datasets/upload/loaders/coco_captions.py +7 -2
- clarifai/datasets/upload/loaders/coco_detection.py +7 -2
- clarifai/datasets/upload/text.py +2 -0
- clarifai/rag/utils.py +1 -1
- clarifai/versions.py +1 -1
- {clarifai-10.3.1.dist-info → clarifai-10.3.2.dist-info}/METADATA +3 -3
- {clarifai-10.3.1.dist-info → clarifai-10.3.2.dist-info}/RECORD +16 -16
- {clarifai-10.3.1.dist-info → clarifai-10.3.2.dist-info}/LICENSE +0 -0
- {clarifai-10.3.1.dist-info → clarifai-10.3.2.dist-info}/WHEEL +0 -0
- {clarifai-10.3.1.dist-info → clarifai-10.3.2.dist-info}/entry_points.txt +0 -0
- {clarifai-10.3.1.dist-info → clarifai-10.3.2.dist-info}/top_level.txt +0 -0
clarifai/client/input.py
CHANGED
@@ -72,6 +72,7 @@ class Inputs(Lister, BaseClient):
|
|
72
72
|
text_pb: Text = None,
|
73
73
|
geo_info: List = None,
|
74
74
|
labels: List = None,
|
75
|
+
label_ids: List = None,
|
75
76
|
metadata: Struct = None) -> Input:
|
76
77
|
"""Create input proto for image data type.
|
77
78
|
Args:
|
@@ -82,7 +83,8 @@ class Inputs(Lister, BaseClient):
|
|
82
83
|
audio_pb (Audio): The audio proto to be used for the input.
|
83
84
|
text_pb (Text): The text proto to be used for the input.
|
84
85
|
geo_info (list): A list of longitude and latitude for the geo point.
|
85
|
-
labels (list): A list of
|
86
|
+
labels (list): A list of label names for the input.
|
87
|
+
label_ids (list): A list of label ids for the input.
|
86
88
|
metadata (Struct): A Struct of metadata for the input.
|
87
89
|
Returns:
|
88
90
|
Input: An Input object for the specified input ID.
|
@@ -90,14 +92,26 @@ class Inputs(Lister, BaseClient):
|
|
90
92
|
assert geo_info is None or isinstance(
|
91
93
|
geo_info, list), "geo_info must be a list of longitude and latitude"
|
92
94
|
assert labels is None or isinstance(labels, list), "labels must be a list of strings"
|
95
|
+
assert label_ids is None or isinstance(label_ids, list), "label_ids must be a list of strings"
|
93
96
|
assert metadata is None or isinstance(metadata, Struct), "metadata must be a Struct"
|
94
97
|
geo_pb = resources_pb2.Geo(geo_point=resources_pb2.GeoPoint(
|
95
98
|
longitude=geo_info[0], latitude=geo_info[1])) if geo_info else None
|
96
|
-
|
99
|
+
if labels:
|
100
|
+
if not label_ids:
|
101
|
+
concepts=[
|
97
102
|
resources_pb2.Concept(
|
98
103
|
id=f"id-{''.join(_label.split(' '))}", name=_label, value=1.)\
|
99
104
|
for _label in labels
|
100
|
-
]
|
105
|
+
]
|
106
|
+
else:
|
107
|
+
assert len(labels) == len(label_ids), "labels and label_ids must be of the same length"
|
108
|
+
concepts=[
|
109
|
+
resources_pb2.Concept(
|
110
|
+
id=label_id, name=_label, value=1.)\
|
111
|
+
for label_id, _label in zip(label_ids, labels)
|
112
|
+
]
|
113
|
+
else:
|
114
|
+
concepts = None
|
101
115
|
|
102
116
|
if dataset_id:
|
103
117
|
return resources_pb2.Input(
|
@@ -467,13 +481,14 @@ class Inputs(Lister, BaseClient):
|
|
467
481
|
return input_protos
|
468
482
|
|
469
483
|
@staticmethod
|
470
|
-
def get_bbox_proto(input_id: str, label: str, bbox: List) -> Annotation:
|
484
|
+
def get_bbox_proto(input_id: str, label: str, bbox: List, label_id: str = None) -> Annotation:
|
471
485
|
"""Create an annotation proto for each bounding box, label input pair.
|
472
486
|
|
473
487
|
Args:
|
474
488
|
input_id (str): The input ID for the annotation to create.
|
475
|
-
label (str): annotation label
|
489
|
+
label (str): annotation label name
|
476
490
|
bbox (List): a list of a single bbox's coordinates. # bbox ordering: [xmin, ymin, xmax, ymax]
|
491
|
+
label_id (str): annotation label ID
|
477
492
|
|
478
493
|
Returns:
|
479
494
|
An annotation object for the specified input ID.
|
@@ -500,19 +515,22 @@ class Inputs(Lister, BaseClient):
|
|
500
515
|
data=resources_pb2.Data(concepts=[
|
501
516
|
resources_pb2.Concept(
|
502
517
|
id=f"id-{''.join(label.split(' '))}", name=label, value=1.)
|
518
|
+
if not label_id else resources_pb2.Concept(id=label_id, name=label, value=1.)
|
503
519
|
]))
|
504
520
|
]))
|
505
521
|
|
506
522
|
return input_annot_proto
|
507
523
|
|
508
524
|
@staticmethod
|
509
|
-
def get_mask_proto(input_id: str, label: str, polygons: List[List[float]]
|
525
|
+
def get_mask_proto(input_id: str, label: str, polygons: List[List[float]],
|
526
|
+
label_id: str = None) -> Annotation:
|
510
527
|
"""Create an annotation proto for each polygon box, label input pair.
|
511
528
|
|
512
529
|
Args:
|
513
530
|
input_id (str): The input ID for the annotation to create.
|
514
|
-
label (str): annotation label
|
531
|
+
label (str): annotation label name
|
515
532
|
polygons (List): Polygon x,y points iterable
|
533
|
+
label_id (str): annotation label ID
|
516
534
|
|
517
535
|
Returns:
|
518
536
|
An annotation object for the specified input ID.
|
@@ -537,6 +555,7 @@ class Inputs(Lister, BaseClient):
|
|
537
555
|
data=resources_pb2.Data(concepts=[
|
538
556
|
resources_pb2.Concept(
|
539
557
|
id=f"id-{''.join(label.split(' '))}", name=label, value=1.)
|
558
|
+
if not label_id else resources_pb2.Concept(id=label_id, name=label, value=1.)
|
540
559
|
]))
|
541
560
|
]))
|
542
561
|
|
@@ -726,16 +745,20 @@ class Inputs(Lister, BaseClient):
|
|
726
745
|
request = service_pb2.PostAnnotationsRequest(
|
727
746
|
user_app_id=self.user_app_id, annotations=batch_annot)
|
728
747
|
response = self._grpc_request(self.STUB.PostAnnotations, request)
|
748
|
+
response_dict = MessageToDict(response)
|
729
749
|
if response.status.code != status_code_pb2.SUCCESS:
|
730
750
|
try:
|
731
|
-
|
751
|
+
for annot in response_dict["annotations"]:
|
752
|
+
if annot['status']['code'] != status_code_pb2.ANNOTATION_SUCCESS:
|
753
|
+
self.logger.warning(f"Post annotations failed, status: {annot['status']}")
|
732
754
|
except Exception:
|
733
|
-
self.logger.warning(f"Post annotations failed
|
755
|
+
self.logger.warning(f"Post annotations failed due to {response.status}")
|
734
756
|
finally:
|
735
757
|
retry_upload.extend(batch_annot)
|
736
758
|
else:
|
737
759
|
if show_log:
|
738
760
|
self.logger.info("\nAnnotations Uploaded\n%s", response.status)
|
761
|
+
|
739
762
|
return retry_upload
|
740
763
|
|
741
764
|
def _upload_batch(self, inputs: List[Input]) -> List[Input]:
|
clarifai/client/model.py
CHANGED
@@ -17,7 +17,8 @@ from clarifai.client.base import BaseClient
|
|
17
17
|
from clarifai.client.dataset import Dataset
|
18
18
|
from clarifai.client.input import Inputs
|
19
19
|
from clarifai.client.lister import Lister
|
20
|
-
from clarifai.constants.model import MAX_MODEL_PREDICT_INPUTS,
|
20
|
+
from clarifai.constants.model import (MAX_MODEL_PREDICT_INPUTS, MODEL_EXPORT_TIMEOUT,
|
21
|
+
TRAINABLE_MODEL_TYPES)
|
21
22
|
from clarifai.errors import UserError
|
22
23
|
from clarifai.urls.helper import ClarifaiUrlHelper
|
23
24
|
from clarifai.utils.logging import get_logger
|
@@ -949,19 +950,22 @@ class Model(Lister, BaseClient):
|
|
949
950
|
"""Export the model, stores the exported model as model.tar file
|
950
951
|
|
951
952
|
Args:
|
952
|
-
export_dir (str):
|
953
|
+
export_dir (str, optional): If provided, the exported model will be saved in the specified directory else export status will be shown. Defaults to None.
|
953
954
|
|
954
955
|
Example:
|
955
956
|
>>> from clarifai.client.model import Model
|
956
957
|
>>> model = Model("url")
|
958
|
+
>>> model.export()
|
959
|
+
or
|
957
960
|
>>> model.export('/path/to/export_model_dir')
|
958
961
|
"""
|
959
962
|
assert self.model_info.model_version.id, "Model version ID is missing. Please provide a `model_version` with a valid `id` as an argument or as a URL in the following format: '{user_id}/{app_id}/models/{your_model_id}/model_version_id/{your_version_model_id}' when initializing."
|
960
|
-
|
961
|
-
|
962
|
-
os.
|
963
|
-
|
964
|
-
|
963
|
+
if export_dir:
|
964
|
+
try:
|
965
|
+
if not os.path.exists(export_dir):
|
966
|
+
os.makedirs(export_dir)
|
967
|
+
except OSError as e:
|
968
|
+
raise Exception(f"An error occurred while creating the directory: {e}")
|
965
969
|
|
966
970
|
def _get_export_response():
|
967
971
|
get_export_request = service_pb2.GetModelVersionExportRequest(
|
@@ -1010,28 +1014,39 @@ class Model(Lister, BaseClient):
|
|
1010
1014
|
raise Exception(response.status)
|
1011
1015
|
|
1012
1016
|
self.logger.info(
|
1013
|
-
f"Model ID {self.id}
|
1017
|
+
f"Export process has started for Model ID {self.id}, Version {self.model_info.model_version.id}"
|
1014
1018
|
)
|
1015
|
-
|
1016
|
-
|
1017
|
-
|
1018
|
-
|
1019
|
-
|
1020
|
-
|
1021
|
-
|
1022
|
-
|
1023
|
-
|
1024
|
-
|
1025
|
-
|
1026
|
-
|
1027
|
-
|
1028
|
-
|
1029
|
-
|
1030
|
-
|
1031
|
-
|
1032
|
-
|
1019
|
+
if export_dir:
|
1020
|
+
start_time = time.time()
|
1021
|
+
backoff_iterator = BackoffIterator(10)
|
1022
|
+
while True:
|
1023
|
+
get_export_response = _get_export_response()
|
1024
|
+
if (get_export_response.export.status.code == status_code_pb2.MODEL_EXPORTING or \
|
1025
|
+
get_export_response.export.status.code == status_code_pb2.MODEL_EXPORT_PENDING) and \
|
1026
|
+
time.time() - start_time < MODEL_EXPORT_TIMEOUT:
|
1027
|
+
self.logger.info(
|
1028
|
+
f"Export process is ongoing for Model ID {self.id}, Version {self.model_info.model_version.id}. Please wait..."
|
1029
|
+
)
|
1030
|
+
time.sleep(next(backoff_iterator))
|
1031
|
+
elif get_export_response.export.status.code == status_code_pb2.MODEL_EXPORTED:
|
1032
|
+
_download_exported_model(get_export_response, os.path.join(export_dir, "model.tar"))
|
1033
|
+
break
|
1034
|
+
elif time.time() - start_time > MODEL_EXPORT_TIMEOUT:
|
1035
|
+
raise Exception(
|
1036
|
+
f"""Model Export took too long. Please try again or contact support@clarifai.com
|
1037
|
+
Req ID: {get_export_response.status.req_id}""")
|
1033
1038
|
elif get_export_response.export.status.code == status_code_pb2.MODEL_EXPORTED:
|
1034
|
-
|
1039
|
+
if export_dir:
|
1040
|
+
_download_exported_model(get_export_response, os.path.join(export_dir, "model.tar"))
|
1041
|
+
else:
|
1042
|
+
self.logger.info(
|
1043
|
+
f"Model ID {self.id} with version {self.model_info.model_version.id} is already exported, you can download it from the following URL: {get_export_response.export.url}"
|
1044
|
+
)
|
1045
|
+
elif get_export_response.export.status.code == status_code_pb2.MODEL_EXPORTING or \
|
1046
|
+
get_export_response.export.status.code == status_code_pb2.MODEL_EXPORT_PENDING:
|
1047
|
+
self.logger.info(
|
1048
|
+
f"Export process is ongoing for Model ID {self.id}, Version {self.model_info.model_version.id}. Please wait..."
|
1049
|
+
)
|
1035
1050
|
|
1036
1051
|
@staticmethod
|
1037
1052
|
def _make_pretrained_config_proto(input_field_maps: dict,
|
clarifai/constants/model.py
CHANGED
@@ -10,6 +10,7 @@ class TextFeatures:
|
|
10
10
|
labels: List[Union[str, int]] # List[str or int] to cater for multi-class tasks
|
11
11
|
id: Optional[int] = None # text_id
|
12
12
|
metadata: Optional[dict] = None
|
13
|
+
label_ids: Optional[List[str]] = None
|
13
14
|
|
14
15
|
|
15
16
|
@dataclass
|
@@ -21,6 +22,7 @@ class VisualClassificationFeatures:
|
|
21
22
|
id: Optional[int] = None # image_id
|
22
23
|
metadata: Optional[dict] = None
|
23
24
|
image_bytes: Optional[bytes] = None
|
25
|
+
label_ids: Optional[List[str]] = None
|
24
26
|
|
25
27
|
|
26
28
|
@dataclass
|
@@ -33,6 +35,7 @@ class VisualDetectionFeatures:
|
|
33
35
|
id: Optional[int] = None # image_id
|
34
36
|
metadata: Optional[dict] = None
|
35
37
|
image_bytes: Optional[bytes] = None
|
38
|
+
label_ids: Optional[List[str]] = None
|
36
39
|
|
37
40
|
|
38
41
|
@dataclass
|
@@ -45,3 +48,4 @@ class VisualSegmentationFeatures:
|
|
45
48
|
id: Optional[int] = None # image_id
|
46
49
|
metadata: Optional[dict] = None
|
47
50
|
image_bytes: Optional[bytes] = None
|
51
|
+
label_ids: Optional[List[str]] = None
|
@@ -32,6 +32,7 @@ class VisualClassificationDataset(ClarifaiDataset):
|
|
32
32
|
image_path = data_item.image_path
|
33
33
|
labels = data_item.labels if isinstance(data_item.labels,
|
34
34
|
list) else [data_item.labels] # clarifai concept
|
35
|
+
label_ids = data_item.label_ids
|
35
36
|
input_id = f"{self.dataset_id}-{uuid.uuid4().hex[:8]}" if data_item.id is None else f"{self.dataset_id}-{str(data_item.id)}"
|
36
37
|
geo_info = data_item.geo_info
|
37
38
|
if data_item.metadata is not None:
|
@@ -49,6 +50,7 @@ class VisualClassificationDataset(ClarifaiDataset):
|
|
49
50
|
image_bytes=data_item.image_bytes,
|
50
51
|
dataset_id=self.dataset_id,
|
51
52
|
labels=labels,
|
53
|
+
label_ids=label_ids,
|
52
54
|
geo_info=geo_info,
|
53
55
|
metadata=metadata))
|
54
56
|
else:
|
@@ -58,6 +60,7 @@ class VisualClassificationDataset(ClarifaiDataset):
|
|
58
60
|
image_file=image_path,
|
59
61
|
dataset_id=self.dataset_id,
|
60
62
|
labels=labels,
|
63
|
+
label_ids=label_ids,
|
61
64
|
geo_info=geo_info,
|
62
65
|
metadata=metadata))
|
63
66
|
|
@@ -91,6 +94,12 @@ class VisualDetectionDataset(ClarifaiDataset):
|
|
91
94
|
metadata = Struct()
|
92
95
|
image = data_item.image_path
|
93
96
|
labels = data_item.labels # list:[l1,...,ln]
|
97
|
+
if data_item.label_ids is not None:
|
98
|
+
assert len(labels) == len(
|
99
|
+
data_item.label_ids), "Length of labels and label_ids must be equal"
|
100
|
+
label_ids = data_item.label_ids
|
101
|
+
else:
|
102
|
+
label_ids = None
|
94
103
|
bboxes = data_item.bboxes # [[xmin,ymin,xmax,ymax],...,[xmin,ymin,xmax,ymax]]
|
95
104
|
input_id = f"{self.dataset_id}-{uuid.uuid4().hex[:8]}" if data_item.id is None else f"{self.dataset_id}-{str(data_item.id)}"
|
96
105
|
if data_item.metadata is not None:
|
@@ -120,7 +129,11 @@ class VisualDetectionDataset(ClarifaiDataset):
|
|
120
129
|
# one id could have more than one bbox and label
|
121
130
|
for i in range(len(bboxes)):
|
122
131
|
annotation_protos.append(
|
123
|
-
Inputs.get_bbox_proto(
|
132
|
+
Inputs.get_bbox_proto(
|
133
|
+
input_id=input_id,
|
134
|
+
label=labels[i],
|
135
|
+
bbox=bboxes[i],
|
136
|
+
label_id=label_ids[i] if label_ids else None))
|
124
137
|
|
125
138
|
with ThreadPoolExecutor(max_workers=4) as executor:
|
126
139
|
futures = [executor.submit(process_data_item, id) for id in batch_input_ids]
|
@@ -152,6 +165,12 @@ class VisualSegmentationDataset(ClarifaiDataset):
|
|
152
165
|
metadata = Struct()
|
153
166
|
image = data_item.image_path
|
154
167
|
labels = data_item.labels
|
168
|
+
if data_item.label_ids is not None:
|
169
|
+
assert len(labels) == len(
|
170
|
+
data_item.label_ids), "Length of labels and label_ids must be equal"
|
171
|
+
label_ids = data_item.label_ids
|
172
|
+
else:
|
173
|
+
label_ids = None
|
155
174
|
_polygons = data_item.polygons # list of polygons: [[[x,y],...,[x,y]],...]
|
156
175
|
input_id = f"{self.dataset_id}-{uuid.uuid4().hex[:8]}" if data_item.id is None else f"{self.dataset_id}-{str(data_item.id)}"
|
157
176
|
if data_item.metadata is not None:
|
@@ -183,7 +202,11 @@ class VisualSegmentationDataset(ClarifaiDataset):
|
|
183
202
|
for i, _polygon in enumerate(_polygons):
|
184
203
|
try:
|
185
204
|
annotation_protos.append(
|
186
|
-
Inputs.get_mask_proto(
|
205
|
+
Inputs.get_mask_proto(
|
206
|
+
input_id=input_id,
|
207
|
+
label=labels[i],
|
208
|
+
polygons=_polygon,
|
209
|
+
label_id=label_ids[i] if label_ids else None))
|
187
210
|
except IndexError:
|
188
211
|
continue
|
189
212
|
|
@@ -2,12 +2,17 @@
|
|
2
2
|
|
3
3
|
import os
|
4
4
|
|
5
|
-
from pycocotools.coco import COCO
|
6
|
-
|
7
5
|
from clarifai.datasets.upload.base import ClarifaiDataLoader
|
8
6
|
|
9
7
|
from ..features import VisualClassificationFeatures
|
10
8
|
|
9
|
+
#pycocotools is a dependency for this loader
|
10
|
+
try:
|
11
|
+
from pycocotools.coco import COCO
|
12
|
+
except ImportError:
|
13
|
+
raise ImportError("Could not import pycocotools package. "
|
14
|
+
"Please do `pip install 'clarifai[all]'` to import pycocotools.")
|
15
|
+
|
11
16
|
|
12
17
|
class COCOCaptionsDataLoader(ClarifaiDataLoader):
|
13
18
|
"""COCO Image Captioning Dataset."""
|
@@ -2,12 +2,17 @@
|
|
2
2
|
|
3
3
|
import os
|
4
4
|
|
5
|
-
from pycocotools.coco import COCO
|
6
|
-
|
7
5
|
from ..base import ClarifaiDataLoader
|
8
6
|
|
9
7
|
from ..features import VisualDetectionFeatures
|
10
8
|
|
9
|
+
#pycocotools is a dependency for this loader
|
10
|
+
try:
|
11
|
+
from pycocotools.coco import COCO
|
12
|
+
except ImportError:
|
13
|
+
raise ImportError("Could not import pycocotools package. "
|
14
|
+
"Please do `pip install 'clarifai[all]'` to import pycocotools.")
|
15
|
+
|
11
16
|
|
12
17
|
class COCODetectionDataLoader(ClarifaiDataLoader):
|
13
18
|
|
clarifai/datasets/upload/text.py
CHANGED
@@ -32,6 +32,7 @@ class TextClassificationDataset(ClarifaiDataset):
|
|
32
32
|
text = data_item.text
|
33
33
|
labels = data_item.labels if isinstance(data_item.labels,
|
34
34
|
list) else [data_item.labels] # clarifai concept
|
35
|
+
label_ids = data_item.label_ids
|
35
36
|
input_id = f"{self.dataset_id}-{id}" if data_item.id is None else f"{self.dataset_id}-{str(data_item.id)}"
|
36
37
|
if data_item.metadata is not None:
|
37
38
|
metadata.update(data_item.metadata)
|
@@ -43,6 +44,7 @@ class TextClassificationDataset(ClarifaiDataset):
|
|
43
44
|
raw_text=text,
|
44
45
|
dataset_id=self.dataset_id,
|
45
46
|
labels=labels,
|
47
|
+
label_ids=label_ids,
|
46
48
|
metadata=metadata))
|
47
49
|
|
48
50
|
with ThreadPoolExecutor(max_workers=4) as executor:
|
clarifai/rag/utils.py
CHANGED
@@ -111,7 +111,7 @@ def split_document(text: str, chunk_size: int, chunk_overlap: int, **kwargs) ->
|
|
111
111
|
from llama_index.core.node_parser.text import SentenceSplitter
|
112
112
|
except ImportError:
|
113
113
|
raise ImportError("Could not import llama index package. "
|
114
|
-
"Please install it with `pip install llama-index-core==0.10.
|
114
|
+
"Please install it with `pip install llama-index-core==0.10.24`.")
|
115
115
|
#document
|
116
116
|
text_parser = SentenceSplitter(chunk_size=chunk_size, chunk_overlap=chunk_overlap, **kwargs)
|
117
117
|
text_chunks = text_parser.split_text(text)
|
clarifai/versions.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: clarifai
|
3
|
-
Version: 10.3.
|
3
|
+
Version: 10.3.2
|
4
4
|
Summary: Clarifai Python SDK
|
5
5
|
Home-page: https://github.com/Clarifai/clarifai-python
|
6
6
|
Author: Clarifai
|
@@ -164,13 +164,13 @@ dataset = app.create_dataset(dataset_id="demo_dataset")
|
|
164
164
|
# execute data upload to Clarifai app dataset
|
165
165
|
from clarifai.datasets.upload.laoders.coco_detection import COCODetectionDataLoader
|
166
166
|
coco_dataloader = COCODetectionDataLoader("images_dir", "coco_annotation_filepath")
|
167
|
-
dataset.upload_dataset(dataloader=coco_dataloader, get_upload_status=True
|
167
|
+
dataset.upload_dataset(dataloader=coco_dataloader, get_upload_status=True)
|
168
168
|
|
169
169
|
|
170
170
|
#Try upload and record the failed outputs in log file.
|
171
171
|
from clarifai.datasets.upload.utils import load_module_dataloader
|
172
172
|
cifar_dataloader = load_module_dataloader('./image_classification/cifar10')
|
173
|
-
dataset.upload_dataset(dataloader=cifar_dataloader,
|
173
|
+
dataset.upload_dataset(dataloader=cifar_dataloader, log_warnings =True)
|
174
174
|
|
175
175
|
#Retry upload from logs for `upload_dataset`
|
176
176
|
dataset.retry_upload_from_logs(dataloader=cifar_dataloader, log_file_path='log_file.log',
|
@@ -1,14 +1,14 @@
|
|
1
1
|
clarifai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
2
|
clarifai/cli.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
3
|
clarifai/errors.py,sha256=RwzTajwds51wLD0MVlMC5kcpBnzRpreDLlazPSBZxrg,2605
|
4
|
-
clarifai/versions.py,sha256=
|
4
|
+
clarifai/versions.py,sha256=xPTsxHOuPIMQNAWNhgvdZmB9sZD7aV5H3-B-geWghDE,186
|
5
5
|
clarifai/client/__init__.py,sha256=xI1U0l5AZdRThvQAXCLsd9axxyFzXXJ22m8LHqVjQRU,662
|
6
6
|
clarifai/client/app.py,sha256=LC3rnuqr97f-S7LsJ9Q7KZnYMBHGDAq4mcFjjcPjpqo,27240
|
7
7
|
clarifai/client/base.py,sha256=FrnSY9tSxjTxhABfBzQz5-PEppWMPbIyvSNnx8mVz8s,6919
|
8
8
|
clarifai/client/dataset.py,sha256=wKDpON8kbOXpbfOkre5EYKXT4zEX-5xu9LgtORNuhog,29903
|
9
|
-
clarifai/client/input.py,sha256=
|
9
|
+
clarifai/client/input.py,sha256=Av_gPrmwa1vorDs5Pz9jUbY1MwXHYFb3NyF_a1S1aII,41630
|
10
10
|
clarifai/client/lister.py,sha256=03KGMvs5RVyYqxLsSrWhNc34I8kiF1Ph0NeyEwu7nMU,2082
|
11
|
-
clarifai/client/model.py,sha256=
|
11
|
+
clarifai/client/model.py,sha256=QTVSeR3D3SHh8rK6kWHATy87qS8khYeXIKbs9dn5W4I,58487
|
12
12
|
clarifai/client/module.py,sha256=360JaOasX0DZCNE_Trj0LNTr-T_tUDZLfGpz0CdIi78,4248
|
13
13
|
clarifai/client/search.py,sha256=iwZqwuEodbjIOEPMIjpic8caFGg3u51RK816pr-574o,14964
|
14
14
|
clarifai/client/user.py,sha256=EQTeotfYTNedGcbTICYOUJqKgWhfVHvaMRTJ1hdoIdQ,10372
|
@@ -19,7 +19,7 @@ clarifai/client/auth/register.py,sha256=2CMdBsoVLoTfjyksE6j7BM2tiEc73WKYvxnwDDgN
|
|
19
19
|
clarifai/client/auth/stub.py,sha256=KIzJZ8aRB1RzXJeWHDAx19HNdBsblPPHwYLfAkgI3rY,3779
|
20
20
|
clarifai/constants/dataset.py,sha256=OXYirr0iaoN_47V6wxO0H6ptV81y8zNGapPBz9qqD8o,516
|
21
21
|
clarifai/constants/input.py,sha256=WcHwToUVIK9ItAhDefaSohQHCLNeR55PSjZ0BFnoZ3U,28
|
22
|
-
clarifai/constants/model.py,sha256=
|
22
|
+
clarifai/constants/model.py,sha256=oTad43ncskVHfQ9vEbL2yy0Fac666dXr7QuO8zZXHAE,245
|
23
23
|
clarifai/constants/rag.py,sha256=WcHwToUVIK9ItAhDefaSohQHCLNeR55PSjZ0BFnoZ3U,28
|
24
24
|
clarifai/constants/search.py,sha256=yYEqTaFg-KdnpJE_Ytp-EPVHIIC395iNtZrpVlLIf4o,101
|
25
25
|
clarifai/constants/workflow.py,sha256=cECq1xdvf44MCdtK2AbkiuuwhyL-6OWZdQfYbsLKy_o,33
|
@@ -28,14 +28,14 @@ clarifai/datasets/export/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
|
|
28
28
|
clarifai/datasets/export/inputs_annotations.py,sha256=3Bv6JsPzSeGEEJlkF1KR8qDHc_QyHF0ddvHfSiB5Pjc,9479
|
29
29
|
clarifai/datasets/upload/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
30
30
|
clarifai/datasets/upload/base.py,sha256=IP4sdBRfThk2l0W1rDWciFrAJnKwVsM-gu4zEslJ2_E,2198
|
31
|
-
clarifai/datasets/upload/features.py,sha256=
|
32
|
-
clarifai/datasets/upload/image.py,sha256=
|
33
|
-
clarifai/datasets/upload/text.py,sha256=
|
31
|
+
clarifai/datasets/upload/features.py,sha256=oq0PGpAw8LEafiSkdMMl0yn-NJeZ7K_CKzpJ71b0H40,1731
|
32
|
+
clarifai/datasets/upload/image.py,sha256=pNFTThEVGIK9RNIsUuSSQE59LfO-tKkhsXSR7CONAEg,8293
|
33
|
+
clarifai/datasets/upload/text.py,sha256=CeyH0OzxdHzYj-neZzzRCXrcQCtanaKC8B3qH8Sg_gw,2053
|
34
34
|
clarifai/datasets/upload/utils.py,sha256=h7mtN9FZXhQQbf47EXczgb-NTY2uOE9AJlE9u4-hDwI,9627
|
35
35
|
clarifai/datasets/upload/loaders/README.md,sha256=aNRutSCTzLp2ruIZx74ZkN5AxpzwKOxMa7OzabnKpwg,2980
|
36
36
|
clarifai/datasets/upload/loaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
37
|
-
clarifai/datasets/upload/loaders/coco_captions.py,sha256=
|
38
|
-
clarifai/datasets/upload/loaders/coco_detection.py,sha256=
|
37
|
+
clarifai/datasets/upload/loaders/coco_captions.py,sha256=YfuNXplbdoH8N9ph7RyN9MfJTtOcJBG4ie1ow6-mELA,1516
|
38
|
+
clarifai/datasets/upload/loaders/coco_detection.py,sha256=_I_yThw435KS9SH7zheBbJDK3zFgjTImBsES__ijjMk,2831
|
39
39
|
clarifai/datasets/upload/loaders/imagenet_classification.py,sha256=LuylazxpI5V8fAPGCUxDirGpYMfxzRxix-MEWaCvwxI,1895
|
40
40
|
clarifai/datasets/upload/loaders/xview_detection.py,sha256=hk8cZdYZimm4KOaZvBjYcC6ikURZMn51xmn7pXZT3HE,6052
|
41
41
|
clarifai/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -91,7 +91,7 @@ clarifai/modules/pages.py,sha256=iOoM3RNRMgXlV0qBqcdQofxoXo2RuRQh0h9c9BIS0-I,138
|
|
91
91
|
clarifai/modules/style.css,sha256=j7FNPZVhLPj35vvBksAJ90RuX5sLuqzDR5iM2WIEhiA,6073
|
92
92
|
clarifai/rag/__init__.py,sha256=wu3PzAzo7uqgrEzuaC9lY_3gj1HFiR3GU3elZIKTT5g,40
|
93
93
|
clarifai/rag/rag.py,sha256=CXhfArp0VmZcOFNTymwWT9JGeKfTKGjD-hcA50w0LgE,12401
|
94
|
-
clarifai/rag/utils.py,sha256=
|
94
|
+
clarifai/rag/utils.py,sha256=yr1jAcbpws4vFGBqlAwPPE7v1DRba48g8gixLFw8OhQ,4070
|
95
95
|
clarifai/schema/search.py,sha256=JjTi8ammJgZZ2OGl4K6tIA4zEJ1Fr2ASZARXavI1j5c,2448
|
96
96
|
clarifai/urls/helper.py,sha256=tjoMGGHuWX68DUB0pk4MEjrmFsClUAQj2jmVEM_Sy78,4751
|
97
97
|
clarifai/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -106,9 +106,9 @@ clarifai/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
|
|
106
106
|
clarifai/workflows/export.py,sha256=vICRhIreqDSShxLKjHNM2JwzKsf1B4fdXB0ciMcA70k,1945
|
107
107
|
clarifai/workflows/utils.py,sha256=nGeB_yjVgUO9kOeKTg4OBBaBz-AwXI3m-huSVj-9W18,1924
|
108
108
|
clarifai/workflows/validate.py,sha256=yJq03MaJqi5AK3alKGJJBR89xmmjAQ31sVufJUiOqY8,2556
|
109
|
-
clarifai-10.3.
|
110
|
-
clarifai-10.3.
|
111
|
-
clarifai-10.3.
|
112
|
-
clarifai-10.3.
|
113
|
-
clarifai-10.3.
|
114
|
-
clarifai-10.3.
|
109
|
+
clarifai-10.3.2.dist-info/LICENSE,sha256=mUqF_d12-qE2n41g7C5_sq-BMLOcj6CNN-jevr15YHU,555
|
110
|
+
clarifai-10.3.2.dist-info/METADATA,sha256=GKx2sjRAKNBQSHtuiKRMFgd34v9M0cRgYpRwl8o9u6s,19176
|
111
|
+
clarifai-10.3.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
112
|
+
clarifai-10.3.2.dist-info/entry_points.txt,sha256=qZOr_MIPG0dBBE1zringDJS_wXNGTAA_SQ-zcbmDHOw,82
|
113
|
+
clarifai-10.3.2.dist-info/top_level.txt,sha256=wUMdCQGjkxaynZ6nZ9FAnvBUCgp5RJUVFSy2j-KYo0s,9
|
114
|
+
clarifai-10.3.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|