pyjob.script module

class pyjob.script.LocalScriptCreator(func=None, iterable=None, processes=1)[source]

Bases: object

A ScriptCollector to store executable Script instances created in parallel using an input func to create the scripts.

Examples

>>> from pyjob.script import LocalScriptCreator, Script
>>> script_creator = LocalScriptCreator(func, iterable, processes)
>>> collector = script_creator.collector
collector
class pyjob.script.Script(shebang='#!/bin/bash', directory='.', prefix='tmp', stem='pyjob', suffix='.sh')[source]

Bases: list

Simple extension to list to hold the contents for an executable script

Examples

>>> from pyjob import Script
>>> script = Script(directory='.', prefix='example', stem='', suffix='.sh')
>>> script.append('sleep 5')
>>> print(script)
#!/bin/bash
sleep 5
cleanup()[source]

Cleanup path and log files if they exist

content

Getter method for Script content

directory

Getter method for directory

log

Path to the log of the the Script

path

Path to the Script

static read(path)[source]

Read a script file to construct a Script

Examples

>>> from pyjob import read_script
>>> script = read_script('./example.sh')
>>> print(script)
#!/bin/bash
sleep 5
Parameters:path (str) – The path to a script file
Returns:A Script instance
Return type:Script
shebang

Script shebang

suffix

Script file suffix

write()[source]

Write the Script to path

class pyjob.script.ScriptCollector(scripts)[source]

Bases: object

A ScriptCollector to store executable Script instances

Examples

>>> from pyjob.script import ScriptCollector, Script
>>> collector = ScriptCollector(None)
>>> for _ in range(5):
...     collector.add(Script())
add(scripts)[source]

Add one or more script file paths

Parameters:script (Script, str, list, tuple) – Something representing one or more scripts
Raises:PyJobError – Script cannot be found or is not executable
dump()[source]

Write all scripts to disk if not already done

scripts

The script file paths

class pyjob.script.ScriptProperty(shebang, suffix)[source]

Bases: enum.Enum

Enumeration for Script-specific properties

PERL = ('#!/usr/bin/env perl', '.pl')
PYTHON = ('#!/usr/bin/env python', '.py')
SHELL = ('#!/bin/bash', '.sh')
pyjob.script.is_valid_script_path(fname)[source]

Validate a script path

Parameters:fname (str) – The path to a script file
Returns:
Return type:bool