On Sat, Nov 28, 2009 at 8:50 PM, Alex Chiang <achiang@xxxxxx> wrote: > + # XXX: yuck, there's gotta be a more pythonic way. Ideally we'd like > + # to use the git_opts dictionary as our mapping between stg mail and > + # git send-email; extract k, v pairs from git_opts, and use those > + # to iterate across options somehow. > + git_opts = { 'to': '--to=', 'cc': '--cc=', 'bcc': '--bcc=' } > + if options.to: > + for a in options.to: > + cmd.append("--to=%s" % a) > + if options.cc: > + for a in options.cc: > + cmd.append("--cc=%s" % a) > + if options.bcc: > + for a in options.bcc: > + cmd.append("--bcc=%s" % a) > + if not options.auto: > + cmd.append("--suppress-cc=body") Like this? for x in ['to', 'cc', 'bcc']: if getattr(options, x): cmd.extend('--%s=%s' % (x, a) for a in getattr(options, x)) > + (fd, path) = mkstemp() > + os.write(fd, msg.as_string(options.mbox)) > + os.close(fd) > + > + try: > + cmd.append(path) > + call(cmd) > + except Exception, err: > + os.unlink(path) > + raise CmdException, str(err) > + > + os.unlink(path) To avoid having to remember to call unlink in all paths, you can write try: try: cmd.append(path) call(cmd) except Exception, e: raise CmdException(str(e)) finally: os.unlink(path) (The combined try...except...finally statement didn't appear until python 2.5, but we'd like to stay compatible with 2.4.) -- Karl Wiberg, kha@xxxxxxxxxxx subrabbit.wordpress.com www.treskal.com/kalle -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html