Skip to content

Examples

You can find the source code of the examples under directory examples/ in the github repository.

Theses examples including:

Caching

When run the script the second time, you may see from the logs that jobs are cached:

❯ python examples/caching.py
[09/13/21 06:10:03] I main                        _____________________________________   __
[09/13/21 06:10:03] I main                        ___  __ \___  _/__  __ \__  ____/__  | / /
[09/13/21 06:10:03] I main                        __  /_/ /__  / __  /_/ /_  __/  __   |/ /
[09/13/21 06:10:03] I main                        _  ____/__/ /  _  ____/_  /___  _  /|  /
[09/13/21 06:10:03] I main                        /_/     /___/  /_/     /_____/  /_/ |_/
[09/13/21 06:10:03] I main
[09/13/21 06:10:03] I main                                     version: 0.1.0
[09/13/21 06:10:03] D main
[09/13/21 06:10:03] D main    Building process relationships:
[09/13/21 06:10:03] D main    - Start processes: [<Proc:AProcess>]
[09/13/21 06:10:03] I main
[09/13/21 06:10:03] I main    ╭══════════════════════════════════ PIPEN-0 ═══════════════════════════════════╮
[09/13/21 06:10:03] I main    ║  # procs          = 1                                                        ║
[09/13/21 06:10:03] I main    ║  plugins          = ['main', 'verbose-0.0.1']                                ║
[09/13/21 06:10:03] I main    ║  profile          = default                                                  ║
[09/13/21 06:10:03] I main    ║  outdir           = Pipen-output                                          ║
[09/13/21 06:10:03] I main    ║  cache            = True                                                     ║
[09/13/21 06:10:03] I main    ║  dirsig           = 1                                                        ║
[09/13/21 06:10:03] I main    ║  error_strategy   = ignore                                                   ║
[09/13/21 06:10:03] I main    ║  forks            = 1                                                        ║
[09/13/21 06:10:03] I main    ║  lang             = bash                                                     ║
[09/13/21 06:10:03] I main    ║  loglevel         = debug                                                    ║
[09/13/21 06:10:03] I main    ║  num_retries      = 3                                                        ║
[09/13/21 06:10:03] I main    ║  plugin_opts      = {}                                                       ║
[09/13/21 06:10:03] I main    ║  plugins          = None                                                     ║
[09/13/21 06:10:03] I main    ║  scheduler        = local                                                    ║
[09/13/21 06:10:03] I main    ║  scheduler_opts   = {}                                                       ║
[09/13/21 06:10:03] I main    ║  submission_batch = 8                                                        ║
[09/13/21 06:10:03] I main    ║  template         = liquid                                                   ║
[09/13/21 06:10:03] I main    ║  template_opts    = {}                                                       ║
[09/13/21 06:10:03] I main    ║  workdir          = ./.pipen                                                 ║
[09/13/21 06:10:03] I main    ╰══════════════════════════════════════════════════════════════════════════════╯
[09/13/21 06:10:03] I main
[09/13/21 06:10:03] I main    ╭══════════════════════════════════ AProcess ══════════════════════════════════╮
[09/13/21 06:10:03] I main    ║ A normal process                                                             ║
[09/13/21 06:10:03] I main    ╰══════════════════════════════════════════════════════════════════════════════╯
[09/13/21 06:10:03] I main    AProcess: Workdir: '.pipen/pipen-0/aprocess'
[09/13/21 06:10:03] I main    AProcess: <<< [START]
[09/13/21 06:10:03] I main    AProcess: >>> [END]
[09/13/21 06:10:03] I verbose AProcess: size: 1
[09/13/21 06:10:03] I verbose AProcess: [0/0] in.infile: /tmp/pipen_example_caching.txt
[09/13/21 06:10:03] I verbose AProcess: [0/0] out.outfile: /home/pwwang/github/pipen/Pipen-output/AProcess/pipen_example_caching.txt
[09/13/21 06:10:03] I main    AProcess: Cached jobs: 0
[09/13/21 06:10:03] I verbose AProcess: Time elapsed: 00:00:00.040s
[09/13/21 06:10:03] I main

