Statistics
| Branch: | Tag: | Revision:

root / ci / pep8.py @ 0a83201b

History | View | Annotate | Download (1.7 kB)

1 09f7ad00 Ilias Tsitsimpis
#!/usr/bin/env python
2 09f7ad00 Ilias Tsitsimpis
3 09f7ad00 Ilias Tsitsimpis
"""
4 09f7ad00 Ilias Tsitsimpis
Check for pep8 error in a list of files
5 09f7ad00 Ilias Tsitsimpis

6 09f7ad00 Ilias Tsitsimpis
Get a list of files as command line arguments.
7 09f7ad00 Ilias Tsitsimpis
Of these files, invoke pep8 only for the ones that
8 09f7ad00 Ilias Tsitsimpis
actually exists, their name ends with .py, and doesn't
9 09f7ad00 Ilias Tsitsimpis
belong to our exclude list.
10 09f7ad00 Ilias Tsitsimpis

11 09f7ad00 Ilias Tsitsimpis
"""
12 09f7ad00 Ilias Tsitsimpis
13 09f7ad00 Ilias Tsitsimpis
import os
14 09f7ad00 Ilias Tsitsimpis
import sys
15 09f7ad00 Ilias Tsitsimpis
16 09f7ad00 Ilias Tsitsimpis
17 09f7ad00 Ilias Tsitsimpis
EXCLUDE = [
18 09f7ad00 Ilias Tsitsimpis
    "distribute_setup.py",
19 09f7ad00 Ilias Tsitsimpis
    "setup.py",
20 09f7ad00 Ilias Tsitsimpis
    "rapi.py",
21 09f7ad00 Ilias Tsitsimpis
    "dictconfig.py",
22 09f7ad00 Ilias Tsitsimpis
    "ordereddict.py",
23 09f7ad00 Ilias Tsitsimpis
    "parsedate.py",
24 09f7ad00 Ilias Tsitsimpis
]
25 09f7ad00 Ilias Tsitsimpis
26 09f7ad00 Ilias Tsitsimpis
27 09f7ad00 Ilias Tsitsimpis
def filter_files(files):
28 09f7ad00 Ilias Tsitsimpis
    """Filter our non-useful files
29 09f7ad00 Ilias Tsitsimpis

30 09f7ad00 Ilias Tsitsimpis
    We want to keep only python files (ending with .py),
31 09f7ad00 Ilias Tsitsimpis
    that actually exists and are not in our exclude list
32 09f7ad00 Ilias Tsitsimpis
    """
33 09f7ad00 Ilias Tsitsimpis
34 09f7ad00 Ilias Tsitsimpis
    # Remove duplicated file names
35 09f7ad00 Ilias Tsitsimpis
    files = list(set(files))
36 09f7ad00 Ilias Tsitsimpis
37 09f7ad00 Ilias Tsitsimpis
    py_files = []
38 09f7ad00 Ilias Tsitsimpis
    for f in files:
39 09f7ad00 Ilias Tsitsimpis
        # Check if file is a python file
40 09f7ad00 Ilias Tsitsimpis
        if not f.endswith(".py"):
41 09f7ad00 Ilias Tsitsimpis
            continue
42 09f7ad00 Ilias Tsitsimpis
        #Check if file is to be excluded
43 09f7ad00 Ilias Tsitsimpis
        if os.path.basename(f) in EXCLUDE:
44 09f7ad00 Ilias Tsitsimpis
            continue
45 09f7ad00 Ilias Tsitsimpis
        # Check if file existsw
46 09f7ad00 Ilias Tsitsimpis
        if not os.path.isfile(f):
47 09f7ad00 Ilias Tsitsimpis
            continue
48 09f7ad00 Ilias Tsitsimpis
        # Append file name
49 09f7ad00 Ilias Tsitsimpis
        py_files.append(f)
50 09f7ad00 Ilias Tsitsimpis
51 09f7ad00 Ilias Tsitsimpis
    return py_files
52 09f7ad00 Ilias Tsitsimpis
53 09f7ad00 Ilias Tsitsimpis
54 09f7ad00 Ilias Tsitsimpis
def run_pep8(files):
55 09f7ad00 Ilias Tsitsimpis
    """Invoke pep8
56 09f7ad00 Ilias Tsitsimpis

57 09f7ad00 Ilias Tsitsimpis
    Return the exit code
58 09f7ad00 Ilias Tsitsimpis

59 09f7ad00 Ilias Tsitsimpis
    """
60 09f7ad00 Ilias Tsitsimpis
    if files:
61 09f7ad00 Ilias Tsitsimpis
        print "Invoke pep8 for the following files:\n  %s\n\n" \
62 09f7ad00 Ilias Tsitsimpis
            % "\n  ".join(files)
63 09f7ad00 Ilias Tsitsimpis
        return os.system("pep8 %s" % " ".join(files))
64 09f7ad00 Ilias Tsitsimpis
    else:
65 09f7ad00 Ilias Tsitsimpis
        print "No files to check.. aborting"
66 09f7ad00 Ilias Tsitsimpis
        return 0
67 09f7ad00 Ilias Tsitsimpis
68 09f7ad00 Ilias Tsitsimpis
69 09f7ad00 Ilias Tsitsimpis
def main():
70 09f7ad00 Ilias Tsitsimpis
    """Our main program
71 09f7ad00 Ilias Tsitsimpis

72 09f7ad00 Ilias Tsitsimpis
    Read command line arguments.
73 09f7ad00 Ilias Tsitsimpis
    Filter out non-useful files.
74 09f7ad00 Ilias Tsitsimpis
    Invoke pep8.
75 09f7ad00 Ilias Tsitsimpis

76 09f7ad00 Ilias Tsitsimpis
    """
77 09f7ad00 Ilias Tsitsimpis
    files = sys.argv[1:]
78 09f7ad00 Ilias Tsitsimpis
    py_files = filter_files(files)
79 09f7ad00 Ilias Tsitsimpis
    exit_code = run_pep8(py_files)
80 09f7ad00 Ilias Tsitsimpis
    if exit_code != 0:
81 09f7ad00 Ilias Tsitsimpis
        status = "exit with status %s" % exit_code
82 09f7ad00 Ilias Tsitsimpis
        sys.exit(status)
83 09f7ad00 Ilias Tsitsimpis
84 09f7ad00 Ilias Tsitsimpis
85 09f7ad00 Ilias Tsitsimpis
if __name__ == "__main__":
86 09f7ad00 Ilias Tsitsimpis
    main()