[Baypiggies] code review or tool suggestion
jim
jim at well.com
Wed Nov 25 18:51:31 CET 2009
+1111111
great possibilities!
terrific to share the heart of our focus.
could be good fodder for newbie nuggets.
On Wed, 2009-11-25 at 06:44 -0800, Glen Jarvis wrote:
> I learn *so* much from code reviews....
>
> Just reading this conversation has helped me tremendously.... For
> example, raising SystemExit is not something I've done before as a
> clean way to exit. I always used sys.exit (or for rare cases _exit ).
> Now I know better.
>
> Obviously with reviews, one must take the reviewer into account as
> well as the comments that they make. (Everyone has an opinion.. Often
> one gets conflicting opinions on the same issue. And some reviewers
> even give advise that breaks PEP-8 with the preamble... "*I* like to
> do...." or give obviously unpythonic advise)
>
> However, Drew's advise was very Pythonic and helpful. I *really* liked
> reading Drew's comments because it showed readability was important to
> him, that he has knowledge of the language (what works in what
> version), he has looked at potential bugs, and, of course, that
> exercising code/code coverage is important.
>
> No matter how good we are, we can all learn from code reviews. I'm
> personally *very* interested in this theme if any one else is brave
> enough to stick their neck out.
>
> I think I'll dig out something and publish to the list the next few
> days, asking for a review. I'll try to find something very small to
> not overwelm the readers. I'll also put on my thick skin and remember
> that any comments made can make me grow as a programmer.
>
> Anyone else?
>
>
> Glen
>
>
> On Nov 24, 2009, at 11:56 PM, Drew Perttula <drewp at bigasterisk.com>
> wrote:
>
> > Simeon Franklin wrote:
> >> More to the point of Baypiggies though - if anyone wants to take a
> >> look at my code I'd be happy for any pointers.
> >
> >
> > 28 usage = "usage: %prog [-ovt] file"
> >
> > The second 'usage' is apparently ignored (in py 2.6.2)-- you can
> > leave it out and the output looks the same (!).
> >
> >
> > 30 parser.add_option("-o", action="store_true",
> > dest="stdout", default=False,
> > 31 help="Print to stdout instead of
> > modifying file")
> >
> > Instead of dest, I like add_option("-o", "--stdout", action=...).
> > Optparse chooses the long form for the option name, but the end user
> > can now make more readable commandlines if he or she wants to.
> >
> >
> > 46 for i, sub_part in enumerate(part.get_payload()):
> > 47 replacement = process_node(sub_part)
> > 48 if replacement:
> > 49 del(parts_list[i])
> >
> > I don't have a proof, but this del seems like a bug. As soon as you
> > delete an element out of the middle of parts_list, the rest of the
> > parts_list wouldn't be in sync with the i index, so a second delete
> > would hit the wrong part, no? This can surely be rewritten without
> > any indexing.
> >
> > Also, I don't think you need to repeat the get_payload call in 43
> > and 46. Maybe you had a previous version that appended the new part
> > right onto parts_list in line 50? (Although even if you did that,
> > you still wouldn't need to repeat the get_payload call.)
> >
> > 48 makes me nervous because it's a sloppy check for a value that
> > could be False or "" or "some text". I'd probably use None as the
> > special token and "if replacement is not None:" on line 48.
> >
> >
> > 38 def process_node(part):
> >
> > This function is nested just so it can access 'options' from the
> > outer function, as far as I can tell. It would probably be easier to
> > read if process_node was at the top-level after main(), and you
> > passed in 'verbose' as an argument. That way, process_node wouldn't
> > be unnecessarily coupled with main(), main would be shorter, other
> > programs could import and use process_node.
> >
> >
> > 64 print "No filename was specified"
> > 65 exit(-1)
> > 66 else:
> >
> > raise SystemExit("No filename was specified")
> > would be similar, but it prints to stderr (good!) and exits with a 1
> > (close enough!).
> >
> > I think it would be quicker for readers to parse this as an error
> > check if you dropped the 'else' and unindented 67-69.
> >
> > _______________________________________________
> > Baypiggies mailing list
> > Baypiggies at python.org
> > To change your subscription options or unsubscribe:
> > http://mail.python.org/mailman/listinfo/baypiggies
> _______________________________________________
> Baypiggies mailing list
> Baypiggies at python.org
> To change your subscription options or unsubscribe:
> http://mail.python.org/mailman/listinfo/baypiggies
>
More information about the Baypiggies
mailing list