To "de-cache" the jobs:

❯ PIPEN_default_cache=0 python examples/caching.py
[09/13/21 06:11:55] I main                        _____________________________________   __
[09/13/21 06:11:55] I main                        ___  __ \___  _/__  __ \__  ____/__  | / /
[09/13/21 06:11:55] I main                        __  /_/ /__  / __  /_/ /_  __/  __   |/ /
[09/13/21 06:11:55] I main                        _  ____/__/ /  _  ____/_  /___  _  /|  /
[09/13/21 06:11:55] I main                        /_/     /___/  /_/     /_____/  /_/ |_/
[09/13/21 06:11:55] I main
[09/13/21 06:11:55] I main                                     version: 0.1.0
[09/13/21 06:11:55] D main
[09/13/21 06:11:55] D main    Building process relationships:
[09/13/21 06:11:55] D main    - Start processes: [<Proc:AProcess>]
[09/13/21 06:11:55] I main
[09/13/21 06:11:55] I main    ╭══════════════════════════════════ PIPEN-0 ═══════════════════════════════════╮
[09/13/21 06:11:55] I main    ║  # procs          = 1                                                        ║
[09/13/21 06:11:55] I main    ║  plugins          = ['main', 'verbose-0.0.1']                                ║
[09/13/21 06:11:55] I main    ║  profile          = default                                                  ║
[09/13/21 06:11:55] I main    ║  outdir           = Pipen-output                                          ║
[09/13/21 06:11:55] I main    ║  cache            = 0                                                        ║
[09/13/21 06:11:55] I main    ║  dirsig           = 1                                                        ║
[09/13/21 06:11:55] I main    ║  error_strategy   = ignore                                                   ║
[09/13/21 06:11:55] I main    ║  forks            = 1                                                        ║
[09/13/21 06:11:55] I main    ║  lang             = bash                                                     ║
[09/13/21 06:11:55] I main    ║  loglevel         = debug                                                    ║
[09/13/21 06:11:55] I main    ║  num_retries      = 3                                                        ║
[09/13/21 06:11:55] I main    ║  plugin_opts      = {}                                                       ║
[09/13/21 06:11:55] I main    ║  plugins          = None                                                     ║
[09/13/21 06:11:55] I main    ║  scheduler        = local                                                    ║
[09/13/21 06:11:55] I main    ║  scheduler_opts   = {}                                                       ║
[09/13/21 06:11:55] I main    ║  submission_batch = 8                                                        ║
[09/13/21 06:11:55] I main    ║  template         = liquid                                                   ║
[09/13/21 06:11:55] I main    ║  template_opts    = {}                                                       ║
[09/13/21 06:11:55] I main    ║  workdir          = ./.pipen                                                 ║
[09/13/21 06:11:55] I main    ╰══════════════════════════════════════════════════════════════════════════════╯
[09/13/21 06:11:55] I main
[09/13/21 06:11:55] I main    ╭══════════════════════════════════ AProcess ══════════════════════════════════╮
[09/13/21 06:11:55] I main    ║ A normal process                                                             ║
[09/13/21 06:11:55] I main    ╰══════════════════════════════════════════════════════════════════════════════╯
[09/13/21 06:11:55] I main    AProcess: Workdir: '.pipen/pipen-0/aprocess'
[09/13/21 06:11:55] I main    AProcess: <<< [START]
[09/13/21 06:11:55] I main    AProcess: >>> [END]
[09/13/21 06:11:55] I verbose AProcess: size: 1
[09/13/21 06:11:55] D main    AProcess: [0/0] Not cached (proc.cache is False)
[09/13/21 06:11:55] D main    AProcess: [0/0] Clearing previous output files.
[09/13/21 06:11:55] I verbose AProcess: [0/0] in.infile: /tmp/pipen_example_caching.txt
[09/13/21 06:11:55] I verbose AProcess: [0/0] out.outfile: /home/pwwang/github/pipen/Pipen-output/AProcess/pipen_example_caching.txt
[09/13/21 06:11:56] I verbose AProcess: Time elapsed: 00:00:01.060s
[09/13/21 06:11:56] I main

