Re: [PATCH 5/6] stg mail: add basic support for git send-email
- From
- Alex Chiang <achiang@hp.com>
- Date
- Dec 1, 2009, 00:00 UTC
- Message-ID
- <20091201000048.GL12733@ldl.fc.hp.com>
- In-Reply-To
- <b8197bcb0911291354m674d3698m929a1d542a59ed9f@mail.gmail.com>
* Karl Wiberg <kha@treskal.com>:
Show 24 quoted lines
> On Sat, Nov 28, 2009 at 8:50 PM, Alex Chiang <achiang@hp.com> 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.
Show 26 quoted lines
> > + (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