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
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