template
index
c:\users\kaisd\documents\workbench\programming\ktt\src\template.py

Template module for a KaiSD Text Tools.
 
(c) 2013 Ivan "Kai SD" Korystin 
 
License: GPLv3

 
Modules
       
re

 
Classes
       
Template
TemplateV2

 
class Template
    Empty template class. Generates empty text.
 
  Methods defined here:
log(self, text)
Print information
process(self, data)
Replace this method in subclasses.
warning(self, text)
Prints a warning

 
class TemplateV2(Template)
    Class for reading ATGv2 templates.
 
ATGv2 template file should be a plain text file, starting with the line
ATGV2
followed by the info line:
[$KeyField$Extension$Prefix$Encoding$]
where
KeyField - is a name of a data column, that contains an identifier.
Extension - is the desired extension for the generated files.
Prefix - is the desired filename prefix for the generated files
Encoding - is the desired encoding for the generated files.
The line may also have some optional keywords before the closing bracket:
oneFile$ - place all generated text into a single file instead of
generating a file for each table row.
After the info line, you can put your text.
You can use following commands to handle the data:
* [$Name$], where Name is the column header,
will be replaced with value from the current row.
* [$ATGLINDEX$] will be replaced with the number of a current row.
* [$ATGHEADER$Text$] and [$ATGFOOTER$Text$] will place the given text
at the begining or at the end of the file. You can't use other
commands in this text.
* [$ATGLIST$Name$Text$], where Name is a multi-column header
(i.e. 'Col' will represent 'Col1', 'Col2', 'Col3' etc)
will repeat the given text for each non-empty value.
You can use other commands in Text. Also [$Name$] inside the list
will be replaced with the value for the current row and column.
* [$ATGLINDEX$] can be used only inside the ATGLIST text,
will be replaced with the current column index.
* [$ATGLISTCUT$Name$Text$] - same as ATGLIST, but the last symbol
will be removed. Useful for removing unnecessary newlines.
* [$ATGIF$Name$Value$Text$] will be replaced with the given text
only if the the given column's value is the same as the given one.
Will be replaced with the empty text otherwise. You can use other
commands in Text.
* [$ATGIFNOT$Name$Value$Text$] - same as ATGIF, but the column's value
should not be equal to the given one.
* [$ATGGREATER$Name$Value$Text$] - same as ATGIF, but the value should
be the number and it should be greater then the given one.
* [$ATGGREATER$Name$Value$Text$] - same as ATGGREATER, but the value
should be less then the given one.
* [$ATGREPLACE$Text1$Text2$] - Will replace Text1 with Text2. Replacements
will be done after all other commands. You can't use regular expressions or
other commands in the text.
* [$ATGPREFIX$Text$] - Will add the given text to the filename prefix.
You can use other commands in text, but do it carefully.
* [$ATGSKIP$] - Skip the current row. Use only in combination with the
ATGIF/ATGIFNOT, or you will generate nothing.
* [$ATGPREV$Name$], where Name is the column header,
will be replaced with the with the value of the given header from the
previous row. ATGSKIP will be used for the first row.
 
  Methods defined here:
__init__(self, filename=None, encoding='utf-8', text='')
Constructor.
 
filename - name of the ATGv2 template file.
encoding - encoding of the template file.
text - text to use if no filename has been provided.
process(self, data)
Generate text for the given data.

Static methods defined here:
express(cls, text, **kwargs)

Methods inherited from Template:
log(self, text)
Print information
warning(self, text)
Prints a warning