clarifai 11.1.6rc1__py3-none-any.whl → 11.1.7rc1__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/__init__.py +1 -1
- clarifai/cli/__pycache__/model.cpython-310.pyc +0 -0
- clarifai/cli/model.py +25 -0
- clarifai/client/model.py +158 -393
- clarifai/client/model_client.py +4 -2
- clarifai/runners/__init__.py +2 -7
- clarifai/runners/__pycache__/__init__.cpython-310.pyc +0 -0
- clarifai/runners/__pycache__/server.cpython-310.pyc +0 -0
- clarifai/runners/dockerfile_template/Dockerfile.template +3 -0
- clarifai/runners/models/__pycache__/model_builder.cpython-310.pyc +0 -0
- clarifai/runners/models/__pycache__/model_class.cpython-310.pyc +0 -0
- clarifai/runners/models/__pycache__/model_run_locally.cpython-310.pyc +0 -0
- clarifai/runners/models/__pycache__/model_runner.cpython-310.pyc +0 -0
- clarifai/runners/models/__pycache__/model_servicer.cpython-310.pyc +0 -0
- clarifai/runners/models/model_builder.py +24 -7
- clarifai/runners/models/model_class.py +256 -28
- clarifai/runners/models/model_run_locally.py +3 -78
- clarifai/runners/models/model_runner.py +2 -0
- clarifai/runners/models/model_servicer.py +11 -2
- clarifai/runners/utils/__pycache__/data_types.cpython-310.pyc +0 -0
- clarifai/runners/utils/__pycache__/method_signatures.cpython-310.pyc +0 -0
- clarifai/runners/utils/__pycache__/serializers.cpython-310.pyc +0 -0
- clarifai/runners/utils/data_types.py +46 -5
- clarifai/runners/utils/method_signatures.py +104 -39
- clarifai/runners/utils/serializers.py +19 -5
- {clarifai-11.1.6rc1.dist-info → clarifai-11.1.7rc1.dist-info}/METADATA +2 -1
- {clarifai-11.1.6rc1.dist-info → clarifai-11.1.7rc1.dist-info}/RECORD +31 -31
- {clarifai-11.1.6rc1.dist-info → clarifai-11.1.7rc1.dist-info}/LICENSE +0 -0
- {clarifai-11.1.6rc1.dist-info → clarifai-11.1.7rc1.dist-info}/WHEEL +0 -0
- {clarifai-11.1.6rc1.dist-info → clarifai-11.1.7rc1.dist-info}/entry_points.txt +0 -0
- {clarifai-11.1.6rc1.dist-info → clarifai-11.1.7rc1.dist-info}/top_level.txt +0 -0
@@ -12,9 +12,9 @@ from clarifai_grpc.grpc.api import resources_pb2
|
|
12
12
|
from google.protobuf.message import Message as MessageProto
|
13
13
|
|
14
14
|
from clarifai.runners.utils import data_types
|
15
|
-
from clarifai.runners.utils.serializers import (
|
16
|
-
|
17
|
-
|
15
|
+
from clarifai.runners.utils.serializers import (
|
16
|
+
AtomicFieldSerializer, JSONSerializer, ListSerializer, MessageSerializer,
|
17
|
+
NamedFieldsSerializer, NDArraySerializer, Serializer, TupleSerializer)
|
18
18
|
|
19
19
|
|
20
20
|
def build_function_signature(func):
|
@@ -66,7 +66,7 @@ def build_function_signature(func):
|
|
66
66
|
#method_signature.inputs.extend(input_vars)
|
67
67
|
#method_signature.outputs.extend(output_vars)
|
68
68
|
method_signature.inputs = input_sigs
|
69
|
-
method_signature.outputs = output_sig
|
69
|
+
method_signature.outputs = [output_sig]
|
70
70
|
return method_signature
|
71
71
|
|
72
72
|
|
@@ -112,7 +112,7 @@ def build_variable_signature(name, annotation, default=inspect.Parameter.empty,
|
|
112
112
|
if not is_output:
|
113
113
|
sig.required = (default is inspect.Parameter.empty)
|
114
114
|
if not sig.required:
|
115
|
-
sig.default = default
|
115
|
+
sig.default = str(default)
|
116
116
|
|
117
117
|
return sig, type, streaming
|
118
118
|
|
@@ -120,13 +120,24 @@ def build_variable_signature(name, annotation, default=inspect.Parameter.empty,
|
|
120
120
|
def _fill_signature_type(sig, tp):
|
121
121
|
try:
|
122
122
|
if tp in _DATA_TYPES:
|
123
|
-
sig.
|
123
|
+
sig.type = _DATA_TYPES[tp].type
|
124
124
|
return
|
125
125
|
except TypeError:
|
126
126
|
pass # not hashable type
|
127
127
|
|
128
|
+
# Check for dynamically generated NamedFields subclasses (from type annotations)
|
129
|
+
if inspect.isclass(tp) and issubclass(tp, data_types.NamedFields) and hasattr(
|
130
|
+
tp, '__annotations__'):
|
131
|
+
sig.type = DataType.NAMED_FIELDS
|
132
|
+
for name, inner_type in tp.__annotations__.items():
|
133
|
+
inner_sig = _VariableSignature()
|
134
|
+
inner_sig.name = name
|
135
|
+
_fill_signature_type(inner_sig, inner_type)
|
136
|
+
sig.type_args.append(inner_sig)
|
137
|
+
return
|
138
|
+
|
128
139
|
if isinstance(tp, data_types.NamedFields):
|
129
|
-
sig.
|
140
|
+
sig.type = DataType.NAMED_FIELDS
|
130
141
|
for name, inner_type in tp.items():
|
131
142
|
# inner_sig = sig.type_args.add()
|
132
143
|
sig.type_args.append(inner_sig := _VariableSignature())
|
@@ -135,7 +146,7 @@ def _fill_signature_type(sig, tp):
|
|
135
146
|
return
|
136
147
|
|
137
148
|
if get_origin(tp) == tuple:
|
138
|
-
sig.
|
149
|
+
sig.type = DataType.TUPLE
|
139
150
|
for inner_type in get_args(tp):
|
140
151
|
#inner_sig = sig.type_args.add()
|
141
152
|
sig.type_args.append(inner_sig := _VariableSignature())
|
@@ -143,7 +154,7 @@ def _fill_signature_type(sig, tp):
|
|
143
154
|
return
|
144
155
|
|
145
156
|
if get_origin(tp) == list:
|
146
|
-
sig.
|
157
|
+
sig.type = DataType.LIST
|
147
158
|
inner_type = get_args(tp)[0]
|
148
159
|
#inner_sig = sig.type_args.add()
|
149
160
|
sig.type_args.append(inner_sig := _VariableSignature())
|
@@ -157,23 +168,25 @@ def serializer_from_signature(signature):
|
|
157
168
|
'''
|
158
169
|
Get the serializer for the given signature.
|
159
170
|
'''
|
160
|
-
if signature.
|
161
|
-
return _SERIALIZERS_BY_TYPE_ENUM[signature.
|
162
|
-
if signature.
|
171
|
+
if signature.type in _SERIALIZERS_BY_TYPE_ENUM:
|
172
|
+
return _SERIALIZERS_BY_TYPE_ENUM[signature.type]
|
173
|
+
if signature.type == DataType.LIST:
|
163
174
|
return ListSerializer(serializer_from_signature(signature.type_args[0]))
|
164
|
-
if signature.
|
175
|
+
if signature.type == DataType.TUPLE:
|
165
176
|
return TupleSerializer([serializer_from_signature(sig) for sig in signature.type_args])
|
166
|
-
if signature.
|
177
|
+
if signature.type == DataType.NAMED_FIELDS:
|
167
178
|
return NamedFieldsSerializer(
|
168
179
|
{sig.name: serializer_from_signature(sig)
|
169
180
|
for sig in signature.type_args})
|
170
|
-
raise ValueError(f'Unsupported type: {signature.
|
181
|
+
raise ValueError(f'Unsupported type: {signature.type}')
|
171
182
|
|
172
183
|
|
173
184
|
def signatures_to_json(signatures):
|
174
185
|
assert isinstance(
|
175
186
|
signatures, dict), 'Expected dict of signatures {name: signature}, got %s' % type(signatures)
|
176
|
-
|
187
|
+
# TODO change to proto when ready
|
188
|
+
#signatures = {name: MessageToDict(sig) for name, sig in signatures.items()}
|
189
|
+
return json.dumps(signatures)
|
177
190
|
|
178
191
|
|
179
192
|
def signatures_from_json(json_str):
|
@@ -184,7 +197,15 @@ def signatures_from_json(json_str):
|
|
184
197
|
def signatures_to_yaml(signatures):
|
185
198
|
# XXX go in/out of json to get the correct format and python dict types
|
186
199
|
d = json.loads(signatures_to_json(signatures))
|
187
|
-
|
200
|
+
|
201
|
+
def _filter_empty(d):
|
202
|
+
if isinstance(d, (list, tuple)):
|
203
|
+
return [_filter_empty(v) for v in d if v]
|
204
|
+
if isinstance(d, dict):
|
205
|
+
return {k: _filter_empty(v) for k, v in d.items() if v}
|
206
|
+
return d
|
207
|
+
|
208
|
+
return yaml.dump(_filter_empty(d), default_flow_style=False)
|
188
209
|
|
189
210
|
|
190
211
|
def signatures_from_yaml(yaml_str):
|
@@ -204,7 +225,14 @@ def serialize(kwargs, signatures, proto=None, is_output=False):
|
|
204
225
|
raise TypeError('Got a single return value, but expected multiple outputs {%s}' %
|
205
226
|
', '.join(sig.name for sig in signatures))
|
206
227
|
raise TypeError('Got unexpected key: %s' % ', '.join(unknown))
|
207
|
-
|
228
|
+
inline_first_value = False
|
229
|
+
if (is_output and len(signatures) == 1 and signatures[0].name == 'return' and
|
230
|
+
len(kwargs) == 1 and 'return' in kwargs):
|
231
|
+
# if there is only one output, flatten it and return directly
|
232
|
+
inline_first_value = True
|
233
|
+
if signatures and signatures[0].type not in _NON_INLINABLE_TYPES:
|
234
|
+
inline_first_value = True
|
235
|
+
for sig_i, sig in enumerate(signatures):
|
208
236
|
if sig.name not in kwargs:
|
209
237
|
if sig.required:
|
210
238
|
raise TypeError(f'Missing required argument: {sig.name}')
|
@@ -213,9 +241,16 @@ def serialize(kwargs, signatures, proto=None, is_output=False):
|
|
213
241
|
serializer = serializer_from_signature(sig)
|
214
242
|
# TODO determine if any (esp the first) var can go in the proto without parts
|
215
243
|
# and whether to put this in the signature or dynamically determine it
|
216
|
-
|
217
|
-
|
218
|
-
|
244
|
+
if inline_first_value and sig_i == 0 and id(data) not in _ZERO_VALUE_IDS:
|
245
|
+
# inlined first value; note data must not be empty or 0 to inline, since that
|
246
|
+
# will correspond to the missing value case (which uses function defaults).
|
247
|
+
# empty values are put explicitly in parts.
|
248
|
+
serializer.serialize(proto, data)
|
249
|
+
else:
|
250
|
+
# add the part to the proto
|
251
|
+
part = proto.parts.add()
|
252
|
+
part.id = sig.name
|
253
|
+
serializer.serialize(part.data, data)
|
219
254
|
return proto
|
220
255
|
|
221
256
|
|
@@ -227,10 +262,18 @@ def deserialize(proto, signatures, is_output=False):
|
|
227
262
|
signatures = [signatures] # TODO update return key level and make consistnet
|
228
263
|
kwargs = {}
|
229
264
|
parts_by_name = {part.id: part for part in proto.parts}
|
230
|
-
for sig in signatures:
|
265
|
+
for sig_i, sig in enumerate(signatures):
|
231
266
|
serializer = serializer_from_signature(sig)
|
232
267
|
part = parts_by_name.get(sig.name)
|
233
268
|
if part is None:
|
269
|
+
if sig_i == 0:
|
270
|
+
# possible inlined first value
|
271
|
+
value = serializer.deserialize(proto)
|
272
|
+
if id(value) not in _ZERO_VALUE_IDS:
|
273
|
+
# note missing values are not set to defaults, since they are not in parts
|
274
|
+
# an actual zero value passed in must be set in an explicit part
|
275
|
+
kwargs[sig.name] = value
|
276
|
+
continue
|
234
277
|
if sig.required or is_output: # TODO allow optional outputs?
|
235
278
|
raise ValueError(f'Missing required field: {sig.name}')
|
236
279
|
continue
|
@@ -273,14 +316,34 @@ def _normalize_type(tp):
|
|
273
316
|
|
274
317
|
|
275
318
|
def _normalize_data_type(tp):
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
319
|
+
|
320
|
+
# jsonable list and dict, these can be serialized as json
|
321
|
+
# (tuple we want to keep as a tuple for args and returns, so don't include here)
|
322
|
+
if tp in (list, dict) or (get_origin(tp) in (list, dict) and _is_jsonable(tp)):
|
323
|
+
return data_types.JSON
|
324
|
+
|
325
|
+
# container types that need to be serialized as parts
|
326
|
+
if get_origin(tp) == list and get_args(tp):
|
327
|
+
return List[_normalize_data_type(get_args(tp)[0])]
|
328
|
+
|
329
|
+
if get_origin(tp) == tuple:
|
330
|
+
if not get_args(tp):
|
331
|
+
raise TypeError('Tuple must have types specified')
|
332
|
+
return Tuple[tuple(_normalize_data_type(val) for val in get_args(tp))]
|
280
333
|
|
281
334
|
if isinstance(tp, (tuple, list)):
|
282
335
|
return Tuple[tuple(_normalize_data_type(val) for val in tp)]
|
283
336
|
|
337
|
+
if tp == data_types.NamedFields:
|
338
|
+
raise TypeError('NamedFields must have types specified')
|
339
|
+
|
340
|
+
# Handle dynamically generated NamedFields subclasses with annotations
|
341
|
+
if isinstance(tp, type) and issubclass(tp, data_types.NamedFields) and hasattr(
|
342
|
+
tp, '__annotations__'):
|
343
|
+
return data_types.NamedFields(
|
344
|
+
**{k: _normalize_data_type(v)
|
345
|
+
for k, v in tp.__annotations__.items()})
|
346
|
+
|
284
347
|
if isinstance(tp, (dict, data_types.NamedFields)):
|
285
348
|
return data_types.NamedFields(**{name: _normalize_data_type(val) for name, val in tp.items()})
|
286
349
|
|
@@ -290,15 +353,13 @@ def _normalize_data_type(tp):
|
|
290
353
|
|
291
354
|
# check for PIL images (sometimes types use the module, sometimes the class)
|
292
355
|
# set these to use the Image data handler
|
293
|
-
if tp in (data_types.Image, PIL.Image
|
356
|
+
if tp in (data_types.Image, PIL.Image.Image):
|
294
357
|
return data_types.Image
|
295
358
|
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
if tp == list or (get_origin(tp) == list and tp not in _DATA_TYPES and _is_jsonable(tp)):
|
301
|
-
return data_types.JSON
|
359
|
+
if tp == PIL.Image:
|
360
|
+
raise TypeError(
|
361
|
+
'Use the Image class from the PIL.Image module i.e. `PIL.Image.Image`, not the module itself'
|
362
|
+
)
|
302
363
|
|
303
364
|
# check for known data types
|
304
365
|
try:
|
@@ -313,9 +374,7 @@ def _normalize_data_type(tp):
|
|
313
374
|
def _is_jsonable(tp):
|
314
375
|
if tp in (dict, list, tuple, str, int, float, bool, type(None)):
|
315
376
|
return True
|
316
|
-
if get_origin(tp)
|
317
|
-
return _is_jsonable(get_args(tp)[0])
|
318
|
-
if get_origin(tp) == dict:
|
377
|
+
if get_origin(tp) in (tuple, list, dict):
|
319
378
|
return all(_is_jsonable(val) for val in get_args(tp))
|
320
379
|
return False
|
321
380
|
|
@@ -339,10 +398,10 @@ class _VariableSignature(_SignatureDict):
|
|
339
398
|
self.description = ''
|
340
399
|
|
341
400
|
|
342
|
-
#
|
401
|
+
# type: name of the data type
|
343
402
|
# data_field: name of the field in the data proto
|
344
403
|
# serializer: serializer for the data type
|
345
|
-
_DataType = namedtuple('_DataType', ('
|
404
|
+
_DataType = namedtuple('_DataType', ('type', 'serializer'))
|
346
405
|
|
347
406
|
|
348
407
|
# this will come from the proto module, but for now, define it here
|
@@ -370,6 +429,9 @@ class DataType:
|
|
370
429
|
LIST = 'LIST'
|
371
430
|
|
372
431
|
|
432
|
+
_NON_INLINABLE_TYPES = {DataType.NAMED_FIELDS, DataType.TUPLE, DataType.LIST}
|
433
|
+
_ZERO_VALUE_IDS = {id(None), id(''), id(b''), id(0), id(0.0), id(False)}
|
434
|
+
|
373
435
|
# simple, non-container types that correspond directly to a data field
|
374
436
|
_DATA_TYPES = {
|
375
437
|
str:
|
@@ -384,6 +446,9 @@ _DATA_TYPES = {
|
|
384
446
|
_DataType(DataType.BOOL, AtomicFieldSerializer('bool_value')),
|
385
447
|
np.ndarray:
|
386
448
|
_DataType(DataType.NDARRAY, NDArraySerializer('ndarray')),
|
449
|
+
data_types.JSON:
|
450
|
+
_DataType(DataType.JSON, JSONSerializer('string_value')
|
451
|
+
), # TODO change to json_value when new proto is ready
|
387
452
|
data_types.Text:
|
388
453
|
_DataType(DataType.TEXT, MessageSerializer('text', data_types.Text)),
|
389
454
|
data_types.Image:
|
@@ -400,7 +465,7 @@ _DATA_TYPES = {
|
|
400
465
|
_DataType(DataType.VIDEO, MessageSerializer('video', data_types.Video)),
|
401
466
|
}
|
402
467
|
|
403
|
-
_SERIALIZERS_BY_TYPE_ENUM = {dt.
|
468
|
+
_SERIALIZERS_BY_TYPE_ENUM = {dt.type: dt.serializer for dt in _DATA_TYPES.values()}
|
404
469
|
|
405
470
|
|
406
471
|
class CompatibilitySerializer(Serializer):
|
@@ -71,11 +71,13 @@ class MessageSerializer(Serializer):
|
|
71
71
|
values = [self.message_class.from_proto(x) for x in src]
|
72
72
|
if len(values) == 1:
|
73
73
|
return values[0]
|
74
|
-
return values
|
74
|
+
return values if values else None
|
75
75
|
else:
|
76
|
+
if not data_proto.HasField(self.field_name):
|
77
|
+
return None
|
76
78
|
return self.message_class.from_proto(src)
|
77
79
|
|
78
|
-
def deserialize_list(self, data_proto
|
80
|
+
def deserialize_list(self, data_proto):
|
79
81
|
assert self.is_repeated_field
|
80
82
|
src = getattr(data_proto, self.field_name)
|
81
83
|
return [self.message_class.from_proto(x) for x in src]
|
@@ -100,6 +102,8 @@ class NDArraySerializer(Serializer):
|
|
100
102
|
|
101
103
|
def deserialize(self, data_proto):
|
102
104
|
proto = getattr(data_proto, self.field_name)
|
105
|
+
if not proto.buffer:
|
106
|
+
return None
|
103
107
|
array = np.frombuffer(proto.buffer, dtype=np.dtype(proto.dtype)).reshape(proto.shape)
|
104
108
|
if self.as_list:
|
105
109
|
return array.tolist()
|
@@ -121,7 +125,10 @@ class JSONSerializer(Serializer):
|
|
121
125
|
raise TypeError(f"Incompatible type for {self.field_name}: {type(value)}") from e
|
122
126
|
|
123
127
|
def deserialize(self, data_proto):
|
124
|
-
|
128
|
+
value = getattr(data_proto, self.field_name)
|
129
|
+
if not value:
|
130
|
+
return None
|
131
|
+
return json.loads(value)
|
125
132
|
|
126
133
|
|
127
134
|
class ListSerializer(Serializer):
|
@@ -169,6 +176,11 @@ class TupleSerializer(Serializer):
|
|
169
176
|
serializer.serialize(part.data, item)
|
170
177
|
|
171
178
|
def deserialize(self, data_proto):
|
179
|
+
if not data_proto.parts and self.inner_serializers:
|
180
|
+
return None
|
181
|
+
if len(data_proto.parts) != len(self.inner_serializers):
|
182
|
+
raise ValueError(
|
183
|
+
f"Expected tuple of length {len(self.inner_serializers)}, got {len(data_proto.parts)}")
|
172
184
|
return tuple(
|
173
185
|
serializer.deserialize(part.data)
|
174
186
|
for serializer, part in zip(self.inner_serializers, data_proto.parts))
|
@@ -183,11 +195,13 @@ class NamedFieldsSerializer(Serializer):
|
|
183
195
|
def serialize(self, data_proto, value):
|
184
196
|
for name, serializer in self.named_field_serializers.items():
|
185
197
|
if name not in value:
|
186
|
-
raise
|
198
|
+
raise TypeError(f"Missing field {name}")
|
187
199
|
part = self._get_part(data_proto, name, add=True)
|
188
200
|
serializer.serialize(part.data, value[name])
|
189
201
|
|
190
202
|
def deserialize(self, data_proto):
|
203
|
+
if not data_proto.parts and self.named_field_serializers:
|
204
|
+
return None
|
191
205
|
value = data_types.NamedFields()
|
192
206
|
for name, serializer in self.named_field_serializers.items():
|
193
207
|
part = self._get_part(data_proto, name)
|
@@ -202,7 +216,7 @@ class NamedFieldsSerializer(Serializer):
|
|
202
216
|
part = data_proto.parts.add()
|
203
217
|
part.id = name
|
204
218
|
return part
|
205
|
-
raise
|
219
|
+
raise TypeError(f"Missing part with key {name}")
|
206
220
|
|
207
221
|
|
208
222
|
# TODO dict serializer, maybe json only?
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: clarifai
|
3
|
-
Version: 11.1.
|
3
|
+
Version: 11.1.7rc1
|
4
4
|
Summary: Clarifai Python SDK
|
5
5
|
Home-page: https://github.com/Clarifai/clarifai-python
|
6
6
|
Author: Clarifai
|
@@ -32,6 +32,7 @@ Requires-Dist: tabulate >=0.9.0
|
|
32
32
|
Requires-Dist: fsspec >=2024.6.1
|
33
33
|
Requires-Dist: click >=8.1.7
|
34
34
|
Requires-Dist: requests >=2.32.3
|
35
|
+
Requires-Dist: aiohttp >=3.8.1
|
35
36
|
Provides-Extra: all
|
36
37
|
Requires-Dist: pycocotools ==2.0.6 ; extra == 'all'
|
37
38
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
clarifai/__init__.py,sha256=
|
1
|
+
clarifai/__init__.py,sha256=c5BRjVmGOcY6YKlqM_-vMJOMiIZM-v-k2IhMFcS0dSw,26
|
2
2
|
clarifai/cli.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
3
|
clarifai/errors.py,sha256=RwzTajwds51wLD0MVlMC5kcpBnzRpreDLlazPSBZxrg,2605
|
4
4
|
clarifai/versions.py,sha256=jctnczzfGk_S3EnVqb2FjRKfSREkNmvNEwAAa_VoKiQ,222
|
@@ -12,14 +12,14 @@ clarifai/cli/__main__.py~,sha256=ozwaF8wYiURORkuFhk0_wsDPUYZjH547Wz9eVk-4nro,70
|
|
12
12
|
clarifai/cli/base.py,sha256=eaUsp7S1e2dslC437Hjk7gUBQsng13ID3N3lkYotB2U,3403
|
13
13
|
clarifai/cli/compute_cluster.py,sha256=N2dNQNJEPg9nxsb8x2igEzYuGRzjn7l4kNttjFIxmhI,1827
|
14
14
|
clarifai/cli/deployment.py,sha256=sUEuz5-rtozMx8deVcJXLi6lHsP2jc8x3y2MpUAVfqY,2506
|
15
|
-
clarifai/cli/model.py,sha256=
|
15
|
+
clarifai/cli/model.py,sha256=BDJy2DXD_vSNBBb83ylI8BPqFnUfHRnpH911gOyoDdQ,12402
|
16
16
|
clarifai/cli/nodepool.py,sha256=yihxS_rIFoBBKzRlqBX8Ab42iPpBMJrJFsk8saph6ms,3049
|
17
17
|
clarifai/cli/__pycache__/__init__.cpython-310.pyc,sha256=4ksYQqqaAMCKwyxNsG7hfJGjXDc8y78s9n7AxCEaTQo,160
|
18
18
|
clarifai/cli/__pycache__/__main__.cpython-310.pyc,sha256=DddvGgYRrEZh9iwKsrGgMP2D7bslUckWV2UGRv2M2ZA,250
|
19
19
|
clarifai/cli/__pycache__/base.cpython-310.pyc,sha256=a7mN_r511p_Ao8aXrWU9KPSe8wkDZJW4p8UhlD6EoB8,3151
|
20
20
|
clarifai/cli/__pycache__/compute_cluster.cpython-310.pyc,sha256=NHLAcVEwqUhci0KB5DpnPWUqXcCttpWrA3F5zld4qN8,1985
|
21
21
|
clarifai/cli/__pycache__/deployment.cpython-310.pyc,sha256=AhfbPlwjjj_TmC2UayjuRbNr00dOukDl6NfLhm2rIng,2278
|
22
|
-
clarifai/cli/__pycache__/model.cpython-310.pyc,sha256=
|
22
|
+
clarifai/cli/__pycache__/model.cpython-310.pyc,sha256=3UZJ0bgfHIsjiAy1kklnykTPkXWkLahnwKd8-7NEMjs,9639
|
23
23
|
clarifai/cli/__pycache__/nodepool.cpython-310.pyc,sha256=nEmM-s1HFg7xM5x-bpnqHFWAVLWj0J0ZskYtd6NSq20,2473
|
24
24
|
clarifai/client/#model_client.py#,sha256=tZUWNl6D5TyeTY-XaREcdDsD3eM-Rgha2lmHziOok8w,16700
|
25
25
|
clarifai/client/__init__.py,sha256=xI1U0l5AZdRThvQAXCLsd9axxyFzXXJ22m8LHqVjQRU,662
|
@@ -30,8 +30,8 @@ clarifai/client/dataset.py,sha256=y3zKT_VhP1gyN3OO-b3cPeW21ZXyKbQ7ZJkEG06bsTU,32
|
|
30
30
|
clarifai/client/deployment.py,sha256=w7Y6pA1rYG4KRK1SwusRZc2sQRXlG8wezuVdzSWpCo0,2586
|
31
31
|
clarifai/client/input.py,sha256=obMAHMDU1OwfXZ8KraOnGFlWzlW-3F7Ob_2lcOQMlhY,46339
|
32
32
|
clarifai/client/lister.py,sha256=03KGMvs5RVyYqxLsSrWhNc34I8kiF1Ph0NeyEwu7nMU,2082
|
33
|
-
clarifai/client/model.py,sha256=
|
34
|
-
clarifai/client/model_client.py,sha256=
|
33
|
+
clarifai/client/model.py,sha256=jFSz-cVgneKhInwyX1CAE-1Giilz4lRw7kvNOTHP4x0,76934
|
34
|
+
clarifai/client/model_client.py,sha256=nuppfy5jxJLN6qwv_PWkTcpYeo8GX5rY5Ioseynl3_U,16805
|
35
35
|
clarifai/client/module.py,sha256=FTkm8s9m-EaTKN7g9MnLhGJ9eETUfKG7aWZ3o1RshYs,4204
|
36
36
|
clarifai/client/nodepool.py,sha256=la3vTFrO4LX8zm2eQ5jqf2L0-kQ63Dano8FibadoZbk,10152
|
37
37
|
clarifai/client/search.py,sha256=GaPWN6JmTQGZaCHr6U1yv0zqR6wKFl7i9IVLg2ul1CI,14254
|
@@ -127,46 +127,46 @@ clarifai/rag/utils.py,sha256=yr1jAcbpws4vFGBqlAwPPE7v1DRba48g8gixLFw8OhQ,4070
|
|
127
127
|
clarifai/rag/__pycache__/__init__.cpython-310.pyc,sha256=xAV8OBmLU6qidHU5fr1p2OvQc5N4sy6X1W6ToAUX3mw,213
|
128
128
|
clarifai/rag/__pycache__/rag.cpython-310.pyc,sha256=_xylc1DvMu1KYcDr-dtfUU2uzUjL29Uq3mRH-Iu7_h0,9738
|
129
129
|
clarifai/rag/__pycache__/utils.cpython-310.pyc,sha256=IDUXR7Iv4KfHSY3sbx_bgPdJQn2ozyRCuz01EUTmCUw,3694
|
130
|
-
clarifai/runners/__init__.py,sha256=
|
130
|
+
clarifai/runners/__init__.py,sha256=cDJ31l41dDsqW4Xn6sFMkKxxdIMTnGH9IW6sVkq0TNw,207
|
131
131
|
clarifai/runners/server.py,sha256=xHDLdhQApCgYG19QOKXqJNCGNyw1Vsvobq3UdryDrVc,4132
|
132
|
-
clarifai/runners/__pycache__/__init__.cpython-310.pyc,sha256=
|
133
|
-
clarifai/runners/__pycache__/server.cpython-310.pyc,sha256=
|
132
|
+
clarifai/runners/__pycache__/__init__.cpython-310.pyc,sha256=aTRPFOB5Lse4qTAh2Xr11Y2A3mDLnzGq5cZzjnMkuyY,365
|
133
|
+
clarifai/runners/__pycache__/server.cpython-310.pyc,sha256=7K18iuUCTuRW94t95_tkS1bakKRxsq5iJ5OiStyNJlY,3223
|
134
134
|
clarifai/runners/dockerfile_template/Dockerfile.debug,sha256=sRlfRmSLE_TiLORcVRx-3-B0vvSNeUYgm0CCrWmLvAA,667
|
135
135
|
clarifai/runners/dockerfile_template/Dockerfile.debug~,sha256=7YOVg3adIaiudfSkfLGeyxt-FfIBbD3UIIYccrIVJTs,426
|
136
|
-
clarifai/runners/dockerfile_template/Dockerfile.template,sha256=
|
136
|
+
clarifai/runners/dockerfile_template/Dockerfile.template,sha256=NRybJOAOCtnIec-CyxQDG-vqdSLrPV_MEFFHmEv_9tc,2509
|
137
137
|
clarifai/runners/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
138
138
|
clarifai/runners/models/base_typed_model.py,sha256=0QCWxch8CcyJSKvE1D4PILd2RSnQZHTmx4DXlQQ6dpo,7856
|
139
|
-
clarifai/runners/models/model_builder.py,sha256=
|
140
|
-
clarifai/runners/models/model_class.py,sha256
|
141
|
-
clarifai/runners/models/model_run_locally.py,sha256=
|
142
|
-
clarifai/runners/models/model_runner.py,sha256=
|
143
|
-
clarifai/runners/models/model_servicer.py,sha256=
|
139
|
+
clarifai/runners/models/model_builder.py,sha256=kD3uSHRpTMKe_nQhc8OS6_t3bXc6rW5sEw5rnwtY45g,33086
|
140
|
+
clarifai/runners/models/model_class.py,sha256=-6U7zrRn1ZCCZzAAFG9BJoh7Oq2yBkR1lFdzlajgyy8,10767
|
141
|
+
clarifai/runners/models/model_run_locally.py,sha256=VZetm9Mko8MBjcjwr6PCnTU9gF3glgD5qvpbj-8tW2s,17962
|
142
|
+
clarifai/runners/models/model_runner.py,sha256=qyc73pe4xc9BsUKHwnOyC9g-RNCARiFis4GTh-yg0vg,6219
|
143
|
+
clarifai/runners/models/model_servicer.py,sha256=A--b1P71PBCAMJCpy_-fpNDkfCVdvdMh1LleW15dSas,3037
|
144
144
|
clarifai/runners/models/__pycache__/__init__.cpython-310.pyc,sha256=GTFjzypyx5wnDGqxYeY01iya1CELKb5fOFBFLV031yU,171
|
145
145
|
clarifai/runners/models/__pycache__/base_typed_model.cpython-310.pyc,sha256=DCpUDsUUFf_e37yBLvzPwOHC0aNsBTUWXfcLF1LTnjc,8271
|
146
|
-
clarifai/runners/models/__pycache__/model_builder.cpython-310.pyc,sha256=
|
147
|
-
clarifai/runners/models/__pycache__/model_class.cpython-310.pyc,sha256=
|
148
|
-
clarifai/runners/models/__pycache__/model_run_locally.cpython-310.pyc,sha256=
|
149
|
-
clarifai/runners/models/__pycache__/model_runner.cpython-310.pyc,sha256=
|
150
|
-
clarifai/runners/models/__pycache__/model_servicer.cpython-310.pyc,sha256=
|
146
|
+
clarifai/runners/models/__pycache__/model_builder.cpython-310.pyc,sha256=VwzCpNztwsO5dRAu2P7bhQpjZwFONiSFD9dhqvWLeMs,27511
|
147
|
+
clarifai/runners/models/__pycache__/model_class.cpython-310.pyc,sha256=NBXtjp9Dzfy4h0IXkWXGMI7Y7pxk13mOK7edEhCgKqo,8867
|
148
|
+
clarifai/runners/models/__pycache__/model_run_locally.cpython-310.pyc,sha256=IuJhxSvvgD9Xh0i4twiMGbettxb0zBObXY-gVV9lS-4,17075
|
149
|
+
clarifai/runners/models/__pycache__/model_runner.cpython-310.pyc,sha256=hFFTbXt-fIJGVwwOt3qskn3ZBqVLXS8btYmGoF-5WJA,4999
|
150
|
+
clarifai/runners/models/__pycache__/model_servicer.cpython-310.pyc,sha256=7qMV72vZtE-u6lhJMVJfR_i8mBDsN3QqxnSq7bcMAww,2501
|
151
151
|
clarifai/runners/models/__pycache__/model_upload.cpython-310.pyc,sha256=erkIUHtJv1ohMOFT8EAJuVfBsEY4o0GxpeXrZqjrfGk,21046
|
152
152
|
clarifai/runners/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
153
153
|
clarifai/runners/utils/const.py,sha256=bwj-Pcw558-pasdIFbNhnkn-9oiCdojYH1fNTTUG2gU,1048
|
154
154
|
clarifai/runners/utils/data_handler.py,sha256=sxy9zlAgI6ETuxCQhUgEXAn2GCsaW1GxpK6GTaMne0g,6966
|
155
|
-
clarifai/runners/utils/data_types.py,sha256=
|
155
|
+
clarifai/runners/utils/data_types.py,sha256=nJS9n4oQHcwf2scxH8pl5TjHcY9l6ZdY401fTwpEoe4,11032
|
156
156
|
clarifai/runners/utils/data_utils.py,sha256=R1iQ82TuQ9JwxCJk8yEB1Lyb0BYVhVbWJI9YDi1zGOs,318
|
157
157
|
clarifai/runners/utils/loader.py,sha256=SgNHMwRmCCymFQm8aDp73NmIUHhM-N60CBlTKbPzmVc,7470
|
158
|
-
clarifai/runners/utils/method_signatures.py,sha256=
|
159
|
-
clarifai/runners/utils/serializers.py,sha256=
|
158
|
+
clarifai/runners/utils/method_signatures.py,sha256=SbHjtRVaPRvgn1UWv45KYwch4LdJ75bOQsCuqdf9el8,17079
|
159
|
+
clarifai/runners/utils/serializers.py,sha256=S4sRsOVvH191vAGTRTAAdwLlQwlK4T5QVRDGPptg9nQ,7191
|
160
160
|
clarifai/runners/utils/url_fetcher.py,sha256=v_8JOWmkyFAzsBulsieKX7Nfjy1Yg7wGSZeqfEvw2cg,1640
|
161
161
|
clarifai/runners/utils/__pycache__/__init__.cpython-310.pyc,sha256=PRPZOzUV5Z8grWizu5RKOkki0iLYxZDJBgsLfmCcieE,170
|
162
162
|
clarifai/runners/utils/__pycache__/const.cpython-310.pyc,sha256=EBpjmzlqWBxRGqu_KXeVx80uDslhufrErs57SbLr3DE,953
|
163
163
|
clarifai/runners/utils/__pycache__/data_handler.cpython-310.pyc,sha256=Mz5dhwefiMAVzHjO7ePfqAm3NILUoSDSUoTS03pt0f8,7961
|
164
|
-
clarifai/runners/utils/__pycache__/data_types.cpython-310.pyc,sha256=
|
164
|
+
clarifai/runners/utils/__pycache__/data_types.cpython-310.pyc,sha256=4rFe81vCKdXGYoavG5InNJVrak_ennjUexQKrxXy4pw,16465
|
165
165
|
clarifai/runners/utils/__pycache__/data_utils.cpython-310.pyc,sha256=1e6NiK6bnJiiAo2KPsDmm91BSlbI3mVkQZKbDfh5hBI,642
|
166
166
|
clarifai/runners/utils/__pycache__/loader.cpython-310.pyc,sha256=X1MwgLanVXLs-QLot1X145A36W29ONXZRZe5q6_jARo,7319
|
167
167
|
clarifai/runners/utils/__pycache__/logging.cpython-310.pyc,sha256=VV0KFcnuYpFFtaG4EeDIgg7c4QEsBLo-eX_NnsyFEhA,331
|
168
|
-
clarifai/runners/utils/__pycache__/method_signatures.cpython-310.pyc,sha256=
|
169
|
-
clarifai/runners/utils/__pycache__/serializers.cpython-310.pyc,sha256=
|
168
|
+
clarifai/runners/utils/__pycache__/method_signatures.cpython-310.pyc,sha256=ylq20Lo89M8QD7-_yK9V57Pdi-oT8SIlVsyjlaujeyY,14029
|
169
|
+
clarifai/runners/utils/__pycache__/serializers.cpython-310.pyc,sha256=FnCRyVyBD1MjGX0sjaxsRHV9AD-vueKX5mCZmdogRiQ,8975
|
170
170
|
clarifai/runners/utils/__pycache__/url_fetcher.cpython-310.pyc,sha256=jFxVdOmm7DCkgatv1GwIXeefHthpvlkg4ybBlMnmxss,1739
|
171
171
|
clarifai/schema/search.py,sha256=JjTi8ammJgZZ2OGl4K6tIA4zEJ1Fr2ASZARXavI1j5c,2448
|
172
172
|
clarifai/schema/__pycache__/search.cpython-310.pyc,sha256=aYuMHmn0ovwmeOhTDj7QAURrQAjlyLm1CwKaz6xktZU,2484
|
@@ -197,9 +197,9 @@ clarifai/workflows/__pycache__/__init__.cpython-310.pyc,sha256=oRKg6B7Z-wWQy0EW2
|
|
197
197
|
clarifai/workflows/__pycache__/export.cpython-310.pyc,sha256=cNmGLnww7xVpm4htd1vRhQJoEZ1dhpN1oD8iLLAtVzM,2418
|
198
198
|
clarifai/workflows/__pycache__/utils.cpython-310.pyc,sha256=rm2kWk4a3GOKWoerXpEAEeRvGhEe7wPd0ZZ6jHtEGqY,1925
|
199
199
|
clarifai/workflows/__pycache__/validate.cpython-310.pyc,sha256=QA1i6YdDpY824cqtQvkEaFPpaCa2iqfOwFouqwZfAKY,2139
|
200
|
-
clarifai-11.1.
|
201
|
-
clarifai-11.1.
|
202
|
-
clarifai-11.1.
|
203
|
-
clarifai-11.1.
|
204
|
-
clarifai-11.1.
|
205
|
-
clarifai-11.1.
|
200
|
+
clarifai-11.1.7rc1.dist-info/LICENSE,sha256=mUqF_d12-qE2n41g7C5_sq-BMLOcj6CNN-jevr15YHU,555
|
201
|
+
clarifai-11.1.7rc1.dist-info/METADATA,sha256=04I75hPIwGiq9MDminljrYnhEviMnOWciPeGVy50B2s,22229
|
202
|
+
clarifai-11.1.7rc1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
203
|
+
clarifai-11.1.7rc1.dist-info/entry_points.txt,sha256=X9FZ4Z-i_r2Ud1RpZ9sNIFYuu_-9fogzCMCRUD9hyX0,51
|
204
|
+
clarifai-11.1.7rc1.dist-info/top_level.txt,sha256=wUMdCQGjkxaynZ6nZ9FAnvBUCgp5RJUVFSy2j-KYo0s,9
|
205
|
+
clarifai-11.1.7rc1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|