Input data callback

❯ python examples/input_data_callback.py
[09/13/21 06:13:12] I main                        _____________________________________   __
[09/13/21 06:13:12] I main                        ___  __ \___  _/__  __ \__  ____/__  | / /
[09/13/21 06:13:12] I main                        __  /_/ /__  / __  /_/ /_  __/  __   |/ /
[09/13/21 06:13:12] I main                        _  ____/__/ /  _  ____/_  /___  _  /|  /
[09/13/21 06:13:12] I main                        /_/     /___/  /_/     /_____/  /_/ |_/
[09/13/21 06:13:12] I main
[09/13/21 06:13:12] I main                                     version: 0.1.0
[09/13/21 06:13:12] I main
[09/13/21 06:13:12] I main    ╭══════════════════════════════════ PIPEN-0 ═══════════════════════════════════╮
[09/13/21 06:13:12] I main    ║  # procs          = 2                                                        ║
[09/13/21 06:13:12] I main    ║  plugins          = ['main', 'verbose-0.0.1']                                ║
[09/13/21 06:13:12] I main    ║  profile          = default                                                  ║
[09/13/21 06:13:12] I main    ║  outdir           = Pipen-output                                             ║
[09/13/21 06:13:12] I main    ║  cache            = True                                                     ║
[09/13/21 06:13:12] I main    ║  dirsig           = 1                                                        ║
[09/13/21 06:13:12] I main    ║  error_strategy   = ignore                                                   ║
[09/13/21 06:13:13] I main    ║  forks            = 3                                                        ║
[09/13/21 06:13:13] I main    ║  lang             = bash                                                     ║
[09/13/21 06:13:13] I main    ║  loglevel         = info                                                     ║
[09/13/21 06:13:13] I main    ║  num_retries      = 3                                                        ║
[09/13/21 06:13:13] I main    ║  plugin_opts      = {}                                                       ║
[09/13/21 06:13:13] I main    ║  plugins          = None                                                     ║
[09/13/21 06:13:13] I main    ║  scheduler        = local                                                    ║
[09/13/21 06:13:13] I main    ║  scheduler_opts   = {}                                                       ║
[09/13/21 06:13:13] I main    ║  submission_batch = 8                                                        ║
[09/13/21 06:13:13] I main    ║  template         = liquid                                                   ║
[09/13/21 06:13:13] I main    ║  template_opts    = {}                                                       ║
[09/13/21 06:13:13] I main    ║  workdir          = ./.pipen                                                 ║
[09/13/21 06:13:13] I main    ╰══════════════════════════════════════════════════════════════════════════════╯
[09/13/21 06:13:13] I main
[09/13/21 06:13:13] I main    ╭───────────────────────────────────── P1 ─────────────────────────────────────╮
[09/13/21 06:13:13] I main    │ Sort input file                                                              │
[09/13/21 06:13:13] I main    ╰──────────────────────────────────────────────────────────────────────────────╯
[09/13/21 06:13:13] I main    P1: Workdir: '.pipen/pipen-0/p1'
[09/13/21 06:13:13] I main    P1: <<< [START]
[09/13/21 06:13:13] I main    P1: >>> ['P2']
[09/13/21 06:13:13] I verbose P1: size: 10
[09/13/21 06:13:13] I verbose P1: [0/9] in.infile: /tmp/pipen_example_input_data_callback/0.txt
[09/13/21 06:13:13] I verbose P1: [0/9] out.outfile: /home/pwwang/github/pipen/.pipen/pipen-0/p1/0/output/intermediate.txt
[09/13/21 06:13:15] I verbose P1: Time elapsed: 00:00:02.224s
[09/13/21 06:13:15] I main
[09/13/21 06:13:15] I main    ╭═════════════════════════════════════ P2 ═════════════════════════════════════╮
[09/13/21 06:13:15] I main    ║ Paste line number                                                            ║
[09/13/21 06:13:15] I main    ╰══════════════════════════════════════════════════════════════════════════════╯
[09/13/21 06:13:15] I main    P2: Workdir: '.pipen/pipen-0/p2'
[09/13/21 06:13:15] I main    P2: <<< ['P1']
[09/13/21 06:13:15] I main    P2: >>> [END]
[09/13/21 06:13:15] I verbose P2: size: 10
[09/13/21 06:13:15] I verbose P2: [0/9] in.infile: /home/pwwang/github/pipen/.pipen/pipen-0/p1/0/output/intermediate.txt
[09/13/21 06:13:15] I verbose P2: [0/9] in.nlines: 2
[09/13/21 06:13:15] I verbose P2: [0/9] out.outfile: /home/pwwang/github/pipen/Pipen-output/P2/0/result.txt
[09/13/21 06:13:17] I verbose P2: Time elapsed: 00:00:02.192s
[09/13/21 06:13:17] I main
 cat /home/pwwang/github/pipen/Pipen-output/P2/0/result.txt
