[TIP] Announce: Pygora 0.0.1
Alfredo Deza
alfredodeza at gmail.com
Sat Oct 16 10:33:17 PDT 2010
On Sat, Oct 16, 2010 at 1:12 PM, Ronny Pfannschmidt <
Ronny.Pfannschmidt at gmx.de> wrote:
> On Sat, 2010-10-16 at 12:11 -0400, Alfredo Deza wrote:
> >
> >
> > On Fri, Oct 15, 2010 at 8:23 PM, Ronny Pfannschmidt
> > <Ronny.Pfannschmidt at gmx.de> wrote:
> >
> > On Sun, 2010-02-28 at 16:38 -0500, Alfredo Deza wrote:
> > > After Ned Batchelder's talk in Python I spent a few minutes
> > talking
> > > about how nice it is to have as much (or even more!) test
> > code lines
> > > than source code lines.
> > >
> > > I have put together a small script that will count the lines
> > of code
> > > in a given directory and will compare them to your test code
> > lines
> > > with a nice output (e.g. percentage, total lines, lines per
> > file
> > > etc...).
> > >
> > > Ideally, this could become a plugin for Nose (or py.test),
> > but for
> > > now, it will create an executable symlink so you can run it
> > anywhere.
> > >
> > > The project page: http://code.google.com/p/pygora/
> > >
> > > I am using distribute to package Pygora, you can install it
> > by:
> > >
> > > sudo easy_install pygora
> > >
> > > And, if you were not wondering already, the name comes from
> > a *goat*:
> > > Pygora Goat is a cross between the Pygmy Goat and the Angora
> > Goat that
> > > produces three distinct kinds of fleece and has the smaller
> > size of
> > > the Pygmy.
> > > Source: Wikipedia
> > >
> > >
> > > Pygora could do better in telling what lines to count with a
> > nice
> > > regex, but this first release will get you an idea,
> > enhancements will
> > > follow.
> >
> >
> > you might want to take a look at py.countloc which is shipped
> > by py (and
> > will be in pycmd in future)
> >
> > py.countloc provides way better numbers (imho)
> >
> >
> >
> >
> > Since I had py.test installed I tried out py.countloc, and I have a
> > few comments...
> >
> >
> > The idea behind pygora is to have a comparison ratio, to know where
> > your test line numbers
> > are related to those of your source code, this is not provided by
> > py.countloc
> >
> >
> > In the latest pygora version (you have actually replied to the first
> > announcement dated in February)
> my misstake, i was in the middle of working trough the backlog of the
> ml, and mindlessly replied to the first mail instead of finding the
> latest one
>
no big deal :)
> > speed was improved a lot, and in fact after benchmarking both tools
> > pygora takes almost
> > half the time to go through a path and get the metrics.
> >
> >
> > For example, in a directory with around 1,5 million lines of code
> > these are the times I got (best out of 3 runs):
> >
> >
> > py.countloc 4.04s user 0.50s system 99% cpu 4.572 total
> >
> >
> > pygora 2.52s user 0.66s system 97% cpu 3.253 total
> interesting timings, i think py.countloc was only optimized for accurate
> numbers, not raw speed, i'll take a look at that once my todo is shorted
> out
>
Well, I think the speed improvements are a by-product of refactoring the
previous version.
> >
> >
> > There is also no way to tell py.countloc to avoid printing *every*
> > single file it is counting. This is specially
> > annoying for 1.5m lines of code, also, no way of filtering or
> > excluding certain files.
> >
> >
> > All of those options are available with pygora (e.g. verbose option,
> > filtering etc...) although implementing
> > them in py.countloc shouldn't be a hard thing to do.
> >
> >
> > Having said that, I find that the source line detection in py.countloc
> > seems a bit more accurate. I initially had
> > trouble in deciding for example if docstrings should count as part of
> > the source code or not (I ended including them).
> thats why i wanted to point you at it after trying a easy_installed
> pygora
> >
> >
> > In my specific case, I like something fast that reports what I need.
> > If I want a ratio to be able to compare, this output
> > seems too much for me:
> >
> >
> > number of testfiles 794
> > number of non-empty testlines 158805
> > number of files 6906
> > number of non-empty lines 1342471
> >
> >
> > Compared to:
> >
> >
> > Test lines = 214669
> > Source lines = 1241449
> > Total lines = 1456118
> >
> >
> > Your test code is 17.29% of your source code
> >
> i guess i'm more interested in the other stats,
> usually the ratio of test lines vs tested code lines
> isn't that interesting (i tend to have more test lines than code lines)
> whats more interesting to me is the ratio of code/branch coverage
>
you mention "ratio" but I just don't see any ratio with py.countloc, unless
I am missing something...
I'm also confused here about "code/branch coverage". What do you mean? this
is *not*
a coverage tool, it just counts lines and compares them.
>
> >
> >
> > >
> > >
> > > Thanks for an awesome an inspiring talk Ned!
> > >
> > >
> > >
> > >
> > > --
> > > Alfredo Deza
> > >
> >
> > > _______________________________________________
> > > testing-in-python mailing list
> > > testing-in-python at lists.idyll.org
> > > http://lists.idyll.org/listinfo/testing-in-python
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.idyll.org/pipermail/testing-in-python/attachments/20101016/59af8d27/attachment.htm>
More information about the testing-in-python
mailing list