If ever someone wants to clean up the repository to conform to PEP 7, I
wrote a program that catches a couple hundred PEP 7 violations in ./Python
alone (1400 in the whole codebase):

import os
import re

def grep(path, regex):
    reg_obj = re.compile(regex, re.M)
    res = []
    for root, dirs, fnames in os.walk(path):
        for fname in fnames:
            if fname.endswith('.c'):
                path = os.path.join(root, fname)
                with open(path) as f:
                    data = f.read()
                    for m in reg_obj.finditer(data):
                        line_number = sum(c == '\n'
                                          for c in data[:m.start()]) + 1
                        res.append("{}: {}".format(path, line_number))
    return res

for pattern in [
        r'^\s*\|\|',
        r'^\s*\&\&',
        r'} else {',
        r'\<return\s*\(',
]:
    print("Searching for", pattern)
    print("\n".join(grep('.', pattern)))

In my experience, it was hard to write PEP 7 conforming code when the
surrounding code is inconsistent.

Best,

Neil
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to