Terminata implementazione fixata del cmdString
parent
92bc86c48b
commit
1d4d9d5a37
|
|
@ -7,6 +7,7 @@ Created on Fri Sep 27 14:35:31 2019
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import commands as cmd
|
import commands as cmd
|
||||||
|
import functools
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -24,12 +25,12 @@ def cmdString(cmdName, **cmdArgs):
|
||||||
raise Warning('Forniti argomenti sconosciuti!')
|
raise Warning('Forniti argomenti sconosciuti!')
|
||||||
argDict = { ** { a: cmdArgs[a] for a in mandatory_args},
|
argDict = { ** { a: cmdArgs[a] for a in mandatory_args},
|
||||||
** { a: cmdArgs[a] if a in my_args else '' for a in optional_args} }
|
** { a: cmdArgs[a] if a in my_args else '' for a in optional_args} }
|
||||||
|
command = cmdDict['command']
|
||||||
arg_groups = [i.group(1) for i in re.finditer(r'[^;]((\{[^}]*\};)+\{[^}]*\})[^;]',cmd.MKPcommands[cmdName]['command'])]
|
arg_groups = [i.group(1) for i in re.finditer(r'[^;]((\{[^}]*\};)+\{[^}]*\})[^;]',command)]
|
||||||
replacements = [(g,';'.join([a.format(**argDict) for a in g.split(';') if len(a.format(**argDict)) > 0])) for g in arg_groups]
|
replacements = [(g,';'.join([a.format(**argDict) for a in g.split(';') if len(a.format(**argDict)) > 0])) for g in arg_groups]
|
||||||
|
command = functools.reduce(lambda x,y: x.replace(y[0],y[1]),replacements,command).format(**argDict)
|
||||||
return str(cmd.DEFprefix['begin'] if cmdDict['defPrefix'] else cmdDict['begin']) \
|
return str(cmd.DEFprefix['begin'] if cmdDict['defPrefix'] else cmdDict['begin']) \
|
||||||
+ re.sub(r';+', ';', cmdDict['command'].format(**argDict)) \
|
+ command \
|
||||||
+ str(cmd.DEFprefix['end']
|
+ str(cmd.DEFprefix['end']
|
||||||
if cmdDict['defPrefix'] else cmdDict['end'])
|
if cmdDict['defPrefix'] else cmdDict['end'])
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue