From: Alex Chiang Date: Tue, 01 Dec 2009 00:00:48 GMT Subject: Re: [PATCH 5/6] stg mail: add basic support for git send-email Message-ID: <20091201000048.GL12733@ldl.fc.hp.com> In-Reply-To: * Karl Wiberg : > On Sat, Nov 28, 2009 at 8:50 PM, Alex Chiang 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)) Yeah, that looks nice. Re-implemented with your suggestion. > > +    (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.) This statement confuses me a bit. The way I read it, I shouldn't use your suggestion due to compat reasons? Thanks, /ac