runnable 0.12.3__tar.gz → 0.13.0__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {runnable-0.12.3 → runnable-0.13.0}/PKG-INFO +1 -1
- {runnable-0.12.3 → runnable-0.13.0}/pyproject.toml +2 -2
- runnable-0.12.3/runnable/extensions/executor/local/implementation.py → runnable-0.13.0/runnable/extensions/executor/local.py +0 -2
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/nodes.py +16 -1
- {runnable-0.12.3 → runnable-0.13.0}/runnable/tasks.py +148 -3
- runnable-0.12.3/runnable/extensions/secrets/dotenv/__init__.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/LICENSE +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/README.md +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/__init__.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/catalog.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/cli.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/context.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/datastore.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/defaults.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/entrypoints.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/exceptions.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/executor.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/__init__.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/catalog/__init__.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/catalog/file_system/__init__.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/catalog/file_system/implementation.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/catalog/k8s_pvc/__init__.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/catalog/k8s_pvc/implementation.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/catalog/k8s_pvc/integration.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/executor/__init__.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/executor/argo/__init__.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/executor/argo/implementation.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/executor/argo/specification.yaml +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/executor/k8s_job/__init__.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/executor/k8s_job/implementation_FF.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/executor/k8s_job/integration_FF.py +0 -0
- {runnable-0.12.3/runnable/extensions/executor/local → runnable-0.13.0/runnable/extensions/executor/local_container}/__init__.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/executor/local_container/implementation.py +0 -0
- {runnable-0.12.3/runnable/extensions/executor/local_container → runnable-0.13.0/runnable/extensions/executor/mocked}/__init__.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/executor/mocked/implementation.py +0 -0
- {runnable-0.12.3/runnable/extensions/executor/mocked → runnable-0.13.0/runnable/extensions/executor/retry}/__init__.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/executor/retry/implementation.py +0 -0
- {runnable-0.12.3/runnable/extensions/executor/retry → runnable-0.13.0/runnable/extensions/run_log_store}/__init__.py +0 -0
- {runnable-0.12.3/runnable/extensions/run_log_store → runnable-0.13.0/runnable/extensions/run_log_store/chunked_file_system}/__init__.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/run_log_store/chunked_file_system/implementation.py +0 -0
- {runnable-0.12.3/runnable/extensions/run_log_store/chunked_file_system → runnable-0.13.0/runnable/extensions/run_log_store/chunked_k8s_pvc}/__init__.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/run_log_store/chunked_k8s_pvc/implementation.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/run_log_store/chunked_k8s_pvc/integration.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/run_log_store/db/implementation_FF.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/run_log_store/db/integration_FF.py +0 -0
- {runnable-0.12.3/runnable/extensions/run_log_store/chunked_k8s_pvc → runnable-0.13.0/runnable/extensions/run_log_store/file_system}/__init__.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/run_log_store/file_system/implementation.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/run_log_store/generic_chunked.py +0 -0
- {runnable-0.12.3/runnable/extensions/run_log_store/file_system → runnable-0.13.0/runnable/extensions/run_log_store/k8s_pvc}/__init__.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/run_log_store/k8s_pvc/implementation.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/run_log_store/k8s_pvc/integration.py +0 -0
- {runnable-0.12.3/runnable/extensions/run_log_store/k8s_pvc → runnable-0.13.0/runnable/extensions/secrets}/__init__.py +0 -0
- {runnable-0.12.3/runnable/extensions/secrets → runnable-0.13.0/runnable/extensions/secrets/dotenv}/__init__.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/secrets/dotenv/implementation.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/graph.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/integration.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/names.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/nodes.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/parameters.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/pickler.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/sdk.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/secrets.py +0 -0
- {runnable-0.12.3 → runnable-0.13.0}/runnable/utils.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "runnable"
|
3
|
-
version = "0.
|
3
|
+
version = "0.13.0"
|
4
4
|
description = "A Compute agnostic pipelining software"
|
5
5
|
authors = ["Vijay Vammi <mesanthu@gmail.com>"]
|
6
6
|
license = "Apache-2.0"
|
@@ -82,7 +82,7 @@ pyflame = "^0.3.1"
|
|
82
82
|
|
83
83
|
# Plugins for Executors
|
84
84
|
[tool.poetry.plugins."executor"]
|
85
|
-
"local" = "runnable.extensions.executor.local
|
85
|
+
"local" = "runnable.extensions.executor.local:LocalExecutor"
|
86
86
|
"local-container" = "runnable.extensions.executor.local_container.implementation:LocalContainerExecutor"
|
87
87
|
"argo" = "runnable.extensions.executor.argo.implementation:ArgoExecutor"
|
88
88
|
"mocked" = "runnable.extensions.executor.mocked.implementation:MockedExecutor"
|
@@ -797,12 +797,27 @@ class DagNode(CompositeNode):
|
|
797
797
|
class StubNode(ExecutableNode):
|
798
798
|
"""
|
799
799
|
Stub is a convenience design node.
|
800
|
-
|
801
800
|
It always returns success in the attempt log and does nothing.
|
802
801
|
|
803
802
|
This node is very similar to pass state in Step functions.
|
804
803
|
|
805
804
|
This node type could be handy when designing the pipeline and stubbing functions
|
805
|
+
--8<-- [start:stub_reference]
|
806
|
+
An stub execution node of the pipeline.
|
807
|
+
Please refer to define pipeline/tasks/stub for more information.
|
808
|
+
|
809
|
+
As part of the dag definition, a stub task is defined as follows:
|
810
|
+
|
811
|
+
dag:
|
812
|
+
steps:
|
813
|
+
stub_task: # The name of the node
|
814
|
+
type: stub
|
815
|
+
on_failure: The name of the step to traverse in case of failure
|
816
|
+
next: The next node to execute after this task, use "success" to terminate the pipeline successfully
|
817
|
+
or "fail" to terminate the pipeline with an error.
|
818
|
+
|
819
|
+
It can take arbritary number of parameters, which is handy to temporarily silence a task node.
|
820
|
+
--8<-- [end:stub_reference]
|
806
821
|
"""
|
807
822
|
|
808
823
|
node_type: str = Field(default="stub", serialization_alias="type")
|
@@ -188,7 +188,56 @@ def task_return_to_parameter(task_return: TaskReturns, value: Any) -> Parameter:
|
|
188
188
|
|
189
189
|
|
190
190
|
class PythonTaskType(BaseTaskType): # pylint: disable=too-few-public-methods
|
191
|
-
"""
|
191
|
+
"""
|
192
|
+
--8<-- [start:python_reference]
|
193
|
+
An execution node of the pipeline of python functions.
|
194
|
+
Please refer to define pipeline/tasks/python for more information.
|
195
|
+
|
196
|
+
As part of the dag definition, a python task is defined as follows:
|
197
|
+
|
198
|
+
dag:
|
199
|
+
steps:
|
200
|
+
python_task: # The name of the node
|
201
|
+
type: task
|
202
|
+
command_type: python # this is default
|
203
|
+
command: my_module.my_function # the dotted path to the function. Please refer to the yaml section of
|
204
|
+
define pipeline/tasks/python for concrete details.
|
205
|
+
returns:
|
206
|
+
- name: # The name to assign the return value
|
207
|
+
kind: json # the default value is json,
|
208
|
+
can be object for python objects and metric for metrics
|
209
|
+
secrets:
|
210
|
+
- my_secret_key # A list of secrets to expose by secrets manager
|
211
|
+
catalog:
|
212
|
+
get:
|
213
|
+
- A list of glob patterns to get from the catalog to the local file system
|
214
|
+
put:
|
215
|
+
- A list of glob patterns to put to the catalog from the local file system
|
216
|
+
on_failure: The name of the step to traverse in case of failure
|
217
|
+
overrides:
|
218
|
+
Individual tasks can override the global configuration config by referring to the
|
219
|
+
specific override.
|
220
|
+
|
221
|
+
For example,
|
222
|
+
#Global configuration
|
223
|
+
executor:
|
224
|
+
type: local-container
|
225
|
+
config:
|
226
|
+
docker_image: "runnable/runnable:latest"
|
227
|
+
overrides:
|
228
|
+
custom_docker_image:
|
229
|
+
docker_image: "runnable/runnable:custom"
|
230
|
+
|
231
|
+
## In the node definition
|
232
|
+
overrides:
|
233
|
+
local-container:
|
234
|
+
docker_image: "runnable/runnable:custom"
|
235
|
+
|
236
|
+
This instruction will override the docker image for the local-container executor.
|
237
|
+
next: The next node to execute after this task, use "success" to terminate the pipeline successfully
|
238
|
+
or "fail" to terminate the pipeline with an error.
|
239
|
+
--8<-- [end:python_reference]
|
240
|
+
"""
|
192
241
|
|
193
242
|
task_type: str = Field(default="python", serialization_alias="command_type")
|
194
243
|
command: str
|
@@ -277,7 +326,56 @@ class PythonTaskType(BaseTaskType): # pylint: disable=too-few-public-methods
|
|
277
326
|
|
278
327
|
|
279
328
|
class NotebookTaskType(BaseTaskType):
|
280
|
-
"""
|
329
|
+
"""
|
330
|
+
--8<-- [start:notebook_reference]
|
331
|
+
An execution node of the pipeline of notebook execution.
|
332
|
+
Please refer to define pipeline/tasks/notebook for more information.
|
333
|
+
|
334
|
+
As part of the dag definition, a notebook task is defined as follows:
|
335
|
+
|
336
|
+
dag:
|
337
|
+
steps:
|
338
|
+
notebook_task: # The name of the node
|
339
|
+
type: task
|
340
|
+
command_type: notebook
|
341
|
+
command: the path to the notebook relative to project root.
|
342
|
+
optional_ploomber_args: a dictionary of arguments to be passed to ploomber engine
|
343
|
+
returns:
|
344
|
+
- name: # The name to assign the return value
|
345
|
+
kind: json # the default value is json,
|
346
|
+
can be object for python objects and metric for metrics
|
347
|
+
secrets:
|
348
|
+
- my_secret_key # A list of secrets to expose by secrets manager
|
349
|
+
catalog:
|
350
|
+
get:
|
351
|
+
- A list of glob patterns to get from the catalog to the local file system
|
352
|
+
put:
|
353
|
+
- A list of glob patterns to put to the catalog from the local file system
|
354
|
+
on_failure: The name of the step to traverse in case of failure
|
355
|
+
overrides:
|
356
|
+
Individual tasks can override the global configuration config by referring to the
|
357
|
+
specific override.
|
358
|
+
|
359
|
+
For example,
|
360
|
+
#Global configuration
|
361
|
+
executor:
|
362
|
+
type: local-container
|
363
|
+
config:
|
364
|
+
docker_image: "runnable/runnable:latest"
|
365
|
+
overrides:
|
366
|
+
custom_docker_image:
|
367
|
+
docker_image: "runnable/runnable:custom"
|
368
|
+
|
369
|
+
## In the node definition
|
370
|
+
overrides:
|
371
|
+
local-container:
|
372
|
+
docker_image: "runnable/runnable:custom"
|
373
|
+
|
374
|
+
This instruction will override the docker image for the local-container executor.
|
375
|
+
next: The next node to execute after this task, use "success" to terminate the pipeline successfully
|
376
|
+
or "fail" to terminate the pipeline with an error.
|
377
|
+
--8<-- [end:notebook_reference]
|
378
|
+
"""
|
281
379
|
|
282
380
|
task_type: str = Field(default="notebook", serialization_alias="command_type")
|
283
381
|
command: str
|
@@ -410,7 +508,54 @@ class NotebookTaskType(BaseTaskType):
|
|
410
508
|
|
411
509
|
class ShellTaskType(BaseTaskType):
|
412
510
|
"""
|
413
|
-
|
511
|
+
--8<-- [start:shell_reference]
|
512
|
+
An execution node of the pipeline of shell execution.
|
513
|
+
Please refer to define pipeline/tasks/shell for more information.
|
514
|
+
|
515
|
+
As part of the dag definition, a shell task is defined as follows:
|
516
|
+
|
517
|
+
dag:
|
518
|
+
steps:
|
519
|
+
shell_task: # The name of the node
|
520
|
+
type: task
|
521
|
+
command_type: shell
|
522
|
+
command: The command to execute, it could be multiline
|
523
|
+
optional_ploomber_args: a dictionary of arguments to be passed to ploomber engine
|
524
|
+
returns:
|
525
|
+
- name: # The name to assign the return value
|
526
|
+
kind: json # the default value is json,
|
527
|
+
can be object for python objects and metric for metrics
|
528
|
+
secrets:
|
529
|
+
- my_secret_key # A list of secrets to expose by secrets manager
|
530
|
+
catalog:
|
531
|
+
get:
|
532
|
+
- A list of glob patterns to get from the catalog to the local file system
|
533
|
+
put:
|
534
|
+
- A list of glob patterns to put to the catalog from the local file system
|
535
|
+
on_failure: The name of the step to traverse in case of failure
|
536
|
+
overrides:
|
537
|
+
Individual tasks can override the global configuration config by referring to the
|
538
|
+
specific override.
|
539
|
+
|
540
|
+
For example,
|
541
|
+
#Global configuration
|
542
|
+
executor:
|
543
|
+
type: local-container
|
544
|
+
config:
|
545
|
+
docker_image: "runnable/runnable:latest"
|
546
|
+
overrides:
|
547
|
+
custom_docker_image:
|
548
|
+
docker_image: "runnable/runnable:custom"
|
549
|
+
|
550
|
+
## In the node definition
|
551
|
+
overrides:
|
552
|
+
local-container:
|
553
|
+
docker_image: "runnable/runnable:custom"
|
554
|
+
|
555
|
+
This instruction will override the docker image for the local-container executor.
|
556
|
+
next: The next node to execute after this task, use "success" to terminate the pipeline successfully
|
557
|
+
or "fail" to terminate the pipeline with an error.
|
558
|
+
--8<-- [end:shell_reference]
|
414
559
|
"""
|
415
560
|
|
416
561
|
task_type: str = Field(default="shell", serialization_alias="command_type")
|
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
|
{runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/catalog/file_system/implementation.py
RENAMED
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
|
{runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/executor/k8s_job/implementation_FF.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/executor/local_container/implementation.py
RENAMED
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
|
{runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/run_log_store/chunked_k8s_pvc/integration.py
RENAMED
File without changes
|
{runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/run_log_store/db/implementation_FF.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/run_log_store/file_system/implementation.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/run_log_store/k8s_pvc/implementation.py
RENAMED
File without changes
|
{runnable-0.12.3 → runnable-0.13.0}/runnable/extensions/run_log_store/k8s_pvc/integration.py
RENAMED
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
|