diff options
author | Jenkins <jenkins@review.openstack.org> | 2014-09-27 20:12:40 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2014-09-27 20:12:40 +0000 |
commit | 4e6f39c863a36bdab1335710d65434e47ee73ffa (patch) | |
tree | f7f27d39ef79ad6a17a54dca5fab5d61e92c2fb6 | |
parent | 7a2c40292207fdafc61834fb10d0ef50f79b5b6c (diff) | |
parent | 452652431a32ef4bc6dbb549efe858b0c3e71466 (diff) | |
download | taskflow-4e6f39c863a36bdab1335710d65434e47ee73ffa.tar.gz |
Merge "Example which shows how to move values from one task to another"
-rw-r--r-- | doc/source/examples.rst | 12 | ||||
-rw-r--r-- | taskflow/examples/simple_linear_pass.out.txt | 9 | ||||
-rw-r--r-- | taskflow/examples/simple_linear_pass.py | 68 |
3 files changed, 89 insertions, 0 deletions
diff --git a/doc/source/examples.rst b/doc/source/examples.rst index 9199bc1..1085019 100644 --- a/doc/source/examples.rst +++ b/doc/source/examples.rst @@ -1,3 +1,15 @@ +Passing values from and to tasks +================================ + +.. note:: + + Full source located at :example:`simple_linear_pass`. + +.. literalinclude:: ../../taskflow/examples/simple_linear_pass.py + :language: python + :linenos: + :lines: 16- + Making phone calls ================== diff --git a/taskflow/examples/simple_linear_pass.out.txt b/taskflow/examples/simple_linear_pass.out.txt new file mode 100644 index 0000000..1e58a63 --- /dev/null +++ b/taskflow/examples/simple_linear_pass.out.txt @@ -0,0 +1,9 @@ +Constructing... +Loading... +Compiling... +Preparing... +Running... +Executing 'a' +Executing 'b' +Got input 'a' +Done... diff --git a/taskflow/examples/simple_linear_pass.py b/taskflow/examples/simple_linear_pass.py new file mode 100644 index 0000000..bda2521 --- /dev/null +++ b/taskflow/examples/simple_linear_pass.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- + +# Copyright (C) 2014 Yahoo! Inc. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import logging +import os +import sys + +logging.basicConfig(level=logging.ERROR) + +self_dir = os.path.abspath(os.path.dirname(__file__)) +top_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), + os.pardir, + os.pardir)) +sys.path.insert(0, top_dir) +sys.path.insert(0, self_dir) + +from taskflow import engines +from taskflow.patterns import linear_flow +from taskflow import task + +# INTRO: This examples shows how a task (in a linear/serial workflow) can +# produce an output that can be then consumed/used by a downstream task. + + +class TaskA(task.Task): + default_provides = ['a'] + + def execute(self): + print("Executing '%s'" % (self.name)) + return 'a' + + +class TaskB(task.Task): + def execute(self, a): + print("Executing '%s'" % (self.name)) + print("Got input '%s'" % (a)) + + +print("Constructing...") +wf = linear_flow.Flow("pass-from-to") +wf.add(TaskA('a'), TaskB('b')) + +print("Loading...") +e = engines.load(wf) + +print("Compiling...") +e.compile() + +print("Preparing...") +e.prepare() + +print("Running...") +e.run() + +print("Done...") |