Mercurial > public > mercurial-scm > hg-stable
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) |