runnable 0.28.1__tar.gz → 0.28.3__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. {runnable-0.28.1 → runnable-0.28.3}/PKG-INFO +1 -1
  2. {runnable-0.28.1 → runnable-0.28.3}/extensions/job_executor/k8s.py +25 -9
  3. {runnable-0.28.1 → runnable-0.28.3}/pyproject.toml +1 -1
  4. {runnable-0.28.1 → runnable-0.28.3}/.gitignore +0 -0
  5. {runnable-0.28.1 → runnable-0.28.3}/LICENSE +0 -0
  6. {runnable-0.28.1 → runnable-0.28.3}/README.md +0 -0
  7. {runnable-0.28.1 → runnable-0.28.3}/extensions/README.md +0 -0
  8. {runnable-0.28.1 → runnable-0.28.3}/extensions/__init__.py +0 -0
  9. {runnable-0.28.1 → runnable-0.28.3}/extensions/catalog/README.md +0 -0
  10. {runnable-0.28.1 → runnable-0.28.3}/extensions/catalog/any_path.py +0 -0
  11. {runnable-0.28.1 → runnable-0.28.3}/extensions/catalog/file_system.py +0 -0
  12. {runnable-0.28.1 → runnable-0.28.3}/extensions/catalog/minio.py +0 -0
  13. {runnable-0.28.1 → runnable-0.28.3}/extensions/catalog/pyproject.toml +0 -0
  14. {runnable-0.28.1 → runnable-0.28.3}/extensions/catalog/s3.py +0 -0
  15. {runnable-0.28.1 → runnable-0.28.3}/extensions/job_executor/README.md +0 -0
  16. {runnable-0.28.1 → runnable-0.28.3}/extensions/job_executor/__init__.py +0 -0
  17. {runnable-0.28.1 → runnable-0.28.3}/extensions/job_executor/k8s_job_spec.yaml +0 -0
  18. {runnable-0.28.1 → runnable-0.28.3}/extensions/job_executor/local.py +0 -0
  19. {runnable-0.28.1 → runnable-0.28.3}/extensions/job_executor/local_container.py +0 -0
  20. {runnable-0.28.1 → runnable-0.28.3}/extensions/job_executor/pyproject.toml +0 -0
  21. {runnable-0.28.1 → runnable-0.28.3}/extensions/nodes/README.md +0 -0
  22. {runnable-0.28.1 → runnable-0.28.3}/extensions/nodes/nodes.py +0 -0
  23. {runnable-0.28.1 → runnable-0.28.3}/extensions/nodes/pyproject.toml +0 -0
  24. {runnable-0.28.1 → runnable-0.28.3}/extensions/pipeline_executor/README.md +0 -0
  25. {runnable-0.28.1 → runnable-0.28.3}/extensions/pipeline_executor/__init__.py +0 -0
  26. {runnable-0.28.1 → runnable-0.28.3}/extensions/pipeline_executor/argo.py +0 -0
  27. {runnable-0.28.1 → runnable-0.28.3}/extensions/pipeline_executor/local.py +0 -0
  28. {runnable-0.28.1 → runnable-0.28.3}/extensions/pipeline_executor/local_container.py +0 -0
  29. {runnable-0.28.1 → runnable-0.28.3}/extensions/pipeline_executor/mocked.py +0 -0
  30. {runnable-0.28.1 → runnable-0.28.3}/extensions/pipeline_executor/pyproject.toml +0 -0
  31. {runnable-0.28.1 → runnable-0.28.3}/extensions/pipeline_executor/retry.py +0 -0
  32. {runnable-0.28.1 → runnable-0.28.3}/extensions/run_log_store/README.md +0 -0
  33. {runnable-0.28.1 → runnable-0.28.3}/extensions/run_log_store/__init__.py +0 -0
  34. {runnable-0.28.1 → runnable-0.28.3}/extensions/run_log_store/any_path.py +0 -0
  35. {runnable-0.28.1 → runnable-0.28.3}/extensions/run_log_store/chunked_fs.py +0 -0
  36. {runnable-0.28.1 → runnable-0.28.3}/extensions/run_log_store/chunked_minio.py +0 -0
  37. {runnable-0.28.1 → runnable-0.28.3}/extensions/run_log_store/db/implementation_FF.py +0 -0
  38. {runnable-0.28.1 → runnable-0.28.3}/extensions/run_log_store/db/integration_FF.py +0 -0
  39. {runnable-0.28.1 → runnable-0.28.3}/extensions/run_log_store/file_system.py +0 -0
  40. {runnable-0.28.1 → runnable-0.28.3}/extensions/run_log_store/generic_chunked.py +0 -0
  41. {runnable-0.28.1 → runnable-0.28.3}/extensions/run_log_store/minio.py +0 -0
  42. {runnable-0.28.1 → runnable-0.28.3}/extensions/run_log_store/pyproject.toml +0 -0
  43. {runnable-0.28.1 → runnable-0.28.3}/extensions/secrets/README.md +0 -0
  44. {runnable-0.28.1 → runnable-0.28.3}/extensions/secrets/dotenv.py +0 -0
  45. {runnable-0.28.1 → runnable-0.28.3}/extensions/secrets/pyproject.toml +0 -0
  46. {runnable-0.28.1 → runnable-0.28.3}/runnable/__init__.py +0 -0
  47. {runnable-0.28.1 → runnable-0.28.3}/runnable/catalog.py +0 -0
  48. {runnable-0.28.1 → runnable-0.28.3}/runnable/cli.py +0 -0
  49. {runnable-0.28.1 → runnable-0.28.3}/runnable/context.py +0 -0
  50. {runnable-0.28.1 → runnable-0.28.3}/runnable/datastore.py +0 -0
  51. {runnable-0.28.1 → runnable-0.28.3}/runnable/defaults.py +0 -0
  52. {runnable-0.28.1 → runnable-0.28.3}/runnable/entrypoints.py +0 -0
  53. {runnable-0.28.1 → runnable-0.28.3}/runnable/exceptions.py +0 -0
  54. {runnable-0.28.1 → runnable-0.28.3}/runnable/executor.py +0 -0
  55. {runnable-0.28.1 → runnable-0.28.3}/runnable/graph.py +0 -0
  56. {runnable-0.28.1 → runnable-0.28.3}/runnable/names.py +0 -0
  57. {runnable-0.28.1 → runnable-0.28.3}/runnable/nodes.py +0 -0
  58. {runnable-0.28.1 → runnable-0.28.3}/runnable/parameters.py +0 -0
  59. {runnable-0.28.1 → runnable-0.28.3}/runnable/pickler.py +0 -0
  60. {runnable-0.28.1 → runnable-0.28.3}/runnable/sdk.py +0 -0
  61. {runnable-0.28.1 → runnable-0.28.3}/runnable/secrets.py +0 -0
  62. {runnable-0.28.1 → runnable-0.28.3}/runnable/tasks.py +0 -0
  63. {runnable-0.28.1 → runnable-0.28.3}/runnable/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: runnable
