clarifai 11.1.2__py3-none-any.whl → 11.1.3__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_builder.py +31 -30
- clarifai/runners/models/model_run_locally.py +1 -1
- {clarifai-11.1.2.dist-info → clarifai-11.1.3.dist-info}/METADATA +1 -1
- {clarifai-11.1.2.dist-info → clarifai-11.1.3.dist-info}/RECORD +9 -9
- {clarifai-11.1.2.dist-info → clarifai-11.1.3.dist-info}/LICENSE +0 -0
- {clarifai-11.1.2.dist-info → clarifai-11.1.3.dist-info}/WHEEL +0 -0
- {clarifai-11.1.2.dist-info → clarifai-11.1.3.dist-info}/entry_points.txt +0 -0
- {clarifai-11.1.2.dist-info → clarifai-11.1.3.dist-info}/top_level.txt +0 -0
clarifai/__init__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "11.1.
|
1
|
+
__version__ = "11.1.3"
|
@@ -30,19 +30,6 @@ dependencies = [
|
|
30
30
|
'torch',
|
31
31
|
'clarifai',
|
32
32
|
]
|
33
|
-
# Escape dependency names for regex
|
34
|
-
dep_pattern = '|'.join(map(re.escape, dependencies))
|
35
|
-
# All possible version specifiers
|
36
|
-
version_specifiers = '==|>=|<=|!=|~=|>|<'
|
37
|
-
# Compile a regex pattern with verbose mode for readability
|
38
|
-
pattern = re.compile(r"""
|
39
|
-
^\s* # Start of line, optional whitespace
|
40
|
-
(?P<dependency>""" + dep_pattern + r""") # Dependency name
|
41
|
-
\s* # Optional whitespace
|
42
|
-
(?P<specifier>""" + version_specifiers + r""")? # Optional version specifier
|
43
|
-
\s* # Optional whitespace
|
44
|
-
(?P<version>[^\s;]+)? # Optional version (up to space or semicolon)
|
45
|
-
""", re.VERBOSE)
|
46
33
|
|
47
34
|
|
48
35
|
def _clear_line(n: int = 1) -> None:
|
@@ -310,25 +297,41 @@ class ModelBuilder:
|
|
310
297
|
)
|
311
298
|
return self.client.STUB.PostModels(request)
|
312
299
|
|
300
|
+
def _match_req_line(self, line):
|
301
|
+
line = line.strip()
|
302
|
+
if not line or line.startswith('#'):
|
303
|
+
return None, None
|
304
|
+
# split on whitespace followed by #
|
305
|
+
line = re.split(r'\s+#', line)[0]
|
306
|
+
if "==" in line:
|
307
|
+
pkg, version = line.split("==")
|
308
|
+
elif ">=" in line:
|
309
|
+
pkg, version = line.split(">=")
|
310
|
+
elif ">" in line:
|
311
|
+
pkg, version = line.split(">")
|
312
|
+
elif "<=" in line:
|
313
|
+
pkg, version = line.split("<=")
|
314
|
+
elif "<" in line:
|
315
|
+
pkg, version = line.split("<")
|
316
|
+
else:
|
317
|
+
pkg, version = line, None # No version specified
|
318
|
+
for dep in dependencies:
|
319
|
+
if dep == pkg:
|
320
|
+
if dep == 'torch' and line.find(
|
321
|
+
'whl/cpu') > 0: # Ignore torch-cpu whl files, use base mage.
|
322
|
+
return None, None
|
323
|
+
return dep.strip(), version.strip() if version else None
|
324
|
+
return None, None
|
325
|
+
|
313
326
|
def _parse_requirements(self):
|
314
327
|
dependencies_version = {}
|
315
328
|
with open(os.path.join(self.folder, 'requirements.txt'), 'r') as file:
|
316
329
|
for line in file:
|
317
330
|
# Skip empty lines and comments
|
318
|
-
|
319
|
-
if
|
331
|
+
dependency, version = self._match_req_line(line)
|
332
|
+
if dependency is None:
|
320
333
|
continue
|
321
|
-
|
322
|
-
line = re.split(r'\s+#', line)[0]
|
323
|
-
match = pattern.match(line)
|
324
|
-
if match:
|
325
|
-
dependency = match.group('dependency')
|
326
|
-
version = match.group('version')
|
327
|
-
if dependency == "torch" and line.find(
|
328
|
-
'whl/cpu') > 0: # Ignore torch-cpu whl files, use base mage.
|
329
|
-
continue
|
330
|
-
|
331
|
-
dependencies_version[dependency] = version if version else None
|
334
|
+
dependencies_version[dependency] = version if version else None
|
332
335
|
return dependencies_version
|
333
336
|
|
334
337
|
def create_dockerfile(self):
|
@@ -395,10 +398,8 @@ class ModelBuilder:
|
|
395
398
|
with open(os.path.join(self.folder, 'requirements.txt'), 'r') as file:
|
396
399
|
for line in file:
|
397
400
|
# if the line without whitespace is "clarifai"
|
398
|
-
|
399
|
-
|
400
|
-
match = pattern.match(matchline)
|
401
|
-
if match and match.group('dependency') == "clarifai":
|
401
|
+
dependency, version = self._match_req_line(line)
|
402
|
+
if dependency and dependency == "clarifai":
|
402
403
|
lines.append(line.replace("clarifai", f"clarifai=={CLIENT_VERSION}"))
|
403
404
|
else:
|
404
405
|
lines.append(line)
|
@@ -475,7 +475,7 @@ def main(model_path,
|
|
475
475
|
keep_env=False,
|
476
476
|
keep_image=False):
|
477
477
|
|
478
|
-
if not os.environ
|
478
|
+
if not os.environ.get("CLARIFAI_PAT", None):
|
479
479
|
logger.error(
|
480
480
|
"CLARIFAI_PAT environment variable is not set! Please set your PAT in the 'CLARIFAI_PAT' environment variable."
|
481
481
|
)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
clarifai/__init__.py,sha256=
|
1
|
+
clarifai/__init__.py,sha256=zXnN8vTFtOShwHlre_qBxRyaLcXDT3l9V0CuoZEkV5Y,23
|
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
|
@@ -66,9 +66,9 @@ clarifai/runners/server.py,sha256=Wp3bUHNudFV3Ew2egU7X6f3TCTbBgV__15Rw2yd9jY0,36
|
|
66
66
|
clarifai/runners/dockerfile_template/Dockerfile.template,sha256=oY_1aOYxQm9XdrV31PfMHGZIQKqEvTJDhPRTIR8Tr4o,3091
|
67
67
|
clarifai/runners/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
68
68
|
clarifai/runners/models/base_typed_model.py,sha256=0QCWxch8CcyJSKvE1D4PILd2RSnQZHTmx4DXlQQ6dpo,7856
|
69
|
-
clarifai/runners/models/model_builder.py,sha256=
|
69
|
+
clarifai/runners/models/model_builder.py,sha256=R5Otrr3Pxn409k8Tlam8I50LM_wohJcfWX8_NlLHzV4,29461
|
70
70
|
clarifai/runners/models/model_class.py,sha256=9JSPAr4U4K7xI0kSl-q0mHB06zknm2OR-8XIgBCto94,1611
|
71
|
-
clarifai/runners/models/model_run_locally.py,sha256=
|
71
|
+
clarifai/runners/models/model_run_locally.py,sha256=MGfWe0_IO6OMc8CRD8HpVDUKX7spcFVU6wXukml4OXs,20563
|
72
72
|
clarifai/runners/models/model_runner.py,sha256=PyxwK-33hLlhkD07tTXkjWZ_iNlZHl9_8AZ2W7WfExI,6097
|
73
73
|
clarifai/runners/models/model_servicer.py,sha256=jtQmtGeQlvQ5ttMvVw7CMnNzq-rLkTaxR2IWF9SnHwk,2808
|
74
74
|
clarifai/runners/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -93,9 +93,9 @@ clarifai/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
|
|
93
93
|
clarifai/workflows/export.py,sha256=vICRhIreqDSShxLKjHNM2JwzKsf1B4fdXB0ciMcA70k,1945
|
94
94
|
clarifai/workflows/utils.py,sha256=nGeB_yjVgUO9kOeKTg4OBBaBz-AwXI3m-huSVj-9W18,1924
|
95
95
|
clarifai/workflows/validate.py,sha256=yJq03MaJqi5AK3alKGJJBR89xmmjAQ31sVufJUiOqY8,2556
|
96
|
-
clarifai-11.1.
|
97
|
-
clarifai-11.1.
|
98
|
-
clarifai-11.1.
|
99
|
-
clarifai-11.1.
|
100
|
-
clarifai-11.1.
|
101
|
-
clarifai-11.1.
|
96
|
+
clarifai-11.1.3.dist-info/LICENSE,sha256=mUqF_d12-qE2n41g7C5_sq-BMLOcj6CNN-jevr15YHU,555
|
97
|
+
clarifai-11.1.3.dist-info/METADATA,sha256=5ZiW5qdV2Gh6wwxOgt_Sm_XToJRMmZgoerv-xWpYOPA,22419
|
98
|
+
clarifai-11.1.3.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
99
|
+
clarifai-11.1.3.dist-info/entry_points.txt,sha256=X9FZ4Z-i_r2Ud1RpZ9sNIFYuu_-9fogzCMCRUD9hyX0,51
|
100
|
+
clarifai-11.1.3.dist-info/top_level.txt,sha256=wUMdCQGjkxaynZ6nZ9FAnvBUCgp5RJUVFSy2j-KYo0s,9
|
101
|
+
clarifai-11.1.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|