1       0_0
2       0_1

mako templating

❯ python examples/mako-templating.py
[09/13/21 06:14:57] I main                        _____________________________________   __
[09/13/21 06:14:57] I main                        ___  __ \___  _/__  __ \__  ____/__  | / /
[09/13/21 06:14:57] I main                        __  /_/ /__  / __  /_/ /_  __/  __   |/ /
[09/13/21 06:14:57] I main                        _  ____/__/ /  _  ____/_  /___  _  /|  /
[09/13/21 06:14:57] I main                        /_/     /___/  /_/     /_____/  /_/ |_/
[09/13/21 06:14:57] I main
[09/13/21 06:14:57] I main                                     version: 0.1.0
[09/13/21 06:14:57] I main
[09/13/21 06:14:57] I main    ╭══════════════════════════════════ PIPEN-0 ═══════════════════════════════════╮
[09/13/21 06:14:57] I main    ║  # procs          = 1                                                        ║
[09/13/21 06:14:57] I main    ║  plugins          = ['main', 'verbose-0.0.1']                                ║
[09/13/21 06:14:57] I main    ║  profile          = default                                                  ║
[09/13/21 06:14:57] I main    ║  outdir           = Pipen-output                                             ║
[09/13/21 06:14:57] I main    ║  cache            = True                                                     ║
[09/13/21 06:14:57] I main    ║  dirsig           = 1                                                        ║
[09/13/21 06:14:57] I main    ║  error_strategy   = ignore                                                   ║
[09/13/21 06:14:57] I main    ║  forks            = 1                                                        ║
[09/13/21 06:14:57] I main    ║  lang             = bash                                                     ║
[09/13/21 06:14:57] I main    ║  loglevel         = info                                                     ║
[09/13/21 06:14:57] I main    ║  num_retries      = 3                                                        ║
[09/13/21 06:14:57] I main    ║  plugin_opts      = {}                                                       ║
[09/13/21 06:14:57] I main    ║  plugins          = None                                                     ║
[09/13/21 06:14:57] I main    ║  scheduler        = local                                                    ║
[09/13/21 06:14:57] I main    ║  scheduler_opts   = {}                                                       ║
[09/13/21 06:14:57] I main    ║  submission_batch = 8                                                        ║
[09/13/21 06:14:57] I main    ║  template         = liquid                                                   ║
[09/13/21 06:14:57] I main    ║  template_opts    = {}                                                       ║
[09/13/21 06:14:57] I main    ║  workdir          = ./.pipen                                                 ║
[09/13/21 06:14:57] I main    ╰══════════════════════════════════════════════════════════════════════════════╯
[09/13/21 06:14:57] I main
[09/13/21 06:14:57] I main    ╭════════════════════════════════ MakoProcess ═════════════════════════════════╮
[09/13/21 06:14:57] I main    ║ A process using mako templating                                              ║
[09/13/21 06:14:57] I main    ╰══════════════════════════════════════════════════════════════════════════════╯
[09/13/21 06:14:57] I main    MakoProcess: Workdir: '.pipen/pipen-0/makoprocess'
[09/13/21 06:14:57] I main    MakoProcess: <<< [START]
[09/13/21 06:14:57] I main    MakoProcess: >>> [END]
[09/13/21 06:14:57] I verbose MakoProcess: size    : 1
[09/13/21 06:14:57] I verbose MakoProcess: template: mako
[09/13/21 06:14:57] I verbose MakoProcess: [0/0] in.a: 1
[09/13/21 06:14:57] I verbose MakoProcess: [0/0] out.outfile: /home/pwwang/github/pipen/Pipen-output/MakoProcess/1.txt
[09/13/21 06:14:58] I verbose MakoProcess: Time elapsed: 00:00:01.019s
[09/13/21 06:14:58] I main

