comparison mercurial/utils/stringutil.py @ 52669:e627cc25b6f3

pyupgrade: rewrite `yield` statements in a loop to `yield from` This is the `legacy` fixer in `pyupgrade`, with the `yield` statement yielding loop commented back in. This seems to help pytype in some cases, and hurt it in others. But that can be manually fixed later. Note that it's possibly buggy in that it aggressively changed `import-checker.py` to `yield from 'fcntl', 'grp', 'pwd', 'select', 'termios': # Unix only`, which is invalid syntax. Possibly it needed help from the token fixer that I've disabled locally (because that wants to make a bunch of unrelated changes). Just change those few places to yield from a list, to avoid having to constantly revert that.
author Matt Harbison <matt_harbison@yahoo.com>
date Sun, 05 Jan 2025 22:26:16 -0500
parents f4733654f144
children 279e217d6041
comparison
equal deleted inserted replaced
52668:5cc8deb96b48 52669:e627cc25b6f3
105 level += 1 105 level += 1
106 yield b'\n' 106 yield b'\n'
107 yield b' ' * (level * indent) 107 yield b' ' * (level * indent)
108 108
109 for i, a in enumerate(o): 109 for i, a in enumerate(o):
110 for chunk in pprintgen( 110 yield from pprintgen(a, bprefix=bprefix, indent=indent, level=level)
111 a, bprefix=bprefix, indent=indent, level=level
112 ):
113 yield chunk
114 111
115 if i + 1 < len(o): 112 if i + 1 < len(o):
116 if indent: 113 if indent:
117 yield b',\n' 114 yield b',\n'
118 yield b' ' * (level * indent) 115 yield b' ' * (level * indent)
136 level += 1 133 level += 1
137 yield b'\n' 134 yield b'\n'
138 yield b' ' * (level * indent) 135 yield b' ' * (level * indent)
139 136
140 for i, (k, v) in enumerate(sorted(o.items())): 137 for i, (k, v) in enumerate(sorted(o.items())):
141 for chunk in pprintgen( 138 yield from pprintgen(k, bprefix=bprefix, indent=indent, level=level)
142 k, bprefix=bprefix, indent=indent, level=level
143 ):
144 yield chunk
145 139
146 yield b': ' 140 yield b': '
147 141
148 for chunk in pprintgen( 142 yield from pprintgen(v, bprefix=bprefix, indent=indent, level=level)
149 v, bprefix=bprefix, indent=indent, level=level
150 ):
151 yield chunk
152 143
153 if i + 1 < len(o): 144 if i + 1 < len(o):
154 if indent: 145 if indent:
155 yield b',\n' 146 yield b',\n'
156 yield b' ' * (level * indent) 147 yield b' ' * (level * indent)
174 level += 1 165 level += 1
175 yield b'\n' 166 yield b'\n'
176 yield b' ' * (level * indent) 167 yield b' ' * (level * indent)
177 168
178 for i, k in enumerate(sorted(o)): 169 for i, k in enumerate(sorted(o)):
179 for chunk in pprintgen( 170 yield from pprintgen(k, bprefix=bprefix, indent=indent, level=level)
180 k, bprefix=bprefix, indent=indent, level=level
181 ):
182 yield chunk
183 171
184 if i + 1 < len(o): 172 if i + 1 < len(o):
185 if indent: 173 if indent:
186 yield b',\n' 174 yield b',\n'
187 yield b' ' * (level * indent) 175 yield b' ' * (level * indent)
205 level += 1 193 level += 1
206 yield b'\n' 194 yield b'\n'
207 yield b' ' * (level * indent) 195 yield b' ' * (level * indent)
208 196
209 for i, a in enumerate(o): 197 for i, a in enumerate(o):
210 for chunk in pprintgen( 198 yield from pprintgen(a, bprefix=bprefix, indent=indent, level=level)
211 a, bprefix=bprefix, indent=indent, level=level
212 ):
213 yield chunk
214 199
215 if i + 1 < len(o): 200 if i + 1 < len(o):
216 if indent: 201 if indent:
217 yield b',\n' 202 yield b',\n'
218 yield b' ' * (level * indent) 203 yield b' ' * (level * indent)
248 try: 233 try:
249 nextitem = next(o) 234 nextitem = next(o)
250 except StopIteration: 235 except StopIteration:
251 last = True 236 last = True
252 237
253 for chunk in pprintgen( 238 yield from pprintgen(
254 current, bprefix=bprefix, indent=indent, level=level 239 current, bprefix=bprefix, indent=indent, level=level
255 ): 240 )
256 yield chunk
257 241
258 if not last: 242 if not last:
259 if indent: 243 if indent:
260 yield b',\n' 244 yield b',\n'
261 yield b' ' * (level * indent) 245 yield b' ' * (level * indent)