Fails to handle cmd actions and target names containing "%"
Doit is not prepared to handle action strings containing the '%' character, apparently because it uses the action string as part of a format without first escaping any existing '%'. In the particular case of the dodo.py file attached, doit fails with a TaskError ("CmdAction Error creating command string"), and the traceback ends with "ValueError: incomplete format". (I first met this with a dodo.py file including 'mogrify -fuzz 1% -trim...' in an action and in the case the traceback ended with "ValueError: unsupported format character 't'").
Beiing aware of this, one can prevent it, for now, escaping '%' in dodo.py's action strings, but there a problem at least also when using '%' in target file names: e.g., the attached file succeeeds with 'actions': ['touch gonzo%%'], but the outcome of doit clean is a TypeError exception ("'NoneType' object is not iterable") — maybe in some cases it is used as part of a format and in others not?