multile jobs

> python examples/multijobs.py
[09/13/21 06:16:09] I main                        _____________________________________   __
[09/13/21 06:16:09] I main                        ___  __ \___  _/__  __ \__  ____/__  | / /
[09/13/21 06:16:09] I main                        __  /_/ /__  / __  /_/ /_  __/  __   |/ /
[09/13/21 06:16:09] I main                        _  ____/__/ /  _  ____/_  /___  _  /|  /
[09/13/21 06:16:09] I main                        /_/     /___/  /_/     /_____/  /_/ |_/
[09/13/21 06:16:09] I main
[09/13/21 06:16:09] I main                                     version: 0.1.0
[09/13/21 06:16:09] I main
[09/13/21 06:16:09] I main    ╭══════════════════════════════════ PIPEN-0 ═══════════════════════════════════╮
[09/13/21 06:16:09] I main    ║  # procs          = 1                                                        ║
[09/13/21 06:16:09] I main    ║  plugins          = ['main', 'verbose-0.0.1']                                ║
[09/13/21 06:16:09] I main    ║  profile          = default                                                  ║
[09/13/21 06:16:09] I main    ║  outdir           = Pipen-output                                             ║
[09/13/21 06:16:09] I main    ║  cache            = True                                                     ║
[09/13/21 06:16:09] I main    ║  dirsig           = 1                                                        ║
[09/13/21 06:16:09] I main    ║  error_strategy   = ignore                                                   ║
[09/13/21 06:16:09] I main    ║  forks            = 1                                                        ║
[09/13/21 06:16:09] I main    ║  lang             = bash                                                     ║
[09/13/21 06:16:09] I main    ║  loglevel         = info                                                     ║
[09/13/21 06:16:09] I main    ║  num_retries      = 3                                                        ║
[09/13/21 06:16:09] I main    ║  plugin_opts      = {}                                                       ║
[09/13/21 06:16:09] I main    ║  plugins          = None                                                     ║
[09/13/21 06:16:09] I main    ║  scheduler        = local                                                    ║
[09/13/21 06:16:09] I main    ║  scheduler_opts   = {}                                                       ║
[09/13/21 06:16:09] I main    ║  submission_batch = 8                                                        ║
[09/13/21 06:16:09] I main    ║  template         = liquid                                                   ║
[09/13/21 06:16:09] I main    ║  template_opts    = {}                                                       ║
[09/13/21 06:16:09] I main    ║  workdir          = ./.pipen                                                 ║
[09/13/21 06:16:09] I main    ╰══════════════════════════════════════════════════════════════════════════════╯
[09/13/21 06:16:09] I main
[09/13/21 06:16:09] I main    ╭════════════════════════════════ MultiJobProc ════════════════════════════════╮
[09/13/21 06:16:09] I main    ║ A process with multiple jobs                                                 ║
[09/13/21 06:16:09] I main    ╰══════════════════════════════════════════════════════════════════════════════╯
[09/13/21 06:16:09] I main    MultiJobProc: Workdir: '.pipen/pipen-0/multijobproc'
[09/13/21 06:16:09] I main    MultiJobProc: <<< [START]
[09/13/21 06:16:09] I main    MultiJobProc: >>> [END]
[09/13/21 06:16:10] I verbose MultiJobProc: forks: 3
[09/13/21 06:16:10] I verbose MultiJobProc: cache: False
[09/13/21 06:16:10] I verbose MultiJobProc: size : 10
[09/13/21 06:16:10] I verbose MultiJobProc: [0/9] in.i: 0
[09/13/21 06:16:10] I verbose MultiJobProc: [0/9] out.outfile: /home/pwwang/github/pipen/Pipen-output/MultiJobProc/0/0.txt
[09/13/21 06:16:16] I verbose MultiJobProc: Time elapsed: 00:00:06.139s
[09/13/21 06:16:16] I main

