readcmd
index
/home/chapman/Applications/nlcpython/readcmd.py

Routine to make it easy to read command line arguments in a keyword=value
style format.  Also has support for --help, help=, -h.  Version keyword can
be printed with -v or --version.
 
lists can be given as e.g.: 1-3;5,6 which becomes: [[1,2,3],[5,6]]
File globbing and expansion of ~ is supported for strings
@filename will read filename and put each line as an element in a list
 
Available variables:
self.name        # name of calling program
self.validkeys   # list of allowed keywords given as strings

 
Modules
       
glob
os
re
sys
time

 
Classes
       
__builtin__.object
ReadCmd

 
class ReadCmd(__builtin__.object)
     Methods defined here:
__init__(self, spec, head=None)
Create ReadCmd object to read commandline with validation
 
spec = must be a multi-line string, list of strings, or a single 
       string specifying a filename.
 
head = pass header as a string here.  Any string here will be 
       prepended to header parsed from spec.
__str__(self)
Print out the current keywords, their values and a help message, if
one is present.
error(self, msg)
Print a message to screen as a fatal error and quit
getbool(self, key)
Return keyword value as a boolean True/False.  A value of None returns
None.
 
Can understand True,False,1,0,yes,no, and None.  Any capitalization
accepted (except for None).
 
key = keyword given as a string
getfloat(self, key, min=None, max=None, option=None)
Return keyword value as a float.  A value of None returns None.
 
key    = keyword given as a string
min    = check for minimum value 
max    = check for maximum value
option = list/tuple of allowed values
getint(self, key, min=None, max=None, option=None)
Return keyword value as integer.  A value of None returns None.
 
key    = keyword given as a string
min    = check for minimum value 
max    = check for maximum value
option = list/tuple of allowed values
getkeys(self, comment='#', format=None, time=False)
Make a short string of all keyword=values.
 
Can format for 80 chars per line and also add a comment symbol 
at the beginning of each line
 
comment = comment character or string for each line (can be None)
format  = Can set to a number to limit line length to that no. of
          chars
time    = If set to true, include current time in returned string
getlistbool(self, key, length=None)
Return keyword value as a list of booleans.  A value of None returns
an empty list.
 
key     = keyword given as a string
length  = int/list/tuple of allowed number of elements in list
getlistfloat(self, key, length=None, min=None, max=None, option=None)
Return keyword value as a list of floats.  A value of None returns an
empty list.
 
key    = keyword given as a string
length = int/list/tuple of allowed number of elements in list
min    = check for minimum value 
max    = check for maximum value
option = list/tuple of allowed values
getlistint(self, key, length=None, min=None, max=None, option=None)
Return keyword value as a list of integers.  A value of None returns
an empty list.
 
key    = keyword given as a string
length = int/list/tuple of allowed number of elements in list
min    = check for minimum value 
max    = check for maximum value
option = list/tuple of allowed values
getliststr(self, key, comment='#', exist=None, length=None, option=None, ignorecase=False, type=None)
Return keyword value as a list of strings.  A value of None returns
an empty list.
 
key     = keyword given as a string
comment = String character for comment lines to ignore in an @file
exist   = Can check to make sure all all input files exist.  Default is
          to not check.  Note, if you give an @file, then the @file
          will always be checked for existance no matter what.
length  = int/list/tuple of allowed number of elements in list
option  = list/tuple of allowed values (for each element)
ignorecase = boolean on whether to ignore differences between
             upper/lower case when checking options
type       = set to 'file' to check if input is a file, or set to 
             'dir' to check if input is a directory.  Only applies when
             exist is also True
getstr(self, key, exist=None, option=None, ignorecase=False, type=None)
Return keyword value as a string.  A value of None returns None.
 
key        = keyword given as a string
exist      = Assume keyword references a filename, check for existance 
             or not (boolean)
option     = str/list/tuple of allowed values.
ignorecase = boolean on whether to ignore differences between
             upper/lower case when checking options
type       = set to 'file' to check if input is a file, or set to 
             'dir' to check if input is a directory.  Only applies when
             exist is also True
warning(self, msg)
Print a string of text as a warning

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)