Mercurial > public > mercurial-scm > hg-stable
comparison contrib/byteify-strings.py @ 50810:8250ecb53f30
byteify-strings: passe sysstr to attr function and wrapper
These function now accepts string so we should not do byteify them anymore.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 10 Jul 2023 15:59:04 +0200 |
parents | 6000f5b25c9b |
children |
comparison
equal
deleted
inserted
replaced
50809:d64df6b35007 | 50810:8250ecb53f30 |
---|---|
210 # This looks like a function call. | 210 # This looks like a function call. |
211 if t.type == token.NAME and _isop(i + 1, '('): | 211 if t.type == token.NAME and _isop(i + 1, '('): |
212 fn = t.string | 212 fn = t.string |
213 | 213 |
214 # *attr() builtins don't accept byte strings to 2nd argument. | 214 # *attr() builtins don't accept byte strings to 2nd argument. |
215 if ( | 215 if fn in ( |
216 fn | 216 'getattr', |
217 in ( | 217 'setattr', |
218 'getattr', | 218 'hasattr', |
219 'setattr', | 219 'safehasattr', |
220 'hasattr', | 220 'wrapfunction', |
221 'safehasattr', | 221 'wrapclass', |
222 'wrapfunction', | 222 'addattr', |
223 'wrapclass', | |
224 'addattr', | |
225 ) | |
226 and (opts['allow-attr-methods'] or not _isop(i - 1, '.')) | |
227 ): | 223 ): |
228 arg1idx = _findargnofcall(1) | 224 arg1idx = _findargnofcall(1) |
229 if arg1idx is not None: | 225 if arg1idx is not None: |
230 _ensuresysstr(arg1idx) | 226 _ensuresysstr(arg1idx) |
231 | 227 |
310 action='store_true', | 306 action='store_true', |
311 default=False, | 307 default=False, |
312 help='rewrite iteritems() and itervalues()', | 308 help='rewrite iteritems() and itervalues()', |
313 ), | 309 ), |
314 ap.add_argument( | 310 ap.add_argument( |
315 '--allow-attr-methods', | |
316 action='store_true', | |
317 default=False, | |
318 help='also handle attr*() when they are methods', | |
319 ), | |
320 ap.add_argument( | |
321 '--treat-as-kwargs', | 311 '--treat-as-kwargs', |
322 nargs="+", | 312 nargs="+", |
323 default=[], | 313 default=[], |
324 help="ignore kwargs-like objects", | 314 help="ignore kwargs-like objects", |
325 ), | 315 ), |
326 ap.add_argument('files', metavar='FILE', nargs='+', help='source file') | 316 ap.add_argument('files', metavar='FILE', nargs='+', help='source file') |
327 args = ap.parse_args() | 317 args = ap.parse_args() |
328 opts = { | 318 opts = { |
329 'dictiter': args.dictiter, | 319 'dictiter': args.dictiter, |
330 'treat-as-kwargs': set(args.treat_as_kwargs), | 320 'treat-as-kwargs': set(args.treat_as_kwargs), |
331 'allow-attr-methods': args.allow_attr_methods, | |
332 } | 321 } |
333 for fname in args.files: | 322 for fname in args.files: |
334 fname = os.path.realpath(fname) | 323 fname = os.path.realpath(fname) |
335 if args.inplace: | 324 if args.inplace: |
336 with editinplace(fname) as fout: | 325 with editinplace(fname) as fout: |