##// END OF EJS Templates
lsprof: use print function
Gregory Szorc -
r27617:b1a59b80 default
parent child Browse files
Show More
@@ -1,121 +1,121 b''
1 from __future__ import absolute_import
1 from __future__ import absolute_import, print_function
2
2
3 import _lsprof
3 import _lsprof
4 import sys
4 import sys
5
5
6 Profiler = _lsprof.Profiler
6 Profiler = _lsprof.Profiler
7
7
8 # PyPy doesn't expose profiler_entry from the module.
8 # PyPy doesn't expose profiler_entry from the module.
9 profiler_entry = getattr(_lsprof, 'profiler_entry', None)
9 profiler_entry = getattr(_lsprof, 'profiler_entry', None)
10
10
11 __all__ = ['profile', 'Stats']
11 __all__ = ['profile', 'Stats']
12
12
13 def profile(f, *args, **kwds):
13 def profile(f, *args, **kwds):
14 """XXX docstring"""
14 """XXX docstring"""
15 p = Profiler()
15 p = Profiler()
16 p.enable(subcalls=True, builtins=True)
16 p.enable(subcalls=True, builtins=True)
17 try:
17 try:
18 f(*args, **kwds)
18 f(*args, **kwds)
19 finally:
19 finally:
20 p.disable()
20 p.disable()
21 return Stats(p.getstats())
21 return Stats(p.getstats())
22
22
23
23
24 class Stats(object):
24 class Stats(object):
25 """XXX docstring"""
25 """XXX docstring"""
26
26
27 def __init__(self, data):
27 def __init__(self, data):
28 self.data = data
28 self.data = data
29
29
30 def sort(self, crit="inlinetime"):
30 def sort(self, crit="inlinetime"):
31 """XXX docstring"""
31 """XXX docstring"""
32 # profiler_entries isn't defined when running under PyPy.
32 # profiler_entries isn't defined when running under PyPy.
33 if profiler_entry:
33 if profiler_entry:
34 if crit not in profiler_entry.__dict__:
34 if crit not in profiler_entry.__dict__:
35 raise ValueError("Can't sort by %s" % crit)
35 raise ValueError("Can't sort by %s" % crit)
36 elif self.data and not getattr(self.data[0], crit, None):
36 elif self.data and not getattr(self.data[0], crit, None):
37 raise ValueError("Can't sort by %s" % crit)
37 raise ValueError("Can't sort by %s" % crit)
38
38
39 self.data.sort(key=lambda x: getattr(x, crit), reverse=True)
39 self.data.sort(key=lambda x: getattr(x, crit), reverse=True)
40 for e in self.data:
40 for e in self.data:
41 if e.calls:
41 if e.calls:
42 e.calls.sort(key=lambda x: getattr(x, crit), reverse=True)
42 e.calls.sort(key=lambda x: getattr(x, crit), reverse=True)
43
43
44 def pprint(self, top=None, file=None, limit=None, climit=None):
44 def pprint(self, top=None, file=None, limit=None, climit=None):
45 """XXX docstring"""
45 """XXX docstring"""
46 if file is None:
46 if file is None:
47 file = sys.stdout
47 file = sys.stdout
48 d = self.data
48 d = self.data
49 if top is not None:
49 if top is not None:
50 d = d[:top]
50 d = d[:top]
51 cols = "% 12s %12s %11.4f %11.4f %s\n"
51 cols = "% 12s %12s %11.4f %11.4f %s\n"
52 hcols = "% 12s %12s %12s %12s %s\n"
52 hcols = "% 12s %12s %12s %12s %s\n"
53 file.write(hcols % ("CallCount", "Recursive", "Total(s)",
53 file.write(hcols % ("CallCount", "Recursive", "Total(s)",
54 "Inline(s)", "module:lineno(function)"))
54 "Inline(s)", "module:lineno(function)"))
55 count = 0
55 count = 0
56 for e in d:
56 for e in d:
57 file.write(cols % (e.callcount, e.reccallcount, e.totaltime,
57 file.write(cols % (e.callcount, e.reccallcount, e.totaltime,
58 e.inlinetime, label(e.code)))
58 e.inlinetime, label(e.code)))
59 count += 1
59 count += 1
60 if limit is not None and count == limit:
60 if limit is not None and count == limit:
61 return
61 return
62 ccount = 0
62 ccount = 0
63 if climit and e.calls:
63 if climit and e.calls:
64 for se in e.calls:
64 for se in e.calls:
65 file.write(cols % (se.callcount, se.reccallcount,
65 file.write(cols % (se.callcount, se.reccallcount,
66 se.totaltime, se.inlinetime,
66 se.totaltime, se.inlinetime,
67 " %s" % label(se.code)))
67 " %s" % label(se.code)))
68 count += 1
68 count += 1
69 ccount += 1
69 ccount += 1
70 if limit is not None and count == limit:
70 if limit is not None and count == limit:
71 return
71 return
72 if climit is not None and ccount == climit:
72 if climit is not None and ccount == climit:
73 break
73 break
74
74
75 def freeze(self):
75 def freeze(self):
76 """Replace all references to code objects with string
76 """Replace all references to code objects with string
77 descriptions; this makes it possible to pickle the instance."""
77 descriptions; this makes it possible to pickle the instance."""
78
78
79 # this code is probably rather ickier than it needs to be!
79 # this code is probably rather ickier than it needs to be!
80 for i in range(len(self.data)):
80 for i in range(len(self.data)):
81 e = self.data[i]
81 e = self.data[i]
82 if not isinstance(e.code, str):
82 if not isinstance(e.code, str):
83 self.data[i] = type(e)((label(e.code),) + e[1:])
83 self.data[i] = type(e)((label(e.code),) + e[1:])
84 if e.calls:
84 if e.calls:
85 for j in range(len(e.calls)):
85 for j in range(len(e.calls)):
86 se = e.calls[j]
86 se = e.calls[j]
87 if not isinstance(se.code, str):
87 if not isinstance(se.code, str):
88 e.calls[j] = type(se)((label(se.code),) + se[1:])
88 e.calls[j] = type(se)((label(se.code),) + se[1:])
89
89
90 _fn2mod = {}
90 _fn2mod = {}
91
91
92 def label(code):
92 def label(code):
93 if isinstance(code, str):
93 if isinstance(code, str):
94 return code
94 return code
95 try:
95 try:
96 mname = _fn2mod[code.co_filename]
96 mname = _fn2mod[code.co_filename]
97 except KeyError:
97 except KeyError:
98 for k, v in list(sys.modules.iteritems()):
98 for k, v in list(sys.modules.iteritems()):
99 if v is None:
99 if v is None:
100 continue
100 continue
101 if not isinstance(getattr(v, '__file__', None), str):
101 if not isinstance(getattr(v, '__file__', None), str):
102 continue
102 continue
103 if v.__file__.startswith(code.co_filename):
103 if v.__file__.startswith(code.co_filename):
104 mname = _fn2mod[code.co_filename] = k
104 mname = _fn2mod[code.co_filename] = k
105 break
105 break
106 else:
106 else:
107 mname = _fn2mod[code.co_filename] = '<%s>' % code.co_filename
107 mname = _fn2mod[code.co_filename] = '<%s>' % code.co_filename
108
108
109 return '%s:%d(%s)' % (mname, code.co_firstlineno, code.co_name)
109 return '%s:%d(%s)' % (mname, code.co_firstlineno, code.co_name)
110
110
111
111
112 if __name__ == '__main__':
112 if __name__ == '__main__':
113 import os
113 import os
114 sys.argv = sys.argv[1:]
114 sys.argv = sys.argv[1:]
115 if not sys.argv:
115 if not sys.argv:
116 print >> sys.stderr, "usage: lsprof.py <script> <arguments...>"
116 print("usage: lsprof.py <script> <arguments...>", file=sys.stderr)
117 sys.exit(2)
117 sys.exit(2)
118 sys.path.insert(0, os.path.abspath(os.path.dirname(sys.argv[0])))
118 sys.path.insert(0, os.path.abspath(os.path.dirname(sys.argv[0])))
119 stats = profile(execfile, sys.argv[0], globals(), locals())
119 stats = profile(execfile, sys.argv[0], globals(), locals())
120 stats.sort()
120 stats.sort()
121 stats.pprint()
121 stats.pprint()
@@ -1,184 +1,183 b''
1 #require test-repo
1 #require test-repo
2
2
3 $ cd "$TESTDIR"/..
3 $ cd "$TESTDIR"/..
4
4
5 $ hg files 'set:(**.py)' | sed 's|\\|/|g' | xargs python contrib/check-py3-compat.py
5 $ hg files 'set:(**.py)' | sed 's|\\|/|g' | xargs python contrib/check-py3-compat.py
6 contrib/casesmash.py not using absolute_import
6 contrib/casesmash.py not using absolute_import
7 contrib/check-code.py not using absolute_import
7 contrib/check-code.py not using absolute_import
8 contrib/check-code.py requires print_function
8 contrib/check-code.py requires print_function
9 contrib/check-config.py not using absolute_import
9 contrib/check-config.py not using absolute_import
10 contrib/check-config.py requires print_function
10 contrib/check-config.py requires print_function
11 contrib/debugcmdserver.py not using absolute_import
11 contrib/debugcmdserver.py not using absolute_import
12 contrib/debugcmdserver.py requires print_function
12 contrib/debugcmdserver.py requires print_function
13 contrib/debugshell.py not using absolute_import
13 contrib/debugshell.py not using absolute_import
14 contrib/fixpax.py not using absolute_import
14 contrib/fixpax.py not using absolute_import
15 contrib/fixpax.py requires print_function
15 contrib/fixpax.py requires print_function
16 contrib/hgclient.py not using absolute_import
16 contrib/hgclient.py not using absolute_import
17 contrib/hgclient.py requires print_function
17 contrib/hgclient.py requires print_function
18 contrib/hgfixes/fix_bytes.py not using absolute_import
18 contrib/hgfixes/fix_bytes.py not using absolute_import
19 contrib/hgfixes/fix_bytesmod.py not using absolute_import
19 contrib/hgfixes/fix_bytesmod.py not using absolute_import
20 contrib/hgfixes/fix_leftover_imports.py not using absolute_import
20 contrib/hgfixes/fix_leftover_imports.py not using absolute_import
21 contrib/import-checker.py not using absolute_import
21 contrib/import-checker.py not using absolute_import
22 contrib/import-checker.py requires print_function
22 contrib/import-checker.py requires print_function
23 contrib/memory.py not using absolute_import
23 contrib/memory.py not using absolute_import
24 contrib/perf.py not using absolute_import
24 contrib/perf.py not using absolute_import
25 contrib/python-hook-examples.py not using absolute_import
25 contrib/python-hook-examples.py not using absolute_import
26 contrib/revsetbenchmarks.py not using absolute_import
26 contrib/revsetbenchmarks.py not using absolute_import
27 contrib/revsetbenchmarks.py requires print_function
27 contrib/revsetbenchmarks.py requires print_function
28 contrib/showstack.py not using absolute_import
28 contrib/showstack.py not using absolute_import
29 contrib/synthrepo.py not using absolute_import
29 contrib/synthrepo.py not using absolute_import
30 contrib/win32/hgwebdir_wsgi.py not using absolute_import
30 contrib/win32/hgwebdir_wsgi.py not using absolute_import
31 doc/check-seclevel.py not using absolute_import
31 doc/check-seclevel.py not using absolute_import
32 doc/gendoc.py not using absolute_import
32 doc/gendoc.py not using absolute_import
33 doc/hgmanpage.py not using absolute_import
33 doc/hgmanpage.py not using absolute_import
34 hgext/__init__.py not using absolute_import
34 hgext/__init__.py not using absolute_import
35 hgext/acl.py not using absolute_import
35 hgext/acl.py not using absolute_import
36 hgext/blackbox.py not using absolute_import
36 hgext/blackbox.py not using absolute_import
37 hgext/bugzilla.py not using absolute_import
37 hgext/bugzilla.py not using absolute_import
38 hgext/censor.py not using absolute_import
38 hgext/censor.py not using absolute_import
39 hgext/children.py not using absolute_import
39 hgext/children.py not using absolute_import
40 hgext/churn.py not using absolute_import
40 hgext/churn.py not using absolute_import
41 hgext/clonebundles.py not using absolute_import
41 hgext/clonebundles.py not using absolute_import
42 hgext/color.py not using absolute_import
42 hgext/color.py not using absolute_import
43 hgext/convert/__init__.py not using absolute_import
43 hgext/convert/__init__.py not using absolute_import
44 hgext/convert/bzr.py not using absolute_import
44 hgext/convert/bzr.py not using absolute_import
45 hgext/convert/common.py not using absolute_import
45 hgext/convert/common.py not using absolute_import
46 hgext/convert/convcmd.py not using absolute_import
46 hgext/convert/convcmd.py not using absolute_import
47 hgext/convert/cvs.py not using absolute_import
47 hgext/convert/cvs.py not using absolute_import
48 hgext/convert/cvsps.py not using absolute_import
48 hgext/convert/cvsps.py not using absolute_import
49 hgext/convert/darcs.py not using absolute_import
49 hgext/convert/darcs.py not using absolute_import
50 hgext/convert/filemap.py not using absolute_import
50 hgext/convert/filemap.py not using absolute_import
51 hgext/convert/git.py not using absolute_import
51 hgext/convert/git.py not using absolute_import
52 hgext/convert/gnuarch.py not using absolute_import
52 hgext/convert/gnuarch.py not using absolute_import
53 hgext/convert/hg.py not using absolute_import
53 hgext/convert/hg.py not using absolute_import
54 hgext/convert/monotone.py not using absolute_import
54 hgext/convert/monotone.py not using absolute_import
55 hgext/convert/p4.py not using absolute_import
55 hgext/convert/p4.py not using absolute_import
56 hgext/convert/subversion.py not using absolute_import
56 hgext/convert/subversion.py not using absolute_import
57 hgext/convert/transport.py not using absolute_import
57 hgext/convert/transport.py not using absolute_import
58 hgext/eol.py not using absolute_import
58 hgext/eol.py not using absolute_import
59 hgext/extdiff.py not using absolute_import
59 hgext/extdiff.py not using absolute_import
60 hgext/factotum.py not using absolute_import
60 hgext/factotum.py not using absolute_import
61 hgext/fetch.py not using absolute_import
61 hgext/fetch.py not using absolute_import
62 hgext/gpg.py not using absolute_import
62 hgext/gpg.py not using absolute_import
63 hgext/graphlog.py not using absolute_import
63 hgext/graphlog.py not using absolute_import
64 hgext/hgcia.py not using absolute_import
64 hgext/hgcia.py not using absolute_import
65 hgext/hgk.py not using absolute_import
65 hgext/hgk.py not using absolute_import
66 hgext/highlight/__init__.py not using absolute_import
66 hgext/highlight/__init__.py not using absolute_import
67 hgext/highlight/highlight.py not using absolute_import
67 hgext/highlight/highlight.py not using absolute_import
68 hgext/histedit.py not using absolute_import
68 hgext/histedit.py not using absolute_import
69 hgext/keyword.py not using absolute_import
69 hgext/keyword.py not using absolute_import
70 hgext/largefiles/__init__.py not using absolute_import
70 hgext/largefiles/__init__.py not using absolute_import
71 hgext/largefiles/basestore.py not using absolute_import
71 hgext/largefiles/basestore.py not using absolute_import
72 hgext/largefiles/lfcommands.py not using absolute_import
72 hgext/largefiles/lfcommands.py not using absolute_import
73 hgext/largefiles/lfutil.py not using absolute_import
73 hgext/largefiles/lfutil.py not using absolute_import
74 hgext/largefiles/localstore.py not using absolute_import
74 hgext/largefiles/localstore.py not using absolute_import
75 hgext/largefiles/overrides.py not using absolute_import
75 hgext/largefiles/overrides.py not using absolute_import
76 hgext/largefiles/proto.py not using absolute_import
76 hgext/largefiles/proto.py not using absolute_import
77 hgext/largefiles/remotestore.py not using absolute_import
77 hgext/largefiles/remotestore.py not using absolute_import
78 hgext/largefiles/reposetup.py not using absolute_import
78 hgext/largefiles/reposetup.py not using absolute_import
79 hgext/largefiles/uisetup.py not using absolute_import
79 hgext/largefiles/uisetup.py not using absolute_import
80 hgext/largefiles/wirestore.py not using absolute_import
80 hgext/largefiles/wirestore.py not using absolute_import
81 hgext/mq.py not using absolute_import
81 hgext/mq.py not using absolute_import
82 hgext/notify.py not using absolute_import
82 hgext/notify.py not using absolute_import
83 hgext/pager.py not using absolute_import
83 hgext/pager.py not using absolute_import
84 hgext/patchbomb.py not using absolute_import
84 hgext/patchbomb.py not using absolute_import
85 hgext/purge.py not using absolute_import
85 hgext/purge.py not using absolute_import
86 hgext/rebase.py not using absolute_import
86 hgext/rebase.py not using absolute_import
87 hgext/record.py not using absolute_import
87 hgext/record.py not using absolute_import
88 hgext/relink.py not using absolute_import
88 hgext/relink.py not using absolute_import
89 hgext/schemes.py not using absolute_import
89 hgext/schemes.py not using absolute_import
90 hgext/share.py not using absolute_import
90 hgext/share.py not using absolute_import
91 hgext/shelve.py not using absolute_import
91 hgext/shelve.py not using absolute_import
92 hgext/strip.py not using absolute_import
92 hgext/strip.py not using absolute_import
93 hgext/transplant.py not using absolute_import
93 hgext/transplant.py not using absolute_import
94 hgext/win32mbcs.py not using absolute_import
94 hgext/win32mbcs.py not using absolute_import
95 hgext/win32text.py not using absolute_import
95 hgext/win32text.py not using absolute_import
96 hgext/zeroconf/Zeroconf.py not using absolute_import
96 hgext/zeroconf/Zeroconf.py not using absolute_import
97 hgext/zeroconf/Zeroconf.py requires print_function
97 hgext/zeroconf/Zeroconf.py requires print_function
98 hgext/zeroconf/__init__.py not using absolute_import
98 hgext/zeroconf/__init__.py not using absolute_import
99 i18n/check-translation.py not using absolute_import
99 i18n/check-translation.py not using absolute_import
100 i18n/polib.py not using absolute_import
100 i18n/polib.py not using absolute_import
101 mercurial/cmdutil.py not using absolute_import
101 mercurial/cmdutil.py not using absolute_import
102 mercurial/commands.py not using absolute_import
102 mercurial/commands.py not using absolute_import
103 mercurial/lsprof.py requires print_function
104 mercurial/lsprofcalltree.py requires print_function
103 mercurial/lsprofcalltree.py requires print_function
105 mercurial/mail.py requires print_function
104 mercurial/mail.py requires print_function
106 setup.py not using absolute_import
105 setup.py not using absolute_import
107 tests/filterpyflakes.py requires print_function
106 tests/filterpyflakes.py requires print_function
108 tests/generate-working-copy-states.py requires print_function
107 tests/generate-working-copy-states.py requires print_function
109 tests/get-with-headers.py requires print_function
108 tests/get-with-headers.py requires print_function
110 tests/heredoctest.py requires print_function
109 tests/heredoctest.py requires print_function
111 tests/hypothesishelpers.py not using absolute_import
110 tests/hypothesishelpers.py not using absolute_import
112 tests/hypothesishelpers.py requires print_function
111 tests/hypothesishelpers.py requires print_function
113 tests/killdaemons.py not using absolute_import
112 tests/killdaemons.py not using absolute_import
114 tests/md5sum.py not using absolute_import
113 tests/md5sum.py not using absolute_import
115 tests/mockblackbox.py not using absolute_import
114 tests/mockblackbox.py not using absolute_import
116 tests/printenv.py not using absolute_import
115 tests/printenv.py not using absolute_import
117 tests/readlink.py not using absolute_import
116 tests/readlink.py not using absolute_import
118 tests/readlink.py requires print_function
117 tests/readlink.py requires print_function
119 tests/revlog-formatv0.py not using absolute_import
118 tests/revlog-formatv0.py not using absolute_import
120 tests/run-tests.py not using absolute_import
119 tests/run-tests.py not using absolute_import
121 tests/seq.py not using absolute_import
120 tests/seq.py not using absolute_import
122 tests/seq.py requires print_function
121 tests/seq.py requires print_function
123 tests/silenttestrunner.py not using absolute_import
122 tests/silenttestrunner.py not using absolute_import
124 tests/silenttestrunner.py requires print_function
123 tests/silenttestrunner.py requires print_function
125 tests/sitecustomize.py not using absolute_import
124 tests/sitecustomize.py not using absolute_import
126 tests/svn-safe-append.py not using absolute_import
125 tests/svn-safe-append.py not using absolute_import
127 tests/svnxml.py not using absolute_import
126 tests/svnxml.py not using absolute_import
128 tests/test-ancestor.py requires print_function
127 tests/test-ancestor.py requires print_function
129 tests/test-atomictempfile.py not using absolute_import
128 tests/test-atomictempfile.py not using absolute_import
130 tests/test-batching.py not using absolute_import
129 tests/test-batching.py not using absolute_import
131 tests/test-batching.py requires print_function
130 tests/test-batching.py requires print_function
132 tests/test-bdiff.py not using absolute_import
131 tests/test-bdiff.py not using absolute_import
133 tests/test-bdiff.py requires print_function
132 tests/test-bdiff.py requires print_function
134 tests/test-context.py not using absolute_import
133 tests/test-context.py not using absolute_import
135 tests/test-context.py requires print_function
134 tests/test-context.py requires print_function
136 tests/test-demandimport.py not using absolute_import
135 tests/test-demandimport.py not using absolute_import
137 tests/test-demandimport.py requires print_function
136 tests/test-demandimport.py requires print_function
138 tests/test-dispatch.py not using absolute_import
137 tests/test-dispatch.py not using absolute_import
139 tests/test-dispatch.py requires print_function
138 tests/test-dispatch.py requires print_function
140 tests/test-doctest.py not using absolute_import
139 tests/test-doctest.py not using absolute_import
141 tests/test-duplicateoptions.py not using absolute_import
140 tests/test-duplicateoptions.py not using absolute_import
142 tests/test-duplicateoptions.py requires print_function
141 tests/test-duplicateoptions.py requires print_function
143 tests/test-filecache.py not using absolute_import
142 tests/test-filecache.py not using absolute_import
144 tests/test-filecache.py requires print_function
143 tests/test-filecache.py requires print_function
145 tests/test-filelog.py not using absolute_import
144 tests/test-filelog.py not using absolute_import
146 tests/test-filelog.py requires print_function
145 tests/test-filelog.py requires print_function
147 tests/test-hg-parseurl.py not using absolute_import
146 tests/test-hg-parseurl.py not using absolute_import
148 tests/test-hg-parseurl.py requires print_function
147 tests/test-hg-parseurl.py requires print_function
149 tests/test-hgweb-auth.py not using absolute_import
148 tests/test-hgweb-auth.py not using absolute_import
150 tests/test-hgweb-auth.py requires print_function
149 tests/test-hgweb-auth.py requires print_function
151 tests/test-hgwebdir-paths.py not using absolute_import
150 tests/test-hgwebdir-paths.py not using absolute_import
152 tests/test-hybridencode.py not using absolute_import
151 tests/test-hybridencode.py not using absolute_import
153 tests/test-hybridencode.py requires print_function
152 tests/test-hybridencode.py requires print_function
154 tests/test-lrucachedict.py not using absolute_import
153 tests/test-lrucachedict.py not using absolute_import
155 tests/test-lrucachedict.py requires print_function
154 tests/test-lrucachedict.py requires print_function
156 tests/test-manifest.py not using absolute_import
155 tests/test-manifest.py not using absolute_import
157 tests/test-minirst.py not using absolute_import
156 tests/test-minirst.py not using absolute_import
158 tests/test-minirst.py requires print_function
157 tests/test-minirst.py requires print_function
159 tests/test-parseindex2.py not using absolute_import
158 tests/test-parseindex2.py not using absolute_import
160 tests/test-parseindex2.py requires print_function
159 tests/test-parseindex2.py requires print_function
161 tests/test-pathencode.py not using absolute_import
160 tests/test-pathencode.py not using absolute_import
162 tests/test-pathencode.py requires print_function
161 tests/test-pathencode.py requires print_function
163 tests/test-propertycache.py not using absolute_import
162 tests/test-propertycache.py not using absolute_import
164 tests/test-propertycache.py requires print_function
163 tests/test-propertycache.py requires print_function
165 tests/test-revlog-ancestry.py not using absolute_import
164 tests/test-revlog-ancestry.py not using absolute_import
166 tests/test-revlog-ancestry.py requires print_function
165 tests/test-revlog-ancestry.py requires print_function
167 tests/test-run-tests.py not using absolute_import
166 tests/test-run-tests.py not using absolute_import
168 tests/test-simplemerge.py not using absolute_import
167 tests/test-simplemerge.py not using absolute_import
169 tests/test-status-inprocess.py not using absolute_import
168 tests/test-status-inprocess.py not using absolute_import
170 tests/test-status-inprocess.py requires print_function
169 tests/test-status-inprocess.py requires print_function
171 tests/test-symlink-os-yes-fs-no.py not using absolute_import
170 tests/test-symlink-os-yes-fs-no.py not using absolute_import
172 tests/test-trusted.py not using absolute_import
171 tests/test-trusted.py not using absolute_import
173 tests/test-trusted.py requires print_function
172 tests/test-trusted.py requires print_function
174 tests/test-ui-color.py not using absolute_import
173 tests/test-ui-color.py not using absolute_import
175 tests/test-ui-color.py requires print_function
174 tests/test-ui-color.py requires print_function
176 tests/test-ui-config.py not using absolute_import
175 tests/test-ui-config.py not using absolute_import
177 tests/test-ui-config.py requires print_function
176 tests/test-ui-config.py requires print_function
178 tests/test-ui-verbosity.py not using absolute_import
177 tests/test-ui-verbosity.py not using absolute_import
179 tests/test-ui-verbosity.py requires print_function
178 tests/test-ui-verbosity.py requires print_function
180 tests/test-url.py not using absolute_import
179 tests/test-url.py not using absolute_import
181 tests/test-url.py requires print_function
180 tests/test-url.py requires print_function
182 tests/test-walkrepo.py requires print_function
181 tests/test-walkrepo.py requires print_function
183 tests/test-wireproto.py requires print_function
182 tests/test-wireproto.py requires print_function
184 tests/tinyproxy.py requires print_function
183 tests/tinyproxy.py requires print_function
General Comments 0
You need to be logged in to leave comments. Login now