clarifai 11.5.3rc2__py3-none-any.whl → 11.5.4__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/runners/models/model_runner.py +31 -5
- clarifai/runners/models/model_servicer.py +26 -3
- clarifai/runners/utils/data_types/data_types.py +5 -22
- clarifai/runners/utils/url_fetcher.py +55 -10
- {clarifai-11.5.3rc2.dist-info → clarifai-11.5.4.dist-info}/METADATA +1 -1
- clarifai-11.5.4.dist-info/RECORD +126 -0
- clarifai/__pycache__/__init__.cpython-312.pyc +0 -0
- clarifai/__pycache__/__init__.cpython-38.pyc +0 -0
- clarifai/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai/__pycache__/errors.cpython-312.pyc +0 -0
- clarifai/__pycache__/errors.cpython-38.pyc +0 -0
- clarifai/__pycache__/errors.cpython-39.pyc +0 -0
- clarifai/__pycache__/versions.cpython-312.pyc +0 -0
- clarifai/__pycache__/versions.cpython-38.pyc +0 -0
- clarifai/__pycache__/versions.cpython-39.pyc +0 -0
- clarifai/client/__pycache__/__init__.cpython-312.pyc +0 -0
- clarifai/client/__pycache__/__init__.cpython-38.pyc +0 -0
- clarifai/client/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai/client/__pycache__/app.cpython-312.pyc +0 -0
- clarifai/client/__pycache__/app.cpython-38.pyc +0 -0
- clarifai/client/__pycache__/app.cpython-39.pyc +0 -0
- clarifai/client/__pycache__/base.cpython-312.pyc +0 -0
- clarifai/client/__pycache__/base.cpython-38.pyc +0 -0
- clarifai/client/__pycache__/base.cpython-39.pyc +0 -0
- clarifai/client/__pycache__/compute_cluster.cpython-312.pyc +0 -0
- clarifai/client/__pycache__/compute_cluster.cpython-38.pyc +0 -0
- clarifai/client/__pycache__/compute_cluster.cpython-39.pyc +0 -0
- clarifai/client/__pycache__/dataset.cpython-312.pyc +0 -0
- clarifai/client/__pycache__/dataset.cpython-38.pyc +0 -0
- clarifai/client/__pycache__/dataset.cpython-39.pyc +0 -0
- clarifai/client/__pycache__/deployment.cpython-312.pyc +0 -0
- clarifai/client/__pycache__/deployment.cpython-38.pyc +0 -0
- clarifai/client/__pycache__/deployment.cpython-39.pyc +0 -0
- clarifai/client/__pycache__/input.cpython-312.pyc +0 -0
- clarifai/client/__pycache__/input.cpython-38.pyc +0 -0
- clarifai/client/__pycache__/input.cpython-39.pyc +0 -0
- clarifai/client/__pycache__/lister.cpython-312.pyc +0 -0
- clarifai/client/__pycache__/lister.cpython-38.pyc +0 -0
- clarifai/client/__pycache__/lister.cpython-39.pyc +0 -0
- clarifai/client/__pycache__/model.cpython-312.pyc +0 -0
- clarifai/client/__pycache__/model.cpython-38.pyc +0 -0
- clarifai/client/__pycache__/model.cpython-39.pyc +0 -0
- clarifai/client/__pycache__/model_client.cpython-39.pyc +0 -0
- clarifai/client/__pycache__/module.cpython-312.pyc +0 -0
- clarifai/client/__pycache__/module.cpython-38.pyc +0 -0
- clarifai/client/__pycache__/module.cpython-39.pyc +0 -0
- clarifai/client/__pycache__/nodepool.cpython-312.pyc +0 -0
- clarifai/client/__pycache__/nodepool.cpython-38.pyc +0 -0
- clarifai/client/__pycache__/nodepool.cpython-39.pyc +0 -0
- clarifai/client/__pycache__/runner.cpython-39.pyc +0 -0
- clarifai/client/__pycache__/search.cpython-312.pyc +0 -0
- clarifai/client/__pycache__/search.cpython-38.pyc +0 -0
- clarifai/client/__pycache__/search.cpython-39.pyc +0 -0
- clarifai/client/__pycache__/user.cpython-312.pyc +0 -0
- clarifai/client/__pycache__/user.cpython-38.pyc +0 -0
- clarifai/client/__pycache__/user.cpython-39.pyc +0 -0
- clarifai/client/__pycache__/workflow.cpython-312.pyc +0 -0
- clarifai/client/__pycache__/workflow.cpython-38.pyc +0 -0
- clarifai/client/__pycache__/workflow.cpython-39.pyc +0 -0
- clarifai/client/auth/__pycache__/__init__.cpython-312.pyc +0 -0
- clarifai/client/auth/__pycache__/__init__.cpython-38.pyc +0 -0
- clarifai/client/auth/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai/client/auth/__pycache__/helper.cpython-312.pyc +0 -0
- clarifai/client/auth/__pycache__/helper.cpython-38.pyc +0 -0
- clarifai/client/auth/__pycache__/helper.cpython-39.pyc +0 -0
- clarifai/client/auth/__pycache__/register.cpython-312.pyc +0 -0
- clarifai/client/auth/__pycache__/register.cpython-38.pyc +0 -0
- clarifai/client/auth/__pycache__/register.cpython-39.pyc +0 -0
- clarifai/client/auth/__pycache__/stub.cpython-312.pyc +0 -0
- clarifai/client/auth/__pycache__/stub.cpython-38.pyc +0 -0
- clarifai/client/auth/__pycache__/stub.cpython-39.pyc +0 -0
- clarifai/constants/__pycache__/base.cpython-312.pyc +0 -0
- clarifai/constants/__pycache__/base.cpython-38.pyc +0 -0
- clarifai/constants/__pycache__/base.cpython-39.pyc +0 -0
- clarifai/constants/__pycache__/dataset.cpython-312.pyc +0 -0
- clarifai/constants/__pycache__/dataset.cpython-38.pyc +0 -0
- clarifai/constants/__pycache__/dataset.cpython-39.pyc +0 -0
- clarifai/constants/__pycache__/input.cpython-312.pyc +0 -0
- clarifai/constants/__pycache__/input.cpython-38.pyc +0 -0
- clarifai/constants/__pycache__/input.cpython-39.pyc +0 -0
- clarifai/constants/__pycache__/model.cpython-312.pyc +0 -0
- clarifai/constants/__pycache__/model.cpython-38.pyc +0 -0
- clarifai/constants/__pycache__/model.cpython-39.pyc +0 -0
- clarifai/constants/__pycache__/search.cpython-312.pyc +0 -0
- clarifai/constants/__pycache__/search.cpython-38.pyc +0 -0
- clarifai/constants/__pycache__/search.cpython-39.pyc +0 -0
- clarifai/constants/__pycache__/workflow.cpython-312.pyc +0 -0
- clarifai/constants/__pycache__/workflow.cpython-38.pyc +0 -0
- clarifai/constants/__pycache__/workflow.cpython-39.pyc +0 -0
- clarifai/datasets/__pycache__/__init__.cpython-312.pyc +0 -0
- clarifai/datasets/__pycache__/__init__.cpython-38.pyc +0 -0
- clarifai/datasets/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai/datasets/export/__pycache__/__init__.cpython-312.pyc +0 -0
- clarifai/datasets/export/__pycache__/__init__.cpython-38.pyc +0 -0
- clarifai/datasets/export/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai/datasets/export/__pycache__/inputs_annotations.cpython-312.pyc +0 -0
- clarifai/datasets/export/__pycache__/inputs_annotations.cpython-38.pyc +0 -0
- clarifai/datasets/export/__pycache__/inputs_annotations.cpython-39.pyc +0 -0
- clarifai/datasets/upload/__pycache__/__init__.cpython-312.pyc +0 -0
- clarifai/datasets/upload/__pycache__/__init__.cpython-38.pyc +0 -0
- clarifai/datasets/upload/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai/datasets/upload/__pycache__/base.cpython-312.pyc +0 -0
- clarifai/datasets/upload/__pycache__/base.cpython-38.pyc +0 -0
- clarifai/datasets/upload/__pycache__/base.cpython-39.pyc +0 -0
- clarifai/datasets/upload/__pycache__/features.cpython-312.pyc +0 -0
- clarifai/datasets/upload/__pycache__/features.cpython-38.pyc +0 -0
- clarifai/datasets/upload/__pycache__/features.cpython-39.pyc +0 -0
- clarifai/datasets/upload/__pycache__/image.cpython-312.pyc +0 -0
- clarifai/datasets/upload/__pycache__/image.cpython-38.pyc +0 -0
- clarifai/datasets/upload/__pycache__/image.cpython-39.pyc +0 -0
- clarifai/datasets/upload/__pycache__/multimodal.cpython-312.pyc +0 -0
- clarifai/datasets/upload/__pycache__/multimodal.cpython-38.pyc +0 -0
- clarifai/datasets/upload/__pycache__/multimodal.cpython-39.pyc +0 -0
- clarifai/datasets/upload/__pycache__/text.cpython-312.pyc +0 -0
- clarifai/datasets/upload/__pycache__/text.cpython-38.pyc +0 -0
- clarifai/datasets/upload/__pycache__/text.cpython-39.pyc +0 -0
- clarifai/datasets/upload/__pycache__/utils.cpython-312.pyc +0 -0
- clarifai/datasets/upload/__pycache__/utils.cpython-38.pyc +0 -0
- clarifai/datasets/upload/__pycache__/utils.cpython-39.pyc +0 -0
- clarifai/runners/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai/runners/models/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai/runners/models/__pycache__/mcp_class.cpython-39.pyc +0 -0
- clarifai/runners/models/__pycache__/model_class.cpython-39.pyc +0 -0
- clarifai/runners/models/__pycache__/model_runner.cpython-39.pyc +0 -0
- clarifai/runners/models/__pycache__/openai_class.cpython-39.pyc +0 -0
- clarifai/runners/utils/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai/runners/utils/__pycache__/code_script.cpython-39.pyc +0 -0
- clarifai/runners/utils/__pycache__/data_utils.cpython-39.pyc +0 -0
- clarifai/runners/utils/__pycache__/method_signatures.cpython-39.pyc +0 -0
- clarifai/runners/utils/__pycache__/openai_convertor.cpython-39.pyc +0 -0
- clarifai/runners/utils/__pycache__/serializers.cpython-39.pyc +0 -0
- clarifai/runners/utils/__pycache__/url_fetcher.cpython-39.pyc +0 -0
- clarifai/runners/utils/data_types/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai/runners/utils/data_types/__pycache__/data_types.cpython-39.pyc +0 -0
- clarifai/schema/__pycache__/search.cpython-312.pyc +0 -0
- clarifai/schema/__pycache__/search.cpython-38.pyc +0 -0
- clarifai/schema/__pycache__/search.cpython-39.pyc +0 -0
- clarifai/urls/__pycache__/helper.cpython-312.pyc +0 -0
- clarifai/urls/__pycache__/helper.cpython-38.pyc +0 -0
- clarifai/urls/__pycache__/helper.cpython-39.pyc +0 -0
- clarifai/utils/__pycache__/__init__.cpython-312.pyc +0 -0
- clarifai/utils/__pycache__/__init__.cpython-38.pyc +0 -0
- clarifai/utils/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai/utils/__pycache__/constants.cpython-312.pyc +0 -0
- clarifai/utils/__pycache__/constants.cpython-38.pyc +0 -0
- clarifai/utils/__pycache__/constants.cpython-39.pyc +0 -0
- clarifai/utils/__pycache__/logging.cpython-312.pyc +0 -0
- clarifai/utils/__pycache__/logging.cpython-38.pyc +0 -0
- clarifai/utils/__pycache__/logging.cpython-39.pyc +0 -0
- clarifai/utils/__pycache__/misc.cpython-312.pyc +0 -0
- clarifai/utils/__pycache__/misc.cpython-38.pyc +0 -0
- clarifai/utils/__pycache__/misc.cpython-39.pyc +0 -0
- clarifai/utils/__pycache__/model_train.cpython-312.pyc +0 -0
- clarifai/utils/__pycache__/model_train.cpython-38.pyc +0 -0
- clarifai/utils/__pycache__/model_train.cpython-39.pyc +0 -0
- clarifai/utils/__pycache__/protobuf.cpython-39.pyc +0 -0
- clarifai/workflows/__pycache__/__init__.cpython-312.pyc +0 -0
- clarifai/workflows/__pycache__/__init__.cpython-38.pyc +0 -0
- clarifai/workflows/__pycache__/__init__.cpython-39.pyc +0 -0
- clarifai/workflows/__pycache__/export.cpython-312.pyc +0 -0
- clarifai/workflows/__pycache__/export.cpython-38.pyc +0 -0
- clarifai/workflows/__pycache__/export.cpython-39.pyc +0 -0
- clarifai/workflows/__pycache__/utils.cpython-312.pyc +0 -0
- clarifai/workflows/__pycache__/utils.cpython-38.pyc +0 -0
- clarifai/workflows/__pycache__/utils.cpython-39.pyc +0 -0
- clarifai/workflows/__pycache__/validate.cpython-312.pyc +0 -0
- clarifai/workflows/__pycache__/validate.cpython-38.pyc +0 -0
- clarifai/workflows/__pycache__/validate.cpython-39.pyc +0 -0
- clarifai-11.5.3rc2.dist-info/RECORD +0 -288
- {clarifai-11.5.3rc2.dist-info → clarifai-11.5.4.dist-info}/WHEEL +0 -0
- {clarifai-11.5.3rc2.dist-info → clarifai-11.5.4.dist-info}/entry_points.txt +0 -0
- {clarifai-11.5.3rc2.dist-info → clarifai-11.5.4.dist-info}/licenses/LICENSE +0 -0
- {clarifai-11.5.3rc2.dist-info → clarifai-11.5.4.dist-info}/top_level.txt +0 -0
clarifai/__init__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "11.5.
|
1
|
+
__version__ = "11.5.4"
|
@@ -5,6 +5,8 @@ from clarifai_grpc.grpc.api.status import status_code_pb2, status_pb2
|
|
5
5
|
from clarifai_protocol import BaseRunner
|
6
6
|
from clarifai_protocol.utils.health import HealthProbeRequestHandler
|
7
7
|
|
8
|
+
from clarifai.client.auth.helper import ClarifaiAuthHelper
|
9
|
+
|
8
10
|
from ..utils.url_fetcher import ensure_urls_downloaded
|
9
11
|
from .model_class import ModelClass
|
10
12
|
|
@@ -42,6 +44,28 @@ class ModelRunner(BaseRunner, HealthProbeRequestHandler):
|
|
42
44
|
)
|
43
45
|
self.model = model
|
44
46
|
|
47
|
+
# Store authentication parameters for URL fetching
|
48
|
+
self._user_id = user_id
|
49
|
+
self._pat = pat
|
50
|
+
self._token = token
|
51
|
+
self._base_url = base_url
|
52
|
+
|
53
|
+
# Create auth helper if we have sufficient authentication information
|
54
|
+
self._auth_helper = None
|
55
|
+
if self._user_id and (self._pat or self._token):
|
56
|
+
try:
|
57
|
+
self._auth_helper = ClarifaiAuthHelper(
|
58
|
+
user_id=self._user_id,
|
59
|
+
app_id="", # app_id not needed for URL fetching
|
60
|
+
pat=self._pat or "",
|
61
|
+
token=self._token or "",
|
62
|
+
base=self._base_url,
|
63
|
+
validate=False, # Don't validate since app_id is empty
|
64
|
+
)
|
65
|
+
except Exception:
|
66
|
+
# If auth helper creation fails, proceed without authentication
|
67
|
+
self._auth_helper = None
|
68
|
+
|
45
69
|
# After model load successfully set the health probe to ready and startup
|
46
70
|
HealthProbeRequestHandler.is_ready = True
|
47
71
|
HealthProbeRequestHandler.is_startup = True
|
@@ -81,7 +105,7 @@ class ModelRunner(BaseRunner, HealthProbeRequestHandler):
|
|
81
105
|
if not runner_item.HasField('post_model_outputs_request'):
|
82
106
|
raise Exception("Unexpected work item type: {}".format(runner_item))
|
83
107
|
request = runner_item.post_model_outputs_request
|
84
|
-
ensure_urls_downloaded(request)
|
108
|
+
ensure_urls_downloaded(request, auth_helper=self._auth_helper)
|
85
109
|
|
86
110
|
resp = self.model.predict_wrapper(request)
|
87
111
|
if resp.status.code != status_code_pb2.SUCCESS:
|
@@ -114,7 +138,7 @@ class ModelRunner(BaseRunner, HealthProbeRequestHandler):
|
|
114
138
|
if not runner_item.HasField('post_model_outputs_request'):
|
115
139
|
raise Exception("Unexpected work item type: {}".format(runner_item))
|
116
140
|
request = runner_item.post_model_outputs_request
|
117
|
-
ensure_urls_downloaded(request)
|
141
|
+
ensure_urls_downloaded(request, auth_helper=self._auth_helper)
|
118
142
|
|
119
143
|
for resp in self.model.generate_wrapper(request):
|
120
144
|
if resp.status.code != status_code_pb2.SUCCESS:
|
@@ -150,7 +174,9 @@ class ModelRunner(BaseRunner, HealthProbeRequestHandler):
|
|
150
174
|
self, runner_item_iterator: Iterator[service_pb2.RunnerItem]
|
151
175
|
) -> Iterator[service_pb2.RunnerItemOutput]:
|
152
176
|
# Call the generate() method the underlying model implements.
|
153
|
-
for resp in self.model.stream_wrapper(
|
177
|
+
for resp in self.model.stream_wrapper(
|
178
|
+
pmo_iterator(runner_item_iterator, self._auth_helper)
|
179
|
+
):
|
154
180
|
if resp.status.code != status_code_pb2.SUCCESS:
|
155
181
|
yield service_pb2.RunnerItemOutput(multi_output_response=resp)
|
156
182
|
continue
|
@@ -181,9 +207,9 @@ class ModelRunner(BaseRunner, HealthProbeRequestHandler):
|
|
181
207
|
yield service_pb2.RunnerItemOutput(multi_output_response=resp)
|
182
208
|
|
183
209
|
|
184
|
-
def pmo_iterator(runner_item_iterator):
|
210
|
+
def pmo_iterator(runner_item_iterator, auth_helper=None):
|
185
211
|
for runner_item in runner_item_iterator:
|
186
212
|
if not runner_item.HasField('post_model_outputs_request'):
|
187
213
|
raise Exception("Unexpected work item type: {}".format(runner_item))
|
188
|
-
ensure_urls_downloaded(runner_item.post_model_outputs_request)
|
214
|
+
ensure_urls_downloaded(runner_item.post_model_outputs_request, auth_helper=auth_helper)
|
189
215
|
yield runner_item.post_model_outputs_request
|
@@ -5,6 +5,8 @@ from typing import Iterator
|
|
5
5
|
from clarifai_grpc.grpc.api import service_pb2, service_pb2_grpc
|
6
6
|
from clarifai_grpc.grpc.api.status import status_code_pb2, status_pb2
|
7
7
|
|
8
|
+
from clarifai.client.auth.helper import ClarifaiAuthHelper
|
9
|
+
|
8
10
|
from ..utils.url_fetcher import ensure_urls_downloaded
|
9
11
|
|
10
12
|
_RAISE_EXCEPTIONS = os.getenv("RAISE_EXCEPTIONS", "false").lower() in ("true", "1")
|
@@ -23,6 +25,27 @@ class ModelServicer(service_pb2_grpc.V2Servicer):
|
|
23
25
|
"""
|
24
26
|
self.model = model
|
25
27
|
|
28
|
+
# Try to create auth helper from environment variables if available
|
29
|
+
self._auth_helper = None
|
30
|
+
try:
|
31
|
+
user_id = os.environ.get("CLARIFAI_USER_ID")
|
32
|
+
pat = os.environ.get("CLARIFAI_PAT")
|
33
|
+
token = os.environ.get("CLARIFAI_SESSION_TOKEN")
|
34
|
+
base_url = os.environ.get("CLARIFAI_API_BASE", "https://api.clarifai.com")
|
35
|
+
|
36
|
+
if user_id and (pat or token):
|
37
|
+
self._auth_helper = ClarifaiAuthHelper(
|
38
|
+
user_id=user_id,
|
39
|
+
app_id="", # app_id not needed for URL fetching
|
40
|
+
pat=pat or "",
|
41
|
+
token=token or "",
|
42
|
+
base=base_url,
|
43
|
+
validate=False, # Don't validate since app_id is empty
|
44
|
+
)
|
45
|
+
except Exception:
|
46
|
+
# If auth helper creation fails, proceed without authentication
|
47
|
+
self._auth_helper = None
|
48
|
+
|
26
49
|
def PostModelOutputs(
|
27
50
|
self, request: service_pb2.PostModelOutputsRequest, context=None
|
28
51
|
) -> service_pb2.MultiOutputResponse:
|
@@ -32,7 +55,7 @@ class ModelServicer(service_pb2_grpc.V2Servicer):
|
|
32
55
|
"""
|
33
56
|
|
34
57
|
# Download any urls that are not already bytes.
|
35
|
-
ensure_urls_downloaded(request)
|
58
|
+
ensure_urls_downloaded(request, auth_helper=self._auth_helper)
|
36
59
|
|
37
60
|
try:
|
38
61
|
return self.model.predict_wrapper(request)
|
@@ -56,7 +79,7 @@ class ModelServicer(service_pb2_grpc.V2Servicer):
|
|
56
79
|
returns an output.
|
57
80
|
"""
|
58
81
|
# Download any urls that are not already bytes.
|
59
|
-
ensure_urls_downloaded(request)
|
82
|
+
ensure_urls_downloaded(request, auth_helper=self._auth_helper)
|
60
83
|
|
61
84
|
try:
|
62
85
|
yield from self.model.generate_wrapper(request)
|
@@ -84,7 +107,7 @@ class ModelServicer(service_pb2_grpc.V2Servicer):
|
|
84
107
|
|
85
108
|
# Download any urls that are not already bytes.
|
86
109
|
for req in request:
|
87
|
-
ensure_urls_downloaded(req)
|
110
|
+
ensure_urls_downloaded(req, auth_helper=self._auth_helper)
|
88
111
|
|
89
112
|
try:
|
90
113
|
yield from self.model.stream_wrapper(request_copy)
|
@@ -174,13 +174,10 @@ class Text(MessageData):
|
|
174
174
|
|
175
175
|
|
176
176
|
class Concept(MessageData):
|
177
|
-
def __init__(self, name: str, value: float = 1.0, id: str = None
|
178
|
-
user_id: str = None, app_id: str = None):
|
177
|
+
def __init__(self, name: str, value: float = 1.0, id: str = None):
|
179
178
|
self.name = name
|
180
179
|
self.value = value
|
181
180
|
self.id = id or Concept._concept_name_to_id(name)
|
182
|
-
self.user_id = user_id
|
183
|
-
self.app_id = app_id
|
184
181
|
|
185
182
|
@staticmethod
|
186
183
|
def _concept_name_to_id(name: str):
|
@@ -189,14 +186,14 @@ class Concept(MessageData):
|
|
189
186
|
return _name
|
190
187
|
|
191
188
|
def __repr__(self) -> str:
|
192
|
-
return f"Concept(id={self.id!r}, name={self.name!r}, value={self.value
|
189
|
+
return f"Concept(id={self.id!r}, name={self.name!r}, value={self.value})"
|
193
190
|
|
194
191
|
def to_proto(self):
|
195
|
-
return ConceptProto(id=self.id, name=self.name, value=self.value
|
192
|
+
return ConceptProto(id=self.id, name=self.name, value=self.value)
|
196
193
|
|
197
194
|
@classmethod
|
198
195
|
def from_proto(cls, proto: ConceptProto) -> "Concept":
|
199
|
-
return cls(id=proto.id, name=proto.name, value=proto.value
|
196
|
+
return cls(id=proto.id, name=proto.name, value=proto.value)
|
200
197
|
|
201
198
|
|
202
199
|
class Region(MessageData):
|
@@ -210,7 +207,6 @@ class Region(MessageData):
|
|
210
207
|
track_id: str = None,
|
211
208
|
text: str = None,
|
212
209
|
id: str = None,
|
213
|
-
value: float = None,
|
214
210
|
):
|
215
211
|
if proto_region is None:
|
216
212
|
self.proto = RegionProto()
|
@@ -227,8 +223,6 @@ class Region(MessageData):
|
|
227
223
|
self.track_id = track_id
|
228
224
|
if text:
|
229
225
|
self.text = text
|
230
|
-
if value:
|
231
|
-
self.value = value
|
232
226
|
self.id = id if id is not None else uuid.uuid4().hex
|
233
227
|
elif isinstance(proto_region, RegionProto):
|
234
228
|
self.proto = proto_region
|
@@ -328,19 +322,8 @@ class Region(MessageData):
|
|
328
322
|
point_proto = PointProto(col=x, row=y, z=z)
|
329
323
|
self.proto.region_info.point.CopyFrom(point_proto)
|
330
324
|
|
331
|
-
@property
|
332
|
-
def value(self) -> float:
|
333
|
-
"""Value of the region, typically used for confidence scores."""
|
334
|
-
return self.proto.value
|
335
|
-
|
336
|
-
@value.setter
|
337
|
-
def value(self, value: float):
|
338
|
-
if not isinstance(value, (int, float)):
|
339
|
-
raise TypeError(f"Expected int or float for value, got {type(value).__name__}")
|
340
|
-
self.proto.value = float(value)
|
341
|
-
|
342
325
|
def __repr__(self) -> str:
|
343
|
-
return f"Region(id={self.id},box={self.box or []}, concepts={self.concepts or None}, point={self.point or None}, mask={self.mask or None}, track_id={self.track_id or None}
|
326
|
+
return f"Region(id={self.id},box={self.box or []}, concepts={self.concepts or None}, point={self.point or None}, mask={self.mask or None}, track_id={self.track_id or None})"
|
344
327
|
|
345
328
|
def to_proto(self) -> RegionProto:
|
346
329
|
return self.proto
|
@@ -5,43 +5,88 @@ import fsspec
|
|
5
5
|
from clarifai.utils.logging import logger
|
6
6
|
|
7
7
|
|
8
|
-
def download_input(input):
|
9
|
-
_download_input_data(input.data)
|
8
|
+
def download_input(input, auth_helper=None):
|
9
|
+
_download_input_data(input.data, auth_helper=auth_helper)
|
10
10
|
if input.data.parts:
|
11
11
|
for i in range(len(input.data.parts)):
|
12
|
-
_download_input_data(input.data.parts[i].data)
|
12
|
+
_download_input_data(input.data.parts[i].data, auth_helper=auth_helper)
|
13
13
|
|
14
14
|
|
15
|
-
def _download_input_data(input_data):
|
15
|
+
def _download_input_data(input_data, auth_helper=None):
|
16
16
|
"""
|
17
17
|
This function will download any urls that are not already bytes.
|
18
|
+
|
19
|
+
Args:
|
20
|
+
input_data: The input data containing URLs to download
|
21
|
+
auth_helper: Optional ClarifaiAuthHelper instance for authentication
|
18
22
|
"""
|
23
|
+
# Get auth headers if auth_helper is provided
|
24
|
+
auth_kwargs = {}
|
25
|
+
if auth_helper is not None:
|
26
|
+
auth_kwargs = _get_auth_kwargs(auth_helper)
|
27
|
+
|
19
28
|
if input_data.image.url and not input_data.image.base64:
|
20
29
|
# Download the image
|
21
|
-
with fsspec.open(input_data.image.url, 'rb') as f:
|
30
|
+
with fsspec.open(input_data.image.url, 'rb', **auth_kwargs) as f:
|
22
31
|
input_data.image.base64 = f.read()
|
23
32
|
if input_data.video.url and not input_data.video.base64:
|
24
33
|
# Download the video
|
25
|
-
with fsspec.open(input_data.video.url, 'rb') as f:
|
34
|
+
with fsspec.open(input_data.video.url, 'rb', **auth_kwargs) as f:
|
26
35
|
input_data.video.base64 = f.read()
|
27
36
|
if input_data.audio.url and not input_data.audio.base64:
|
28
37
|
# Download the audio
|
29
|
-
with fsspec.open(input_data.audio.url, 'rb') as f:
|
38
|
+
with fsspec.open(input_data.audio.url, 'rb', **auth_kwargs) as f:
|
30
39
|
input_data.audio.base64 = f.read()
|
31
40
|
if input_data.text.url and not input_data.text.raw:
|
32
41
|
# Download the text
|
33
|
-
with fsspec.open(input_data.text.url, 'r') as f:
|
42
|
+
with fsspec.open(input_data.text.url, 'r', **auth_kwargs) as f:
|
34
43
|
input_data.text.raw = f.read()
|
35
44
|
|
36
45
|
|
37
|
-
def
|
46
|
+
def _get_auth_kwargs(auth_helper):
|
47
|
+
"""
|
48
|
+
Convert ClarifaiAuthHelper metadata to fsspec-compatible kwargs.
|
49
|
+
|
50
|
+
Args:
|
51
|
+
auth_helper: ClarifaiAuthHelper instance
|
52
|
+
|
53
|
+
Returns:
|
54
|
+
dict: kwargs to pass to fsspec.open() for authentication
|
55
|
+
"""
|
56
|
+
if auth_helper is None:
|
57
|
+
return {}
|
58
|
+
|
59
|
+
try:
|
60
|
+
# Get authentication metadata from the helper
|
61
|
+
metadata = auth_helper.metadata
|
62
|
+
|
63
|
+
# Convert gRPC metadata tuples to HTTP headers dict
|
64
|
+
headers = {}
|
65
|
+
for key, value in metadata:
|
66
|
+
# Skip non-auth headers
|
67
|
+
if key in ('authorization', 'x-clarifai-session-token'):
|
68
|
+
headers[key] = value
|
69
|
+
|
70
|
+
# Return fsspec-compatible kwargs
|
71
|
+
return {'client_kwargs': {'headers': headers}}
|
72
|
+
except Exception as e:
|
73
|
+
logger.warning(f"Failed to get authentication headers: {e}")
|
74
|
+
return {}
|
75
|
+
|
76
|
+
|
77
|
+
def ensure_urls_downloaded(request, max_threads=128, auth_helper=None):
|
38
78
|
"""
|
39
79
|
This function will download any urls that are not already bytes and parallelize with a thread pool.
|
80
|
+
|
81
|
+
Args:
|
82
|
+
request: The request containing inputs with URLs to download
|
83
|
+
max_threads: Maximum number of threads to use for parallel downloads
|
84
|
+
auth_helper: Optional ClarifaiAuthHelper instance for authentication
|
40
85
|
"""
|
41
86
|
with concurrent.futures.ThreadPoolExecutor(max_workers=max_threads) as executor:
|
42
87
|
futures = []
|
43
88
|
for input in request.inputs:
|
44
|
-
futures.append(executor.submit(download_input, input))
|
89
|
+
futures.append(executor.submit(download_input, input, auth_helper))
|
45
90
|
for future in concurrent.futures.as_completed(futures):
|
46
91
|
try:
|
47
92
|
future.result()
|
@@ -0,0 +1,126 @@
|
|
1
|
+
clarifai/__init__.py,sha256=dX3Oi94KTZEq35Tm3ca-zFtWYOWbwopKBoxPCzh9NFo,23
|
2
|
+
clarifai/cli.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
+
clarifai/errors.py,sha256=GXa6D4v_L404J83jnRNFPH7s-1V9lk7w6Ws99f1g-AY,2772
|
4
|
+
clarifai/versions.py,sha256=ecSuEB_nOL2XSoYHDw2n23XUbm_KPOGjudMXmQrGdS8,224
|
5
|
+
clarifai/cli/README.md,sha256=YGApHfeUyu5P0Pdth-mqQCQftWHDxz6bugDlvDXDhOE,1942
|
6
|
+
clarifai/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
+
clarifai/cli/__main__.py,sha256=7nPbLW7Jr2shkgMPvnxpn4xYGMvIcnqluJ69t9w4H_k,74
|
8
|
+
clarifai/cli/base.py,sha256=mzfAHRhon6tKntpxk241GD-Sjrb2-V99nAOasElLuuw,8254
|
9
|
+
clarifai/cli/compute_cluster.py,sha256=8Xss0Obrp6l1XuxJe0luOqU_pf8vXGDRi6jyIe8qR6k,2282
|
10
|
+
clarifai/cli/deployment.py,sha256=9C4I6_kyMxRkWl6h681wc79-3mAtDHtTUaxRv05OZMs,4262
|
11
|
+
clarifai/cli/model.py,sha256=71u7JS0xnxQOLp3s9cKGbT1hyhf1CIVxMeFMU2fiLTM,31553
|
12
|
+
clarifai/cli/nodepool.py,sha256=H6OIdUW_EiyDUwZogzEDoYmVwEjLMsgoDlPyE7gjIuU,4245
|
13
|
+
clarifai/cli/pipeline.py,sha256=M8gW72IB5hx1OIf0pOytZhnw50euPnXxW4vuZ9Fqyqw,5477
|
14
|
+
clarifai/cli/pipeline_step.py,sha256=eOxU4MdPBuB01A00Rz6m9THLyTaTLOTKwGwSVyegkyI,3808
|
15
|
+
clarifai/cli/templates/__init__.py,sha256=HbMlZuYOMyVJde73ijNAevmSRUpIttGlHdwyO4W-JOs,44
|
16
|
+
clarifai/cli/templates/model_templates.py,sha256=_ZonIBnY9KKSJY31KZbUys_uN_k_Txu7Dip12KWfmSU,9633
|
17
|
+
clarifai/cli/templates/pipeline_step_templates.py,sha256=HU1BoU7wG71MviQAvyecxT_qo70XhTtPGYtoIQ-U-l0,1663
|
18
|
+
clarifai/cli/templates/pipeline_templates.py,sha256=mfHrEoRxICIv00zxfgIct2IpxcMmZ6zjHG8WLF1TPcI,4409
|
19
|
+
clarifai/client/__init__.py,sha256=NhpNFRJY6mTi8ca-5hUeTEmYeDKHDNXY48FN63pDuos,703
|
20
|
+
clarifai/client/app.py,sha256=1M9XDsPWIEsj0g-mgIeZ9Mvkt85UHSbrv6pEr-QKfNg,41423
|
21
|
+
clarifai/client/base.py,sha256=rXQlB0BXbKLOgLVJW_2axYh0Vd_F0BbgJE_DXTQoG4U,9109
|
22
|
+
clarifai/client/compute_cluster.py,sha256=ViPyh-FibXL1J0ypsVOTaQnR1ymKohmZEuA13RwA-hc,10254
|
23
|
+
clarifai/client/dataset.py,sha256=OgdpZkQ_vYmRxL8-qphcNozpvPV1bWTlte9Jv6UkKb8,35299
|
24
|
+
clarifai/client/deployment.py,sha256=QBf0tzkKBEpzNgmOEmWUJMOlVWdFEFc70Y44o8y75Gs,2875
|
25
|
+
clarifai/client/input.py,sha256=jpX47qwn7aUBBIEuSSLHF5jk70XaWEh0prD065c9b-E,51205
|
26
|
+
clarifai/client/lister.py,sha256=1YEm2suNxPaJO4x9V5szgD_YX6N_00vgSO-7m0HagY8,2208
|
27
|
+
clarifai/client/model.py,sha256=Oh2zCa7XA_pBAEx9D8ME81H_BBqD7wJYoeB5CEjlI5E,89989
|
28
|
+
clarifai/client/model_client.py,sha256=4gIS0mKBdiNMA1x_6Wo6H7WbfLsmQix64EpONcQjQV4,37129
|
29
|
+
clarifai/client/module.py,sha256=jLViQYvVV3FmRN_ivvbk83uwsx7CgYGeEx4dYAr6yD4,4537
|
30
|
+
clarifai/client/nodepool.py,sha256=Y5zQ0JLdTjAp2TmVnx7AAOwaB2YUslk3nl7s6BQ90FQ,16415
|
31
|
+
clarifai/client/runner.py,sha256=5xCiqByGGscfNm0IjHelhDTx8-9l8G0C3HL-3YZogK8,2253
|
32
|
+
clarifai/client/search.py,sha256=3LLfATrdU43a0mRNITmJV-E53bhfafZkYsbwkTtlnyU,15661
|
33
|
+
clarifai/client/user.py,sha256=YDAXSOh7ACsvCjVctugiTu8MXFN_TDBoXuEKGXv_uHg,21997
|
34
|
+
clarifai/client/workflow.py,sha256=Bqh8lAmJcSbviJebckchTxucYlU11UQEhFSov7elpsk,13417
|
35
|
+
clarifai/client/auth/__init__.py,sha256=7EwR0NrozkAUwpUnCsqXvE_p0wqx_SelXlSpKShKJK0,136
|
36
|
+
clarifai/client/auth/helper.py,sha256=h6R4zsDEY6C1VmcxjYrIsFPOO_ujEjRR_JtpQ5WVuo4,16117
|
37
|
+
clarifai/client/auth/register.py,sha256=xIg1OoZ_GGnc0KQKII-R6q_cKN1JXW3BGcU2eyS-Kkc,871
|
38
|
+
clarifai/client/auth/stub.py,sha256=nKod8eNWaBnmsaNZ59dEt42TTcwC9mMgCzEMYPZggxc,9537
|
39
|
+
clarifai/constants/base.py,sha256=ogmFSZYoF0YhGjHg5aiOc3MLqPr_poKAls6xaD0_C3U,89
|
40
|
+
clarifai/constants/dataset.py,sha256=9saFE_VxCTCMlPTQbOU4KM_SzN_TQjwsrsFnpsc_Epo,556
|
41
|
+
clarifai/constants/input.py,sha256=WcHwToUVIK9ItAhDefaSohQHCLNeR55PSjZ0BFnoZ3U,28
|
42
|
+
clarifai/constants/model.py,sha256=ghcdvKIbx-g22H9RwxmMfUt1CrKz5Oa-iTExt0VpUVU,463
|
43
|
+
clarifai/constants/rag.py,sha256=WcHwToUVIK9ItAhDefaSohQHCLNeR55PSjZ0BFnoZ3U,28
|
44
|
+
clarifai/constants/search.py,sha256=yYEqTaFg-KdnpJE_Ytp-EPVHIIC395iNtZrpVlLIf4o,101
|
45
|
+
clarifai/constants/workflow.py,sha256=cECq1xdvf44MCdtK2AbkiuuwhyL-6OWZdQfYbsLKy_o,33
|
46
|
+
clarifai/datasets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
47
|
+
clarifai/datasets/export/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
48
|
+
clarifai/datasets/export/inputs_annotations.py,sha256=1PFjIw30dRO9NSUa_yvox_07W30tlAnrk4mEAVgfXBY,10980
|
49
|
+
clarifai/datasets/upload/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
50
|
+
clarifai/datasets/upload/base.py,sha256=8b13tmAokgZVH0d-HRpU-O15Swa46eJy2Fp6zU7jQkU,2441
|
51
|
+
clarifai/datasets/upload/features.py,sha256=Yy0MP1F_ev2IbWnEyXDLt5SaEb11bXSUu5ux8tD1oxY,2115
|
52
|
+
clarifai/datasets/upload/image.py,sha256=0Fs02KK1WuDE24RAJ2ZOdktva1iOqzE25J9jJJYJUDk,10122
|
53
|
+
clarifai/datasets/upload/multimodal.py,sha256=IZYjmyxVJpNjwyNyzptQENZcCKDbdTU_t70QSdK23Ec,2762
|
54
|
+
clarifai/datasets/upload/text.py,sha256=L2IEbickNhZcmrhbBfQciCXQf4JPcqWulRWJ7HDpJLc,2482
|
55
|
+
clarifai/datasets/upload/utils.py,sha256=VdTn7AqIWB8D60rX9YD4T-4fi-7xMEocHATJvvaPjxQ,10508
|
56
|
+
clarifai/datasets/upload/loaders/README.md,sha256=aNRutSCTzLp2ruIZx74ZkN5AxpzwKOxMa7OzabnKpwg,2980
|
57
|
+
clarifai/datasets/upload/loaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
58
|
+
clarifai/datasets/upload/loaders/coco_captions.py,sha256=v6e8lh6BCUFOlurnvDfBEY-drl6JhpIE9nt2Qnz7XQ8,1623
|
59
|
+
clarifai/datasets/upload/loaders/coco_detection.py,sha256=0FsGV84MT0IkerXoe9hdxQSr9wd96j9cPOne-rhzBPw,3190
|
60
|
+
clarifai/datasets/upload/loaders/imagenet_classification.py,sha256=w2Tiot_YK0QYiyAVbWSxoKthZgUsRo9LiWWY2lVzPrQ,2247
|
61
|
+
clarifai/datasets/upload/loaders/xview_detection.py,sha256=dukodZRdyVH-s5MtmCDtKwseKGwSCWAK2Uwuwa6kJu4,8035
|
62
|
+
clarifai/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
63
|
+
clarifai/models/api.py,sha256=YhbGqZMC5mH_ZqnbaEmgfJdrIhSkLevpWih8ZqC3BL4,12193
|
64
|
+
clarifai/modules/README.md,sha256=mx8pVx6cPp-pP4LcFPT_nX3ngGmhygVK0WiXeD3cbIo,367
|
65
|
+
clarifai/modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
66
|
+
clarifai/modules/css.py,sha256=Jg67jXo2mZoGQp7M-At74ywyk4cN90s-aJTLjfqsaB4,2176
|
67
|
+
clarifai/modules/pages.py,sha256=DZVO7YjIjYQdUyHYF-zxLkc5qkYC5KNnUxGiKQGo3Uk,1509
|
68
|
+
clarifai/modules/style.css,sha256=j7FNPZVhLPj35vvBksAJ90RuX5sLuqzDR5iM2WIEhiA,6073
|
69
|
+
clarifai/rag/__init__.py,sha256=wu3PzAzo7uqgrEzuaC9lY_3gj1HFiR3GU3elZIKTT5g,40
|
70
|
+
clarifai/rag/rag.py,sha256=EG3GoFrHFCmA70Tz49_0Jo1-3WIaHSgWGHecPeErcdc,14170
|
71
|
+
clarifai/rag/utils.py,sha256=_gVZdABuMnraCKViLruV75x0F3IpgFXN6amYSGE5_xc,4462
|
72
|
+
clarifai/runners/__init__.py,sha256=wXLaSljH7qLeJCrZdKEnlQh2tNqTQAIZKWOu2rZ6wGs,279
|
73
|
+
clarifai/runners/server.py,sha256=9qVAs8pRHmtyY0RCNIQ1uP8nqDADIFZ03LnkoDt1h4U,4692
|
74
|
+
clarifai/runners/dockerfile_template/Dockerfile.template,sha256=DUH7F0-uLOV0LTjnPde-9chSzscAAxBAwjTxi9b_l9g,2425
|
75
|
+
clarifai/runners/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
76
|
+
clarifai/runners/models/dummy_openai_model.py,sha256=pcmAVbqTTGG4J3BLVjKfvM_SQ-GET_XexIUdLcr9Zvo,8373
|
77
|
+
clarifai/runners/models/mcp_class.py,sha256=RdKn7rW4vYol0VRDZiLTSMfkqjLhO1ijXAQ0Rq0Jfnw,6647
|
78
|
+
clarifai/runners/models/model_builder.py,sha256=D47H1zm3_Xr-nlPYb_1dY8dxlMiM93kU4QYGEtyxK88,63403
|
79
|
+
clarifai/runners/models/model_class.py,sha256=-euUF-eHUi4KXR_e1pIwvToDZ13CM6TSz2FolzildjM,16069
|
80
|
+
clarifai/runners/models/model_run_locally.py,sha256=6-6WjEKc0ba3gAv4wOLdMs2XOzS3b-2bZHJS0wdVqJY,20088
|
81
|
+
clarifai/runners/models/model_runner.py,sha256=CE5UkxW8wCm-g8dn_i1TNkZDORpOGRoVwZK-Uk75Xws,8407
|
82
|
+
clarifai/runners/models/model_servicer.py,sha256=415RqiXCPH-1WgFHrtZMDH1nb8gaQDpVlrQ_tvtbjOg,4523
|
83
|
+
clarifai/runners/models/openai_class.py,sha256=aXlk5W6LWkh-A4eZYi74DeLW0i_86_9DYYGxpJHXI0w,6688
|
84
|
+
clarifai/runners/models/visual_classifier_class.py,sha256=1ZoLfCT2crrgRbejjTMAIwpTRgQMiH9N9yflOVpFxSg,2721
|
85
|
+
clarifai/runners/models/visual_detector_class.py,sha256=ky4oFAkGCKPpGPdgaOso-n6D3HcmnbKee_8hBsNiV8U,2883
|
86
|
+
clarifai/runners/pipeline_steps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
87
|
+
clarifai/runners/pipeline_steps/pipeline_step_builder.py,sha256=E6Ce3b0RolYLMJHaUrKukphD7ndNZafZ8gIsaONiYUk,21047
|
88
|
+
clarifai/runners/pipelines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
89
|
+
clarifai/runners/pipelines/pipeline_builder.py,sha256=z_bCwjwQPFa_1AYkorhh5r6t6r5hC5K2D8Z1LTEzIpg,12801
|
90
|
+
clarifai/runners/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
91
|
+
clarifai/runners/utils/code_script.py,sha256=4wkInN_7MgCvMt9KLJA5_13iF5UFdeQLEhs0T5GvsHQ,13830
|
92
|
+
clarifai/runners/utils/const.py,sha256=MK7lTzzJKbOiyiUtG_jlJXfz_xNKMn5LjkQ9vjbttXE,1538
|
93
|
+
clarifai/runners/utils/data_utils.py,sha256=HRpMYR2O0OiDpXXhOManLHTeomC4bFnXMHVAiT_12yE,20856
|
94
|
+
clarifai/runners/utils/loader.py,sha256=K5Y8MPbIe5STw2gDnrL8KqFgKNxEo7bz-RV0ip1T4PM,10900
|
95
|
+
clarifai/runners/utils/method_signatures.py,sha256=qdHaO8ZIgP6BBXXMhMPhcQ46dse-XMP2t4VJCNG7O3Q,18335
|
96
|
+
clarifai/runners/utils/model_utils.py,sha256=Cn3_89ZMhIR6f61H-btcK_Luwq0CMAx5fMxPxwngo68,4530
|
97
|
+
clarifai/runners/utils/openai_convertor.py,sha256=ZlIrvvfHttD_DavLvmKZdL8gNq_TQvQtZVnYamwdWz4,8248
|
98
|
+
clarifai/runners/utils/pipeline_validation.py,sha256=RWWWUA3mNCXHCSNpuofMGfXfWEYe7LrYKwIc-1VFvQs,6444
|
99
|
+
clarifai/runners/utils/serializers.py,sha256=pI7GqMTC0T3Lu_X8v8TO4RiplO-gC_49Ns37jYwsPtg,7908
|
100
|
+
clarifai/runners/utils/url_fetcher.py,sha256=blKgROquJjZc4e2tLLjM3eUXA6grjdJISHK_8j2Ducs,3379
|
101
|
+
clarifai/runners/utils/data_types/__init__.py,sha256=iBtmPkIoLK9ew6ZiXElGt2YBBTDLEA0fmxE_eOYzvhk,478
|
102
|
+
clarifai/runners/utils/data_types/data_types.py,sha256=UBHTNPshr94qUs2KqkYis0VlArm23rcSG_EyO_Uetgc,19823
|
103
|
+
clarifai/schema/search.py,sha256=o9-ct8ulLZByB3RCVwZWPgaDwdcW7cM5s-g8oyAz89s,2421
|
104
|
+
clarifai/urls/helper.py,sha256=z6LnLGgLHxD8scFtyRdxqYIRJNhxqPkfLe53UtTLUBY,11727
|
105
|
+
clarifai/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
106
|
+
clarifai/utils/cli.py,sha256=7lHajIsWzyEU7jfgH1nykwYG63wcHCZ3ep7a6amWZH4,5413
|
107
|
+
clarifai/utils/config.py,sha256=jMSWYxJfp_D8eoGqz-HTdsngn5bg_1ymjLidYz6rdLA,7073
|
108
|
+
clarifai/utils/constants.py,sha256=nvKNAOnfvHza03mYHVLfyOfm_AcFiNKr2CzwyEQgoQI,2110
|
109
|
+
clarifai/utils/logging.py,sha256=0we53uTqUvzrulC86whu-oeWNxn1JjJL0OQ98Bwf9vo,15198
|
110
|
+
clarifai/utils/misc.py,sha256=x7JP8oxU672Z9yAav47Y1anFiL4RD8WvlKBHMVlbyZM,3137
|
111
|
+
clarifai/utils/model_train.py,sha256=0XSAoTkSsrwf4f-W9yw2mkXZtkal7LBLJSoi86CFCn4,9250
|
112
|
+
clarifai/utils/protobuf.py,sha256=VMhnNsPuWQ16VarKm8BOr5zccXMe26UlrxdJxIzEZNM,6220
|
113
|
+
clarifai/utils/evaluation/__init__.py,sha256=PYkurUrXrGevByj7RFb6CoU1iC7fllyQSfnnlo9WnY8,69
|
114
|
+
clarifai/utils/evaluation/helpers.py,sha256=0t6eIDXeZEoiVvnmHTnsIF_-v4BzrQW1hFaqc_psifU,21079
|
115
|
+
clarifai/utils/evaluation/main.py,sha256=N_sfRuMjHrUeuWN0Pzms65M1PbkQkgYg3WoQVaDR1Jw,17764
|
116
|
+
clarifai/utils/evaluation/testset_annotation_parser.py,sha256=Nmodfi5BYFYEbybWcC8tmU5-wtwRBsWIbnpd3OvKSmA,5414
|
117
|
+
clarifai/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
118
|
+
clarifai/workflows/export.py,sha256=HvUYG9N_-UZoRR0-_tdGbZ950_AeBqawSppgUxQebR0,1913
|
119
|
+
clarifai/workflows/utils.py,sha256=ESL3INcouNcLKCh-nMpfXX-YbtCzX7tz7hT57_RGQ3M,2079
|
120
|
+
clarifai/workflows/validate.py,sha256=UhmukyHkfxiMFrPPeBdUTiCOHQT5-shqivlBYEyKTlU,2931
|
121
|
+
clarifai-11.5.4.dist-info/licenses/LICENSE,sha256=mUqF_d12-qE2n41g7C5_sq-BMLOcj6CNN-jevr15YHU,555
|
122
|
+
clarifai-11.5.4.dist-info/METADATA,sha256=9PlKYam9cZ_1StX7ECiTXQMpS1ci4LjgvKhNi59W-8c,22736
|
123
|
+
clarifai-11.5.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
124
|
+
clarifai-11.5.4.dist-info/entry_points.txt,sha256=X9FZ4Z-i_r2Ud1RpZ9sNIFYuu_-9fogzCMCRUD9hyX0,51
|
125
|
+
clarifai-11.5.4.dist-info/top_level.txt,sha256=wUMdCQGjkxaynZ6nZ9FAnvBUCgp5RJUVFSy2j-KYo0s,9
|
126
|
+
clarifai-11.5.4.dist-info/RECORD,,
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|