[Biopython-dev] Further PEP8 Cleanup
Christian Brueffer
christian at brueffer.de
Mon Dec 3 17:02:31 UTC 2012
On 12/3/12 21:34 , Peter Cock wrote:
> On Mon, Dec 3, 2012 at 12:46 PM, Christian Brueffer
> <christian at brueffer.de> wrote:
>> Hi,
>
> Hi Christian,
>
> Thanks for all the pull requests sorting out issues like this, in
> terms of lines of code you'll probably be one of the top
> contributors to the next release ;) This sort of work isn't as
> high profile as new features or bug fixes, but has a more
> subtle role in the long term of the project - making our code
> easier to follow etc. So we do appreciate these contributions.
>
>> I just submitted pull request #102 which fixes several types of PEP8
>> warnings (found using the awesome pep8 tool).
>
> 101 not 102? https://github.com/biopython/biopython/pull/101
>
102 and 103 (I actually meant 103).
>> Here's what's left after those fixes:
>>
>> $ pep8 --statistics -qq repos/biopython
>> 789 E111 indentation is not a multiple of four
>
> That's nasty - although I think we've got rid of all the tabbed
> indentation already which was also very annoying.
>
Some code uses two spaces etc, definatelty worth fixing.
>> 673 E121 continuation line indentation is not a multiple of four
>
> I suspect many of those are a style judgement and done that
> way to line up parentheses etc.
>
I'll see about those and apply case by case judgement.
>> 693 E122 continuation line missing indentation or outdented
>> 171 E123 closing bracket does not match indentation of opening bracket's
>> line
>> 86 E124 closing bracket does not match visual indentation
>> 49 E125 continuation line does not distinguish itself from next logical
>> line
>> 197 E126 continuation line over-indented for hanging indent
>> 575 E127 continuation line over-indented for visual indent
>> 1092 E128 continuation line under-indented for visual indent
>> 773 E201 whitespace after '('
>> 540 E202 whitespace before ')'
>> 23543 E203 whitespace before ':'
>> 55 E211 whitespace before '('
>
> I'd like to see E201, E202, and E211 fixed (whitespace next to
> parentheses).
>
> The count for E203 is surprisingly high - I suspect that
> could include some large dictionaries? Note some of the
> dictionaries are auto-generated so the code to do that
> would also need fixing.
>
>> 180 E221 multiple spaces before operator
>> 59 E222 multiple spaces after operator
>> 5848 E225 missing whitespace around operator
>> 6517 E231 missing whitespace after ','
>> 2544 E251 no spaces around keyword / parameter equals
>> 644 E261 at least two spaces before inline comment
>> 346 E262 inline comment should start with '# '
>> 156 E301 expected 1 blank line, found 0
>> 1838 E302 expected 2 blank lines, found 1
>> 364 E303 too many blank lines (2)
>> 15553 E501 line too long (82 > 79 characters)
>> 857 E502 the backslash is redundant between brackets
>
> Fixing E502 seems a good idea, I suspect many of these are
> purely accidental due to not realising when they are redundant.
>
Agreed.
>> 291 E701 multiple statements on one line (colon)
>> 122 E711 comparison to None should be 'if cond is None:'
>> 3707 W291 trailing whitespace
>> 1913 W293 blank line contains whitespace
>>
>> I'm not sure where to go from here with regard to what's worth fixing and
>> what would be considered repo churn (or gratuitous changes that make
>> merging of existing patches harder).
>>
>> I'd especially like to clean up E301, E302,
>
> E301 and E302 presumable are about the recommended spacing
> between function, class and method names? If you want to fix
> them next that seems low risk in terms of complicating merges.
>
That and spacing between functions or between a function and a new
class.
>> ... E701, E711, W291 and W293.
>
> Did you already fix most of those in today's pull request?
> https://github.com/biopython/biopython/pull/101
>
> If there are more cases, then by all means fix them too.
>
I fixed some in Nexus, that was before actually using the pep8 tool.
>> Other items like E251 are more dubious, as some developers
>> seem to prefer the current style.
>>
>> What do you think?
>
> We have a range of styles in the current code base reflecting
> different authors - and also changes in the Python conventions
> as some of the code is now over ten years old. And if any of
> my personal coding style is flagged, I'm willing to adapt ;)
>
> (e.g. I've learnt not to put a space before if statement colons)
>
> As you point out, the "repo churn" from fixing minor things
> like spaces around operators does have a cost in making
> merges a little harder. Things like the exception style updates
> which you've already fixed (seems I missed some) are more
> urgent for Python 3 support, so worth doing anyway.
>
On the other hand, it's basically a one-time cost. However I
want to fix the lowest-hanging fruit (read: the ones with the
lowest counts ;-) first.
> You've got us a lot closer to PEP8 compliance - do you think
> subject to a short white list of known cases (like module
> names) where we don't follow PEP8 we could aim to run a
> a pep8 tool automatically (e.g. as a unit test, or even a commit
> hook)? That is quite appealing as a way to spot any new code
> which breaks the style guidelines...
>
Having a commit hook would be ideal (maybe with a possibility to
override). This would be especially useful against the introduction of
gratuitous whitespace. With some editors/IDEs you don't even notice it.
Chris
More information about the Biopython-dev
mailing list