runnable 0.28.0__py3-none-any.whl → 0.28.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.
@@ -144,14 +144,10 @@ class GenericJobExecutor(BaseJobExecutor):
144
144
  logger.info("No catalog settings found")
145
145
  return None
146
146
 
147
- compute_data_folder = self._context.catalog_handler.compute_data_folder
148
-
149
147
  data_catalogs = []
150
148
  for name_pattern in catalog_settings:
151
149
  data_catalog = self._context.catalog_handler.put(
152
150
  name=name_pattern,
153
- run_id=self._context.run_id,
154
- compute_data_folder=compute_data_folder,
155
151
  )
156
152
 
157
153
  logger.debug(f"Added data catalog: {data_catalog} to job log")
@@ -168,7 +164,5 @@ class GenericJobExecutor(BaseJobExecutor):
168
164
  )
169
165
  task_console.save_text(log_file_name)
170
166
  # Put the log file in the catalog
171
- self._context.catalog_handler.put(
172
- name=log_file_name, run_id=self._context.run_id
173
- )
167
+ self._context.catalog_handler.put(name=log_file_name)
174
168
  os.remove(log_file_name)
@@ -34,6 +34,19 @@ class ImagePullPolicy(str, Enum):
34
34
  NEVER = "Never"
35
35
 
36
36
 
37
+ class TolerationOperator(str, Enum):
38
+ EXISTS = "Exists"
39
+ EQUAL = "Equal"
40
+
41
+
42
+ class Toleration(BaseModel):
43
+ key: str
44
+ operator: TolerationOperator = TolerationOperator.EQUAL
45
+ value: Optional[str]
46
+ effect: str
47
+ toleration_seconds: Optional[int] = Field(default=None)
48
+
49
+
37
50
  class LabelSelectorRequirement(BaseModel):
38
51
  key: str
39
52
  operator: Operator
@@ -124,7 +137,7 @@ class PVCVolume(BaseModel):
124
137
  class K8sTemplateSpec(BaseModel):
125
138
  active_deadline_seconds: int = Field(default=60 * 60 * 2) # 2 hours
126
139
  node_selector: Optional[dict[str, str]] = None
127
- tolerations: Optional[list[dict[str, str]]] = None
140
+ tolerations: Optional[list[Toleration]] = None
128
141
  volumes: Optional[list[HostPathVolume | PVCVolume]] = Field(
129
142
  default_factory=lambda: []
130
143
  )
@@ -260,7 +273,7 @@ class GenericK8sJobExecutor(GenericJobExecutor):
260
273
  tolerations = None
261
274
  if self.job_spec.template.spec.tolerations:
262
275
  tolerations = [
263
- self._client.V1Toleration(**toleration)
276
+ self._client.V1Toleration(**toleration.model_dump(by_alias=True))
264
277
  for toleration in self.job_spec.template.spec.tolerations
265
278
  ]
266
279
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: runnable
3
- Version: 0.28.0
3
+ Version: 0.28.2
4
4
  Summary: Add your description here
5
5
  Author-email: "Vammi, Vijay" <vijay.vammi@astrazeneca.com>
6
6
  License-File: LICENSE
@@ -7,8 +7,8 @@ extensions/catalog/minio.py,sha256=R3GvfCxN1GTcs4bQIAWh79_GHDTVd14gnpKlzwFeKUI,2
7
7
  extensions/catalog/pyproject.toml,sha256=lLNxY6v04c8I5QK_zKw_E6sJTArSJRA_V-79ktaA3Hk,279
8
8
  extensions/catalog/s3.py,sha256=Sw5t8_kVRprn3uGGJCiHn7M9zw1CLaCOFj6YErtfG0o,287
9
9
  extensions/job_executor/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- extensions/job_executor/__init__.py,sha256=3zS2m6dg-L6SkKfL0kr4AxVUVmVJcepV6eipyMvQR6s,6006
11
- extensions/job_executor/k8s.py,sha256=V5k6Rnf_sAFqptVbCrWs_x5sl3x3fSHwO96IZoiJxKU,15342
10
+ extensions/job_executor/__init__.py,sha256=E2R6GV5cZTlZdqA5SVJ6ajZFh4oruM0k8AKHkpOZ3W8,5772
11
+ extensions/job_executor/k8s.py,sha256=nIEiIUOYYwAYKcl0DboWnsL55lM-GUUXoirikb3BVps,15650
12
12
  extensions/job_executor/k8s_job_spec.yaml,sha256=7aFpxHdO_p6Hkc3YxusUOuAQTD1Myu0yTPX9DrhxbOg,1158
13
13
  extensions/job_executor/local.py,sha256=FvxTk0vyxdrbLOAyNkLyjvmmowypabWOSITQBK_ffVE,1907
14
14
  extensions/job_executor/local_container.py,sha256=hyFnpicCp3_87mZsW64P6KSVbz7XMLjwJUWVjeCJ0_I,6627
@@ -56,8 +56,8 @@ runnable/sdk.py,sha256=T1nqDpLN9fULvvU9L-oY0EHqYdKUI9qk7oekLynm02Y,33568
56
56
  runnable/secrets.py,sha256=PXcEJw-4WPzeWRLfsatcPPyr1zkqgHzdRWRcS9vvpvM,2354
57
57
  runnable/tasks.py,sha256=X6xijut7ffwpfYDcXoN6y0AcRVd7fWHs676DJ00Kma4,29134
58
58
  runnable/utils.py,sha256=hBr7oGwGL2VgfITlQCTz-a1iwvvf7Mfl-HY8UdENZac,19929
59
- runnable-0.28.0.dist-info/METADATA,sha256=Nxwf20GCaSSHfvxOqUmUiM1zuE3CgSd1Vq2wH3s9Ybg,10047
60
- runnable-0.28.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
61
- runnable-0.28.0.dist-info/entry_points.txt,sha256=ioMbWojILtdibYVgh1jXJ00SpK-tX3gy7oVGDq61cSk,1839
62
- runnable-0.28.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
63
- runnable-0.28.0.dist-info/RECORD,,
59
+ runnable-0.28.2.dist-info/METADATA,sha256=_cIg_HPnrDO-LUIUuH2riE8g2oPGzbvEUrRkdWYsTEI,10047
60
+ runnable-0.28.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
61
+ runnable-0.28.2.dist-info/entry_points.txt,sha256=ioMbWojILtdibYVgh1jXJ00SpK-tX3gy7oVGDq61cSk,1839
62
+ runnable-0.28.2.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
63
+ runnable-0.28.2.dist-info/RECORD,,