Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/statprof.py @ 43554:9f70512ae2cf
cleanup: remove pointless r-prefixes on single-quoted strings
This is the promised second step on single-quoted strings. These had
existed because our source transformer didn't turn r'' into b'', so we
had tagged some strings as r-strings to get "native" strings on both
Pythons. Now that the transformer is gone, we can dispense with this
nonsense.
Methodology:
I ran
hg locate 'set:added() or modified() or clean()' | egrep '.*\.py$' | xargs egrep --color=never -n -- \[\^b\]\[\^a-z\]r\'\[\^\'\\\\\]\*\'\[\^\'\
in an emacs grep-mode buffer, and then used a keyboard macro to
iterate over the results and remove the r prefix as needed.
# skip-blame removing unneeded r prefixes left over from Python 3 migration.
Differential Revision: https://phab.mercurial-scm.org/D7306
author | Augie Fackler <augie@google.com> |
---|---|
date | Fri, 08 Nov 2019 11:19:20 -0800 |
parents | 313e3a279828 |
children | 89a2afe31e82 |
comparison
equal
deleted
inserted
replaced
43553:47fac1692ede | 43554:9f70512ae2cf |
---|---|
204 | 204 |
205 | 205 |
206 class CodeSite(object): | 206 class CodeSite(object): |
207 cache = {} | 207 cache = {} |
208 | 208 |
209 __slots__ = (r'path', r'lineno', r'function', r'source') | 209 __slots__ = ('path', 'lineno', 'function', 'source') |
210 | 210 |
211 def __init__(self, path, lineno, function): | 211 def __init__(self, path, lineno, function): |
212 assert isinstance(path, bytes) | 212 assert isinstance(path, bytes) |
213 self.path = path | 213 self.path = path |
214 self.lineno = lineno | 214 self.lineno = lineno |
256 | 256 |
257 def filename(self): | 257 def filename(self): |
258 return os.path.basename(self.path) | 258 return os.path.basename(self.path) |
259 | 259 |
260 def skipname(self): | 260 def skipname(self): |
261 return r'%s:%s' % (self.filename(), self.function) | 261 return '%s:%s' % (self.filename(), self.function) |
262 | 262 |
263 | 263 |
264 class Sample(object): | 264 class Sample(object): |
265 __slots__ = (r'stack', r'time') | 265 __slots__ = ('stack', 'time') |
266 | 266 |
267 def __init__(self, stack, time): | 267 def __init__(self, stack, time): |
268 self.stack = stack | 268 self.stack = stack |
269 self.time = time | 269 self.time = time |
270 | 270 |
736 root = HotNode(None) | 736 root = HotNode(None) |
737 lasttime = data.samples[0].time | 737 lasttime = data.samples[0].time |
738 for sample in data.samples: | 738 for sample in data.samples: |
739 root.add(sample.stack[::-1], sample.time - lasttime) | 739 root.add(sample.stack[::-1], sample.time - lasttime) |
740 lasttime = sample.time | 740 lasttime = sample.time |
741 showtime = kwargs.get(r'showtime', True) | 741 showtime = kwargs.get('showtime', True) |
742 | 742 |
743 def _write(node, depth, multiple_siblings): | 743 def _write(node, depth, multiple_siblings): |
744 site = node.site | 744 site = node.site |
745 visiblechildren = [ | 745 visiblechildren = [ |
746 c | 746 c |
892 if stack in stack2id: | 892 if stack in stack2id: |
893 return stack2id[stack] | 893 return stack2id[stack] |
894 parent = stackid(stack[1:]) | 894 parent = stackid(stack[1:]) |
895 myid = len(stack2id) | 895 myid = len(stack2id) |
896 stack2id[stack] = myid | 896 stack2id[stack] = myid |
897 id2stack.append(dict(category=stack[0][0], name=r'%s %s' % stack[0])) | 897 id2stack.append(dict(category=stack[0][0], name='%s %s' % stack[0])) |
898 if parent is not None: | 898 if parent is not None: |
899 id2stack[-1].update(parent=parent) | 899 id2stack[-1].update(parent=parent) |
900 return myid | 900 return myid |
901 | 901 |
902 # The sampling profiler can sample multiple times without | 902 # The sampling profiler can sample multiple times without |
929 if minthreshold <= duration <= maxthreshold: | 929 if minthreshold <= duration <= maxthreshold: |
930 # ensure no zero-duration events | 930 # ensure no zero-duration events |
931 sampletime = max(oldtime + clamp, sample.time) | 931 sampletime = max(oldtime + clamp, sample.time) |
932 samples.append( | 932 samples.append( |
933 dict( | 933 dict( |
934 ph=r'E', | 934 ph='E', |
935 name=oldfunc, | 935 name=oldfunc, |
936 cat=oldcat, | 936 cat=oldcat, |
937 sf=oldsid, | 937 sf=oldsid, |
938 ts=sampletime * 1e6, | 938 ts=sampletime * 1e6, |
939 pid=0, | 939 pid=0, |
947 | 947 |
948 for sample in data.samples: | 948 for sample in data.samples: |
949 stack = tuple( | 949 stack = tuple( |
950 ( | 950 ( |
951 ( | 951 ( |
952 r'%s:%d' | 952 '%s:%d' |
953 % (simplifypath(pycompat.sysstr(frame.path)), frame.lineno), | 953 % (simplifypath(pycompat.sysstr(frame.path)), frame.lineno), |
954 pycompat.sysstr(frame.function), | 954 pycompat.sysstr(frame.function), |
955 ) | 955 ) |
956 for frame in sample.stack | 956 for frame in sample.stack |
957 ) | 957 ) |
969 laststack.appendleft(f) | 969 laststack.appendleft(f) |
970 path, name = f | 970 path, name = f |
971 sid = stackid(tuple(laststack)) | 971 sid = stackid(tuple(laststack)) |
972 samples.append( | 972 samples.append( |
973 dict( | 973 dict( |
974 ph=r'B', | 974 ph='B', |
975 name=name, | 975 name=name, |
976 cat=path, | 976 cat=path, |
977 ts=sample.time * 1e6, | 977 ts=sample.time * 1e6, |
978 sf=sid, | 978 sf=sid, |
979 pid=0, | 979 pid=0, |
1028 | 1028 |
1029 displayargs = {} | 1029 displayargs = {} |
1030 | 1030 |
1031 optstart = 2 | 1031 optstart = 2 |
1032 displayargs[b'function'] = None | 1032 displayargs[b'function'] = None |
1033 if argv[1] == r'hotpath': | 1033 if argv[1] == 'hotpath': |
1034 displayargs[b'format'] = DisplayFormats.Hotpath | 1034 displayargs[b'format'] = DisplayFormats.Hotpath |
1035 elif argv[1] == r'lines': | 1035 elif argv[1] == 'lines': |
1036 displayargs[b'format'] = DisplayFormats.ByLine | 1036 displayargs[b'format'] = DisplayFormats.ByLine |
1037 elif argv[1] == r'functions': | 1037 elif argv[1] == 'functions': |
1038 displayargs[b'format'] = DisplayFormats.ByMethod | 1038 displayargs[b'format'] = DisplayFormats.ByMethod |
1039 elif argv[1] == r'function': | 1039 elif argv[1] == 'function': |
1040 displayargs[b'format'] = DisplayFormats.AboutMethod | 1040 displayargs[b'format'] = DisplayFormats.AboutMethod |
1041 displayargs[b'function'] = argv[2] | 1041 displayargs[b'function'] = argv[2] |
1042 optstart = 3 | 1042 optstart = 3 |
1043 elif argv[1] == r'flame': | 1043 elif argv[1] == 'flame': |
1044 displayargs[b'format'] = DisplayFormats.FlameGraph | 1044 displayargs[b'format'] = DisplayFormats.FlameGraph |
1045 else: | 1045 else: |
1046 printusage() | 1046 printusage() |
1047 return 0 | 1047 return 0 |
1048 | 1048 |
1074 return 0 | 1074 return 0 |
1075 else: | 1075 else: |
1076 assert False, b"unhandled option %s" % o | 1076 assert False, b"unhandled option %s" % o |
1077 | 1077 |
1078 if not path: | 1078 if not path: |
1079 print(r'must specify --file to load') | 1079 print('must specify --file to load') |
1080 return 1 | 1080 return 1 |
1081 | 1081 |
1082 load_data(path=path) | 1082 load_data(path=path) |
1083 | 1083 |
1084 display(**pycompat.strkwargs(displayargs)) | 1084 display(**pycompat.strkwargs(displayargs)) |