File: pyflakes.py

package info (click to toggle)
python-gevent 1.0.1-2
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 9,948 kB
  • ctags: 12,954
  • sloc: python: 39,061; ansic: 26,289; sh: 13,582; makefile: 833; awk: 18
file content (66 lines) | stat: -rwxr-xr-x 1,896 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/python
import sys
import re
import subprocess


IGNORED = r'''
gevent/socket.py:\d+: undefined name
gevent/socket.py:\d+: 'sslerror' imported but unused
gevent/socket.py:\d+: 'SSLType' imported but unused
gevent/socket.py:\d+: 'ssl' imported but unused
gevent/subprocess.py:\d+: undefined name
gevent/ssl.py:\d+: undefined name
gevent/__init__.py:\d+:.*imported but unused
gevent/__init__.py:\d+: redefinition of unused 'signal' from line
gevent/coros.py:\d+: 'from gevent.lock import *' used; unable to detect undefined names
gevent/coros.py:\d+: '__all__' imported but unused
gevent/thread.py:\d+: '_local' imported but unused
gevent/threading.py:\d+: '\w+' imported but unused
gevent/wsgi.py:1: 'from gevent.pywsgi import *' used; unable to detect undefined names
examples/webchat/urls.py:1: 'from django.conf.urls.defaults import *' used; unable to detect undefined names
greentest/test__queue.py:\d+: undefined name 'GenericGetTestCase'
greentest/test__server_pywsgi.py:
'''

IGNORED = IGNORED.strip().replace(' *', ' \\*').split('\n')


def is_ignored(line):
    for pattern in IGNORED:
        if re.match(pattern, line):
            return True


popen = subprocess.Popen('%s `which pyflakes` gevent/ examples/ greentest/*.py util/ *.py' % sys.executable,
                         shell=True,
                         stdout=subprocess.PIPE,
                         stderr=subprocess.PIPE)
output, errors = popen.communicate()

if errors:
    sys.stderr.write(errors.decode())

if popen.poll() != 1:
    sys.stderr.write(output + '\n')
    sys.exit('pyflakes returned %r' % popen.poll())

if errors:
    sys.exit(1)

assert output

output = output.strip().split('\n')
failed = False


for line in output:
    line = line.strip()
    if not is_ignored(line):
        print 'E %s' % line
        failed = True
    #else:
    #    print 'I %s' % line

if failed:
    sys.exit(1)