runnable 0.28.4__tar.gz → 0.28.6__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {runnable-0.28.4 → runnable-0.28.6}/PKG-INFO +1 -1
- {runnable-0.28.4 → runnable-0.28.6}/extensions/job_executor/k8s.py +4 -9
- {runnable-0.28.4 → runnable-0.28.6}/pyproject.toml +1 -1
- {runnable-0.28.4 → runnable-0.28.6}/runnable/sdk.py +11 -1
- {runnable-0.28.4 → runnable-0.28.6}/.gitignore +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/LICENSE +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/README.md +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/README.md +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/__init__.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/catalog/README.md +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/catalog/any_path.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/catalog/file_system.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/catalog/minio.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/catalog/pyproject.toml +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/catalog/s3.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/job_executor/README.md +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/job_executor/__init__.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/job_executor/k8s_job_spec.yaml +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/job_executor/local.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/job_executor/local_container.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/job_executor/pyproject.toml +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/nodes/README.md +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/nodes/nodes.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/nodes/pyproject.toml +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/pipeline_executor/README.md +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/pipeline_executor/__init__.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/pipeline_executor/argo.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/pipeline_executor/local.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/pipeline_executor/local_container.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/pipeline_executor/mocked.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/pipeline_executor/pyproject.toml +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/pipeline_executor/retry.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/run_log_store/README.md +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/run_log_store/__init__.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/run_log_store/any_path.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/run_log_store/chunked_fs.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/run_log_store/chunked_minio.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/run_log_store/db/implementation_FF.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/run_log_store/db/integration_FF.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/run_log_store/file_system.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/run_log_store/generic_chunked.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/run_log_store/minio.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/run_log_store/pyproject.toml +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/secrets/README.md +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/secrets/dotenv.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/extensions/secrets/pyproject.toml +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/runnable/__init__.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/runnable/catalog.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/runnable/cli.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/runnable/context.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/runnable/datastore.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/runnable/defaults.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/runnable/entrypoints.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/runnable/exceptions.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/runnable/executor.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/runnable/graph.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/runnable/names.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/runnable/nodes.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/runnable/parameters.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/runnable/pickler.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/runnable/secrets.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/runnable/tasks.py +0 -0
- {runnable-0.28.4 → runnable-0.28.6}/runnable/utils.py +0 -0
@@ -7,6 +7,7 @@ from kubernetes import client
|
|
7
7
|
from kubernetes import config as k8s_config
|
8
8
|
from pydantic import BaseModel, ConfigDict, Field, PlainSerializer, PrivateAttr
|
9
9
|
from pydantic.alias_generators import to_camel
|
10
|
+
from rich import print
|
10
11
|
|
11
12
|
from extensions.job_executor import GenericJobExecutor
|
12
13
|
from runnable import console, defaults, utils
|
@@ -133,13 +134,7 @@ class HostPathVolume(BaseModelWIthConfig):
|
|
133
134
|
|
134
135
|
|
135
136
|
class PVCClaim(BaseModelWIthConfig):
|
136
|
-
|
137
|
-
|
138
|
-
model_config = ConfigDict(
|
139
|
-
alias_generator=to_camel,
|
140
|
-
populate_by_name=True,
|
141
|
-
from_attributes=True,
|
142
|
-
)
|
137
|
+
claimName: str
|
143
138
|
|
144
139
|
|
145
140
|
class PVCVolume(BaseModelWIthConfig):
|
@@ -295,7 +290,7 @@ class GenericK8sJobExecutor(GenericJobExecutor):
|
|
295
290
|
|
296
291
|
pod_spec = self._client.V1PodSpec(
|
297
292
|
containers=[base_container],
|
298
|
-
# volumes=[vol.model_dump(by_alias=True) for vol in
|
293
|
+
# volumes=[vol.model_dump(by_alias=True) for vol in spec_volumes],
|
299
294
|
volumes=spec_volumes,
|
300
295
|
tolerations=tolerations,
|
301
296
|
**self.job_spec.template.spec.model_dump(
|
@@ -486,7 +481,7 @@ class K8sJobExecutor(GenericK8sJobExecutor):
|
|
486
481
|
self._volumes.append(
|
487
482
|
PVCVolume(
|
488
483
|
name=self.pvc_claim_name,
|
489
|
-
persistent_volume_claim=PVCClaim(
|
484
|
+
persistent_volume_claim=PVCClaim(claimName=self.pvc_claim_name),
|
490
485
|
)
|
491
486
|
)
|
492
487
|
match self._context.run_log_store.service_name:
|
@@ -824,12 +824,22 @@ class Pipeline(BaseModel):
|
|
824
824
|
|
825
825
|
class BaseJob(BaseModel):
|
826
826
|
catalog: Optional[Catalog] = Field(default=None, alias="catalog")
|
827
|
-
overrides: Dict[str, Any] = Field(default_factory=dict, alias="overrides")
|
828
827
|
returns: List[Union[str, TaskReturns]] = Field(
|
829
828
|
default_factory=list, alias="returns"
|
830
829
|
)
|
831
830
|
secrets: List[str] = Field(default_factory=list)
|
832
831
|
|
832
|
+
@field_validator("catalog", mode="after")
|
833
|
+
@classmethod
|
834
|
+
def validate_catalog(cls, catalog: Optional[Catalog]) -> Optional[Catalog]:
|
835
|
+
if catalog is None:
|
836
|
+
return None
|
837
|
+
|
838
|
+
if catalog.get:
|
839
|
+
raise Exception("Catalog get is not supported for jobs")
|
840
|
+
|
841
|
+
return catalog
|
842
|
+
|
833
843
|
def get_task(self) -> RunnableTask:
|
834
844
|
raise NotImplementedError
|
835
845
|
|
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
|
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
|
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
|
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
|
File without changes
|
File without changes
|
File without changes
|