plugin

❯ python examples/plugin-example.py
[09/13/21 06:18:18] I notify  Calling on_setup
[09/13/21 06:18:18] I main                        _____________________________________   __
[09/13/21 06:18:18] I main                        ___  __ \___  _/__  __ \__  ____/__  | / /
[09/13/21 06:18:18] I main                        __  /_/ /__  / __  /_/ /_  __/  __   |/ /
[09/13/21 06:18:18] I main                        _  ____/__/ /  _  ____/_  /___  _  /|  /
[09/13/21 06:18:18] I main                        /_/     /___/  /_/     /_____/  /_/ |_/
[09/13/21 06:18:18] I main
[09/13/21 06:18:18] I main                                     version: 0.1.0
[09/13/21 06:18:18] I main
[09/13/21 06:18:18] I main    ╭══════════════════════════════════ PIPEN-0 ═══════════════════════════════════╮
[09/13/21 06:18:18] I main    ║  # procs          = 1                                                        ║
[09/13/21 06:18:18] I main    ║  plugins          = ['main', 'notifyplugin-0.0.0']                           ║
[09/13/21 06:18:18] I main    ║  profile          = default                                                  ║
[09/13/21 06:18:18] I main    ║  outdir           = Pipen-output                                             ║
[09/13/21 06:18:18] I main    ║  cache            = True                                                     ║
[09/13/21 06:18:18] I main    ║  dirsig           = 1                                                        ║
[09/13/21 06:18:18] I main    ║  error_strategy   = ignore                                                   ║
[09/13/21 06:18:18] I main    ║  forks            = 1                                                        ║
[09/13/21 06:18:18] I main    ║  lang             = bash                                                     ║
[09/13/21 06:18:18] I main    ║  loglevel         = info                                                     ║
[09/13/21 06:18:18] I main    ║  num_retries      = 3                                                        ║
[09/13/21 06:18:18] I main    ║  plugin_opts      = {}                                                       ║
[09/13/21 06:18:18] I main    ║  plugins          = [<class '__main__.NotifyPlugin'>]                        ║
[09/13/21 06:18:18] I main    ║  scheduler        = local                                                    ║
[09/13/21 06:18:18] I main    ║  scheduler_opts   = {}                                                       ║
[09/13/21 06:18:18] I main    ║  submission_batch = 8                                                        ║
[09/13/21 06:18:18] I main    ║  template         = liquid                                                   ║
[09/13/21 06:18:18] I main    ║  template_opts    = {}                                                       ║
[09/13/21 06:18:18] I main    ║  workdir          = ./.pipen                                                 ║
[09/13/21 06:18:18] I main    ╰══════════════════════════════════════════════════════════════════════════════╯
[09/13/21 06:18:18] I notify  Calling on_start
[09/13/21 06:18:18] I main
[09/13/21 06:18:18] I main    ╭══════════════════════════════════ AProcess ══════════════════════════════════╮
[09/13/21 06:18:18] I main    ║ Undescribed                                                                  ║
[09/13/21 06:18:18] I main    ╰══════════════════════════════════════════════════════════════════════════════╯
[09/13/21 06:18:18] I main    AProcess: Workdir: '.pipen/pipen-0/aprocess'
[09/13/21 06:18:18] I main    AProcess: <<< [START]
[09/13/21 06:18:18] I main    AProcess: >>> [END]
[09/13/21 06:18:18] W main    AProcess: No script specified.
[09/13/21 06:18:18] I notify  Calling on_proc_start
[09/13/21 06:18:18] I main    AProcess: Cached jobs: 0
[09/13/21 06:18:18] I notify  Calling on_proc_done, succeeded = cached
[09/13/21 06:18:18] I main

                PIPEN-0: 100%|█████████████████████████████████████████████████| 1/1 [00:00<00:00, 2.91 procs/s]