3
- Version: 0.28.1
3
+ Version: 0.28.3
4
4
  Summary: Add your description here
5
5
  Author-email: "Vammi, Vijay" <vijay.vammi@astrazeneca.com>
6
6
  License-File: LICENSE
@@ -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
@@ -56,6 +69,12 @@ class EnvVar(BaseModel):
56
69
  value: str
57
70
 
58
71
 
72
+ VendorGPU = Annotated[
73
+ Optional[int],
74
+ PlainSerializer(lambda x: str(x), return_type=str, when_used="unless-none"),
75
+ ]
76
+
77
+
59
78
  class Request(BaseModel):
60
79
  """
61
80
  The default requests
@@ -63,19 +82,16 @@ class Request(BaseModel):
63
82
 
64
83
  memory: str = "1Gi"
65
84
  cpu: str = "250m"
85
+ gpu: VendorGPU = Field(default=None, serialization_alias="nvidia.com/gpu")
66
86
 
67
87
 
68
- VendorGPU = Annotated[
69
- Optional[int],
70
- PlainSerializer(lambda x: str(x), return_type=str, when_used="unless-none"),
71
- ]
72
-
73
-
74
- class Limit(Request):
88
+ class Limit(BaseModel):
75
89
  """
76
90
  The default limits
77
91
  """
78
92
 
93
+ memory: str = "1Gi"
94
+ cpu: str = "250m"
79
95
  gpu: VendorGPU = Field(default=None, serialization_alias="nvidia.com/gpu")
80
96
 
81
97
 
@@ -124,7 +140,7 @@ class PVCVolume(BaseModel):
124
140
  class K8sTemplateSpec(BaseModel):
125
141
  active_deadline_seconds: int = Field(default=60 * 60 * 2) # 2 hours
126
142
  node_selector: Optional[dict[str, str]] = None
127
- tolerations: Optional[list[dict[str, str]]] = None
143
+ tolerations: Optional[list[Toleration]] = None
128
144
  volumes: Optional[list[HostPathVolume | PVCVolume]] = Field(
129
145
  default_factory=lambda: []
130
146
  )
@@ -260,7 +276,7 @@ class GenericK8sJobExecutor(GenericJobExecutor):
260
276
  tolerations = None
261
277
  if self.job_spec.template.spec.tolerations:
262
278
  tolerations = [
263
- self._client.V1Toleration(**toleration)
279
+ self._client.V1Toleration(**toleration.model_dump(by_alias=True))
264
280
  for toleration in self.job_spec.template.spec.tolerations
265
281
  ]
266
282
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runnable"
3
- version = "0.28.1"
3
+ version = "0.28.3"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  authors = [
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes