added optional settings to xml-syntax
[pyvconv.git] / pyvconv.py
bloba3df38fdcf89c1918c19178b9d854352601d854a
1 import libxml2
2 import re
4 class RenderCommand:
5 def __init__(self, name, callcmd):
6 self.name = name
7 self.callcmd = callcmd
8 self.varlist = {}
9 self.varlist["in"] = None
10 self.varlist["out"] = None
12 def set_var(self, varstring, value):
13 self.varlist[varstring] = value
15 def execute(self):
16 resstring = self.callcmd
17 for var in self.varlist:
18 p = re.compile( '\$\{' + var + '\}')
19 resstring = p.sub( self.varlist[var], resstring)
21 print resstring
23 class RenderCommands:
24 def __init__(self):
25 self.command_list = {}
26 self._read_config()
28 def _read_config(self):
29 doc = libxml2.parseFile("rendercommands.xml")
30 name_list = doc.xpathEval( '//command//@name')
31 call_list = doc.xpathEval( '//command//@call')
33 for name,call in zip(name_list, call_list):
34 name = str(name.content)
35 call = str(call.content)
36 self.command_list[name] = RenderCommand(name, call)
38 def __iter__(self):
39 return self.command_list.values().__iter__()
41 def main():
42 commands = RenderCommands()
44 for c in commands:
45 c.set_var("in", "source.avi")
46 c.set_var("out", "dest.avi")
47 c.execute()
49 if __name__ == "__main__":
50 main()