Mercurial > public > mercurial-scm > hg
comparison mercurial/pycompat.py @ 51138:c845479fc64d
cleanup: drop the `bytes` compatibility for attribute related function
We can rely on the builtins directly now.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 08 Nov 2023 22:27:32 +0100 |
parents | 9bffc6c4e4c5 |
children | 7e6aae033d8d |
comparison
equal
deleted
inserted
replaced
51137:eda075d7b2ac | 51138:c845479fc64d |
---|---|
10 | 10 |
11 | 11 |
12 import builtins | 12 import builtins |
13 import codecs | 13 import codecs |
14 import concurrent.futures as futures | 14 import concurrent.futures as futures |
15 import functools | |
16 import getopt | 15 import getopt |
17 import http.client as httplib | 16 import http.client as httplib |
18 import http.cookiejar as cookielib | 17 import http.cookiejar as cookielib |
19 import inspect | 18 import inspect |
20 import io | 19 import io |
350 if doc is None: | 349 if doc is None: |
351 return doc | 350 return doc |
352 return sysbytes(doc) | 351 return sysbytes(doc) |
353 | 352 |
354 | 353 |
355 def _wrapattrfunc(f): | |
356 @functools.wraps(f) | |
357 def w(object, name, *args): | |
358 if isinstance(name, bytes): | |
359 from . import util | |
360 | |
361 msg = b'function "%s" take `str` as argument, not `bytes`' | |
362 fname = f.__name__.encode('ascii') | |
363 msg %= fname | |
364 util.nouideprecwarn(msg, b"6.6", stacklevel=2) | |
365 return f(object, sysstr(name), *args) | |
366 | |
367 return w | |
368 | |
369 | |
370 # these wrappers are automagically imported by hgloader | 354 # these wrappers are automagically imported by hgloader |
371 delattr = _wrapattrfunc(builtins.delattr) | 355 delattr = builtins.delattr |
372 getattr = _wrapattrfunc(builtins.getattr) | 356 getattr = builtins.getattr |
373 hasattr = _wrapattrfunc(builtins.hasattr) | 357 hasattr = builtins.hasattr |
374 setattr = _wrapattrfunc(builtins.setattr) | 358 setattr = builtins.setattr |
375 xrange = builtins.range | 359 xrange = builtins.range |
376 unicode = str | 360 unicode = str |
377 | 361 |
378 | 362 |
379 def open( | 363 def open( |
384 ) -> Any: | 368 ) -> Any: |
385 # TODO: assert binary mode, and cast result to BinaryIO? | 369 # TODO: assert binary mode, and cast result to BinaryIO? |
386 return builtins.open(name, sysstr(mode), buffering, encoding) | 370 return builtins.open(name, sysstr(mode), buffering, encoding) |
387 | 371 |
388 | 372 |
389 safehasattr = _wrapattrfunc(builtins.hasattr) | 373 safehasattr = builtins.hasattr |
390 | 374 |
391 | 375 |
392 def _getoptbwrapper( | 376 def _getoptbwrapper( |
393 orig, args: Sequence[bytes], shortlist: bytes, namelist: Sequence[bytes] | 377 orig, args: Sequence[bytes], shortlist: bytes, namelist: Sequence[bytes] |
394 ) -> _GetOptResult: | 378 ) -> _GetOptResult: |