[09/13/21 06:18:18] I notify  Calling on_complete, succeeded = True

Using python interpreter

❯ python examples/python-script.py
[09/13/21 06:19:45] I main                        _____________________________________   __
[09/13/21 06:19:45] I main                        ___  __ \___  _/__  __ \__  ____/__  | / /
[09/13/21 06:19:45] I main                        __  /_/ /__  / __  /_/ /_  __/  __   |/ /
[09/13/21 06:19:45] I main                        _  ____/__/ /  _  ____/_  /___  _  /|  /
[09/13/21 06:19:45] I main                        /_/     /___/  /_/     /_____/  /_/ |_/
[09/13/21 06:19:45] I main
[09/13/21 06:19:45] I main                                     version: 0.1.0
[09/13/21 06:19:45] I main
[09/13/21 06:19:45] I main    ╭══════════════════════════════════ PIPEN-0 ═══════════════════════════════════╮
[09/13/21 06:19:45] I main    ║  # procs          = 1                                                        ║
[09/13/21 06:19:45] I main    ║  plugins          = ['main', 'verbose-0.0.1']                                ║
[09/13/21 06:19:45] I main    ║  profile          = default                                                  ║
[09/13/21 06:19:45] I main    ║  outdir           = Pipen-output                                             ║
[09/13/21 06:19:46] I main    ║  cache            = True                                                     ║
[09/13/21 06:19:46] I main    ║  dirsig           = 1                                                        ║
[09/13/21 06:19:46] I main    ║  error_strategy   = ignore                                                   ║
[09/13/21 06:19:46] I main    ║  forks            = 1                                                        ║
[09/13/21 06:19:46] I main    ║  lang             = bash                                                     ║
[09/13/21 06:19:46] I main    ║  loglevel         = info                                                     ║
[09/13/21 06:19:46] I main    ║  num_retries      = 3                                                        ║
[09/13/21 06:19:46] I main    ║  plugin_opts      = {}                                                       ║
[09/13/21 06:19:46] I main    ║  plugins          = None                                                     ║
[09/13/21 06:19:46] I main    ║  scheduler        = local                                                    ║
[09/13/21 06:19:46] I main    ║  scheduler_opts   = {}                                                       ║
[09/13/21 06:19:46] I main    ║  submission_batch = 8                                                        ║
[09/13/21 06:19:46] I main    ║  template         = liquid                                                   ║
[09/13/21 06:19:46] I main    ║  template_opts    = {}                                                       ║
[09/13/21 06:19:46] I main    ║  workdir          = ./.pipen                                                 ║
[09/13/21 06:19:46] I main    ╰══════════════════════════════════════════════════════════════════════════════╯
[09/13/21 06:19:46] I main
[09/13/21 06:19:46] I main    ╭══════════════════════════════ PythonScriptProc ══════════════════════════════╮
[09/13/21 06:19:46] I main    ║ A process using python interpreter for script                                ║
[09/13/21 06:19:46] I main    ╰══════════════════════════════════════════════════════════════════════════════╯
[09/13/21 06:19:46] I main    PythonScriptProc: Workdir: '.pipen/pipen-0/pythonscriptproc'
[09/13/21 06:19:46] I main    PythonScriptProc: <<< [START]
[09/13/21 06:19:46] I main    PythonScriptProc: >>> [END]
[09/13/21 06:19:46] I verbose PythonScriptProc: lang: python
[09/13/21 06:19:46] I verbose PythonScriptProc: size: 1
[09/13/21 06:19:46] I verbose PythonScriptProc: [0/0] in.a: 1
[09/13/21 06:19:46] I verbose PythonScriptProc: [0/0] out.outfile:
                      /home/pwwang/github/pipen/Pipen-output/PythonScriptProc/1.txt
[09/13/21 06:19:48] I verbose PythonScriptProc: Time elapsed: 00:00:02.031s
[09/13/21 06:19:48] I main

Error-handling: retry

