git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 5/6] stg mail: add basic support for git send-email

From
ACAlex 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

Previous: Karl WibergNext: Karl Wiberg
Message 13 of 18 in “add support for git send-email”
  1. 0/6 add support for git send-emailAlex Chiang, Nov 28, 2009
  2. 1/6 stg mail: Refactor __send_message and friendsAlex Chiang, Nov 28, 2009
  3. Karl WibergNov 29, 2009
  4. Alex ChiangNov 30, 2009
  5. 2/6 stg mail: reorder __build_[message|cover] parametersAlex Chiang, Nov 28, 2009
  6. 3/6 stg mail: make __send_message do moreAlex Chiang, Nov 28, 2009
  7. Karl WibergNov 29, 2009
  8. Alex ChiangNov 30, 2009
  9. Karl WibergDec 1, 2009
  10. 4/6 stg mail: factor out __update_headerAlex Chiang, Nov 28, 2009
  11. 5/6 stg mail: add basic support for git send-emailAlex Chiang, Nov 28, 2009
  12. Karl WibergNov 29, 2009
  13. Alex ChiangDec 1, 2009
  14. Karl WibergDec 1, 2009
  15. 6/6 stg mail: don't parse To/Cc/Bcc in --git modeAlex Chiang, Nov 28, 2009
  16. Karl WibergNov 29, 2009
  17. Alex ChiangDec 1, 2009
  18. Karl WibergDec 1, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.