##// END OF EJS Templates
pytype: add relative timestamp to the output if `ts` is available...
marmoute -
r53095:06973506 stable
parent child Browse files
Show More
@@ -1,124 +1,132
1 #!/bin/sh
1 #!/bin/sh
2
2
3 set -e
3 set -e
4 set -u
4 set -u
5
5
6 cd "$(hg root)"
6 cd "$(hg root)"
7
7
8 printf "pytype version: "
8 printf "pytype version: "
9 pytype --version
9 pytype --version
10
10
11 # Many of the individual files that are excluded here confuse pytype
11 # Many of the individual files that are excluded here confuse pytype
12 # because they do a mix of Python 2 and Python 3 things
12 # because they do a mix of Python 2 and Python 3 things
13 # conditionally. There's no good way to help it out with that as far as
13 # conditionally. There's no good way to help it out with that as far as
14 # I can tell, so let's just hide those files from it for now. We should
14 # I can tell, so let's just hide those files from it for now. We should
15 # endeavor to empty this list out over time, as some of these are
15 # endeavor to empty this list out over time, as some of these are
16 # probably hiding real problems.
16 # probably hiding real problems.
17 #
17 #
18 # hgext/absorb.py # [attribute-error]
18 # hgext/absorb.py # [attribute-error]
19 # hgext/bugzilla.py # [pyi-error], [attribute-error]
19 # hgext/bugzilla.py # [pyi-error], [attribute-error]
20 # hgext/convert/bzr.py # [attribute-error]
20 # hgext/convert/bzr.py # [attribute-error]
21 # hgext/convert/cvs.py # [attribute-error], [wrong-arg-types]
21 # hgext/convert/cvs.py # [attribute-error], [wrong-arg-types]
22 # hgext/convert/cvsps.py # [attribute-error]
22 # hgext/convert/cvsps.py # [attribute-error]
23 # hgext/convert/p4.py # [wrong-arg-types] (__file: mercurial.utils.procutil._pfile -> IO)
23 # hgext/convert/p4.py # [wrong-arg-types] (__file: mercurial.utils.procutil._pfile -> IO)
24 # hgext/convert/subversion.py # [attribute-error], [name-error], [pyi-error]
24 # hgext/convert/subversion.py # [attribute-error], [name-error], [pyi-error]
25 # hgext/fastannotate/context.py # no linelog.copyfrom()
25 # hgext/fastannotate/context.py # no linelog.copyfrom()
26 # hgext/fastannotate/formatter.py # [unsupported-operands]
26 # hgext/fastannotate/formatter.py # [unsupported-operands]
27 # hgext/fsmonitor/__init__.py # [name-error]
27 # hgext/fsmonitor/__init__.py # [name-error]
28 # hgext/git/__init__.py # [attribute-error]
28 # hgext/git/__init__.py # [attribute-error]
29 # hgext/githelp.py # [attribute-error] [wrong-arg-types]
29 # hgext/githelp.py # [attribute-error] [wrong-arg-types]
30 # hgext/hgk.py # [attribute-error]
30 # hgext/hgk.py # [attribute-error]
31 # hgext/histedit.py # [attribute-error], [wrong-arg-types]
31 # hgext/histedit.py # [attribute-error], [wrong-arg-types]
32 # hgext/keyword.py # [attribute-error]
32 # hgext/keyword.py # [attribute-error]
33 # hgext/largefiles/storefactory.py # [attribute-error]
33 # hgext/largefiles/storefactory.py # [attribute-error]
34 # hgext/lfs/__init__.py # [attribute-error]
34 # hgext/lfs/__init__.py # [attribute-error]
35 # hgext/narrow/narrowbundle2.py # [attribute-error]
35 # hgext/narrow/narrowbundle2.py # [attribute-error]
36 # hgext/narrow/narrowcommands.py # [attribute-error], [name-error]
36 # hgext/narrow/narrowcommands.py # [attribute-error], [name-error]
37 # hgext/rebase.py # [attribute-error]
37 # hgext/rebase.py # [attribute-error]
38 # hgext/remotefilelog/basepack.py # [attribute-error], [wrong-arg-count]
38 # hgext/remotefilelog/basepack.py # [attribute-error], [wrong-arg-count]
39 # hgext/remotefilelog/basestore.py # [attribute-error]
39 # hgext/remotefilelog/basestore.py # [attribute-error]
40 # hgext/remotefilelog/contentstore.py # [missing-parameter], [wrong-keyword-args], [attribute-error]
40 # hgext/remotefilelog/contentstore.py # [missing-parameter], [wrong-keyword-args], [attribute-error]
41 # hgext/remotefilelog/fileserverclient.py # [attribute-error]
41 # hgext/remotefilelog/fileserverclient.py # [attribute-error]
42 # hgext/remotefilelog/shallowbundle.py # [attribute-error]
42 # hgext/remotefilelog/shallowbundle.py # [attribute-error]
43 # hgext/remotefilelog/remotefilectx.py # [module-attr] (This is an actual bug)
43 # hgext/remotefilelog/remotefilectx.py # [module-attr] (This is an actual bug)
44 # hgext/sqlitestore.py # [attribute-error]
44 # hgext/sqlitestore.py # [attribute-error]
45 # hgext/zeroconf/__init__.py # bytes vs str; tests fail on macOS
45 # hgext/zeroconf/__init__.py # bytes vs str; tests fail on macOS
46 #
46 #
47 # mercurial/context.py # many [attribute-error]
47 # mercurial/context.py # many [attribute-error]
48 # mercurial/crecord.py # tons of [attribute-error], [module-attr]
48 # mercurial/crecord.py # tons of [attribute-error], [module-attr]
49 # mercurial/debugcommands.py # [wrong-arg-types]
49 # mercurial/debugcommands.py # [wrong-arg-types]
50 # mercurial/dispatch.py # initstdio: No attribute ... on TextIO [attribute-error]
50 # mercurial/dispatch.py # initstdio: No attribute ... on TextIO [attribute-error]
51 # mercurial/exchange.py # [attribute-error]
51 # mercurial/exchange.py # [attribute-error]
52 # mercurial/hgweb/hgweb_mod.py # [attribute-error], [name-error], [wrong-arg-types]
52 # mercurial/hgweb/hgweb_mod.py # [attribute-error], [name-error], [wrong-arg-types]
53 # mercurial/hgweb/server.py # [attribute-error], [name-error], [module-attr]
53 # mercurial/hgweb/server.py # [attribute-error], [name-error], [module-attr]
54 # mercurial/hgweb/wsgicgi.py # confused values in os.environ
54 # mercurial/hgweb/wsgicgi.py # confused values in os.environ
55 # mercurial/httppeer.py # [attribute-error], [wrong-arg-types]
55 # mercurial/httppeer.py # [attribute-error], [wrong-arg-types]
56 # mercurial/interfaces # No attribute 'capabilities' on peer [attribute-error]
56 # mercurial/interfaces # No attribute 'capabilities' on peer [attribute-error]
57 # mercurial/keepalive.py # [attribute-error]
57 # mercurial/keepalive.py # [attribute-error]
58 # mercurial/localrepo.py # [attribute-error]
58 # mercurial/localrepo.py # [attribute-error]
59 # mercurial/minirst.py # [unsupported-operands], [attribute-error]
59 # mercurial/minirst.py # [unsupported-operands], [attribute-error]
60 # mercurial/pure/parsers.py # [attribute-error]
60 # mercurial/pure/parsers.py # [attribute-error]
61 # mercurial/repoview.py # [attribute-error]
61 # mercurial/repoview.py # [attribute-error]
62 # mercurial/testing/storage.py # tons of [attribute-error]
62 # mercurial/testing/storage.py # tons of [attribute-error]
63 # mercurial/win32.py # [not-callable]
63 # mercurial/win32.py # [not-callable]
64 # mercurial/wireprotov1server.py # BUG?: BundleValueError handler accesses subclass's attrs
64 # mercurial/wireprotov1server.py # BUG?: BundleValueError handler accesses subclass's attrs
65
65
66 # TODO: use --no-cache on test server? Caching the files locally helps during
66 # TODO: use --no-cache on test server? Caching the files locally helps during
67 # development, but may be a hinderance for CI testing.
67 # development, but may be a hinderance for CI testing.
68
68
69 # TODO: include hgext and hgext3rd
69 # TODO: include hgext and hgext3rd
70
70
71 # use ts to produce some timing if available
72 if ! command -v ts; then
73 ts() {
74 cat
75 }
76 fi
77
71 pytype --keep-going --jobs auto \
78 pytype --keep-going --jobs auto \
72 doc/check-seclevel.py hgdemandimport hgext mercurial \
79 doc/check-seclevel.py hgdemandimport hgext mercurial \
73 -x hgext/absorb.py \
80 -x hgext/absorb.py \
74 -x hgext/bugzilla.py \
81 -x hgext/bugzilla.py \
75 -x hgext/convert/bzr.py \
82 -x hgext/convert/bzr.py \
76 -x hgext/convert/cvs.py \
83 -x hgext/convert/cvs.py \
77 -x hgext/convert/cvsps.py \
84 -x hgext/convert/cvsps.py \
78 -x hgext/convert/p4.py \
85 -x hgext/convert/p4.py \
79 -x hgext/convert/subversion.py \
86 -x hgext/convert/subversion.py \
80 -x hgext/fastannotate/context.py \
87 -x hgext/fastannotate/context.py \
81 -x hgext/fastannotate/formatter.py \
88 -x hgext/fastannotate/formatter.py \
82 -x hgext/fsmonitor/__init__.py \
89 -x hgext/fsmonitor/__init__.py \
83 -x hgext/git/__init__.py \
90 -x hgext/git/__init__.py \
84 -x hgext/githelp.py \
91 -x hgext/githelp.py \
85 -x hgext/hgk.py \
92 -x hgext/hgk.py \
86 -x hgext/histedit.py \
93 -x hgext/histedit.py \
87 -x hgext/keyword.py \
94 -x hgext/keyword.py \
88 -x hgext/largefiles/storefactory.py \
95 -x hgext/largefiles/storefactory.py \
89 -x hgext/lfs/__init__.py \
96 -x hgext/lfs/__init__.py \
90 -x hgext/narrow/narrowbundle2.py \
97 -x hgext/narrow/narrowbundle2.py \
91 -x hgext/narrow/narrowcommands.py \
98 -x hgext/narrow/narrowcommands.py \
92 -x hgext/rebase.py \
99 -x hgext/rebase.py \
93 -x hgext/remotefilelog/basepack.py \
100 -x hgext/remotefilelog/basepack.py \
94 -x hgext/remotefilelog/basestore.py \
101 -x hgext/remotefilelog/basestore.py \
95 -x hgext/remotefilelog/contentstore.py \
102 -x hgext/remotefilelog/contentstore.py \
96 -x hgext/remotefilelog/fileserverclient.py \
103 -x hgext/remotefilelog/fileserverclient.py \
97 -x hgext/remotefilelog/remotefilectx.py \
104 -x hgext/remotefilelog/remotefilectx.py \
98 -x hgext/remotefilelog/shallowbundle.py \
105 -x hgext/remotefilelog/shallowbundle.py \
99 -x hgext/sqlitestore.py \
106 -x hgext/sqlitestore.py \
100 -x hgext/zeroconf/__init__.py \
107 -x hgext/zeroconf/__init__.py \
101 -x mercurial/context.py \
108 -x mercurial/context.py \
102 -x mercurial/crecord.py \
109 -x mercurial/crecord.py \
103 -x mercurial/debugcommands.py \
110 -x mercurial/debugcommands.py \
104 -x mercurial/dispatch.py \
111 -x mercurial/dispatch.py \
105 -x mercurial/exchange.py \
112 -x mercurial/exchange.py \
106 -x mercurial/hgweb/hgweb_mod.py \
113 -x mercurial/hgweb/hgweb_mod.py \
107 -x mercurial/hgweb/server.py \
114 -x mercurial/hgweb/server.py \
108 -x mercurial/hgweb/wsgicgi.py \
115 -x mercurial/hgweb/wsgicgi.py \
109 -x mercurial/httppeer.py \
116 -x mercurial/httppeer.py \
110 -x mercurial/interfaces \
117 -x mercurial/interfaces \
111 -x mercurial/keepalive.py \
118 -x mercurial/keepalive.py \
112 -x mercurial/localrepo.py \
119 -x mercurial/localrepo.py \
113 -x mercurial/minirst.py \
120 -x mercurial/minirst.py \
114 -x mercurial/pure/parsers.py \
121 -x mercurial/pure/parsers.py \
115 -x mercurial/repoview.py \
122 -x mercurial/repoview.py \
116 -x mercurial/testing/storage.py \
123 -x mercurial/testing/storage.py \
117 -x mercurial/thirdparty \
124 -x mercurial/thirdparty \
118 -x mercurial/win32.py \
125 -x mercurial/win32.py \
119 -x mercurial/wireprotov1server.py
126 -x mercurial/wireprotov1server.py \
127 | ts -i "(%.s)" | ts -s "%.s"
120
128
121 if find .pytype/pyi -name '*.pyi' | xargs grep -ql '# Caught error'; then
129 if find .pytype/pyi -name '*.pyi' | xargs grep -ql '# Caught error'; then
122 echo 'pytype crashed while generating the following type stubs:'
130 echo 'pytype crashed while generating the following type stubs:'
123 find .pytype/pyi -name '*.pyi' | xargs grep -l '# Caught error' | sort
131 find .pytype/pyi -name '*.pyi' | xargs grep -l '# Caught error' | sort
124 fi
132 fi
General Comments 0
You need to be logged in to leave comments. Login now