❯ python examples/retry.py
[09/13/21 06:20:38] I main                        _____________________________________   __
[09/13/21 06:20:38] I main                        ___  __ \___  _/__  __ \__  ____/__  | / /
[09/13/21 06:20:38] I main                        __  /_/ /__  / __  /_/ /_  __/  __   |/ /
[09/13/21 06:20:38] I main                        _  ____/__/ /  _  ____/_  /___  _  /|  /
[09/13/21 06:20:38] I main                        /_/     /___/  /_/     /_____/  /_/ |_/
[09/13/21 06:20:38] I main
[09/13/21 06:20:38] I main                                     version: 0.1.0
[09/13/21 06:20:38] D main
[09/13/21 06:20:38] D main    Building process relationships:
[09/13/21 06:20:38] D main    - Start processes: [<Proc:RetryProc>]
[09/13/21 06:20:38] I main
[09/13/21 06:20:38] I main    ╭══════════════════════════════════ PIPEN-0 ═══════════════════════════════════╮
[09/13/21 06:20:38] I main    ║  # procs          = 1                                                        ║
[09/13/21 06:20:38] I main    ║  plugins          = ['main', 'verbose-0.0.1']                                ║
[09/13/21 06:20:38] I main    ║  profile          = default                                                  ║
[09/13/21 06:20:38] I main    ║  outdir           = Pipen-output                                             ║
[09/13/21 06:20:38] I main    ║  cache            = True                                                     ║
[09/13/21 06:20:38] I main    ║  dirsig           = 1                                                        ║
[09/13/21 06:20:38] I main    ║  error_strategy   = ignore                                                   ║
[09/13/21 06:20:38] I main    ║  forks            = 1                                                        ║
[09/13/21 06:20:38] I main    ║  lang             = bash                                                     ║
[09/13/21 06:20:38] I main    ║  loglevel         = debug                                                    ║
[09/13/21 06:20:38] I main    ║  num_retries      = 3                                                        ║
[09/13/21 06:20:38] I main    ║  plugin_opts      = {}                                                       ║
[09/13/21 06:20:38] I main    ║  plugins          = None                                                     ║
[09/13/21 06:20:38] I main    ║  scheduler        = local                                                    ║
[09/13/21 06:20:38] I main    ║  scheduler_opts   = {}                                                       ║
[09/13/21 06:20:38] I main    ║  submission_batch = 8                                                        ║
[09/13/21 06:20:38] I main    ║  template         = liquid                                                   ║
[09/13/21 06:20:38] I main    ║  template_opts    = {}                                                       ║
[09/13/21 06:20:38] I main    ║  workdir          = ./.pipen                                                 ║
[09/13/21 06:20:38] I main    ╰══════════════════════════════════════════════════════════════════════════════╯
[09/13/21 06:20:38] I main
[09/13/21 06:20:38] I main    ╭═════════════════════════════════ RetryProc ══════════════════════════════════╮
[09/13/21 06:20:38] I main    ║ Retry the jobs when fail                                                     ║
[09/13/21 06:20:38] I main    ╰══════════════════════════════════════════════════════════════════════════════╯
[09/13/21 06:20:38] I main    RetryProc: Workdir: '.pipen/pipen-0/retryproc'
[09/13/21 06:20:38] I main    RetryProc: <<< [START]
[09/13/21 06:20:38] I main    RetryProc: >>> [END]
[09/13/21 06:20:38] I verbose RetryProc: size: 1
[09/13/21 06:20:38] D main    RetryProc: [0/0] Not cached (job.rc != 0)
[09/13/21 06:20:38] D main    RetryProc: [0/0] Clearing previous output files.
[09/13/21 06:20:38] I verbose RetryProc: [0/0] in.starttime: 1631539238
[09/13/21 06:20:39] D main    RetryProc: [0/0] Retrying #1
[09/13/21 06:20:40] D main    RetryProc: [0/0] Retrying #2
[09/13/21 06:20:41] D main    RetryProc: [0/0] Retrying #3
[09/13/21 06:20:42] D main    RetryProc: [0/0] Retrying #4
[09/13/21 06:20:43] I verbose RetryProc: Time elapsed: 00:00:05.203s
[09/13/21 06:20:43] I main