comparison mercurial/windows.py @ 45942:89a2afe31e82

formating: upgrade to black 20.8b1 This required a couple of small tweaks to un-confuse black, but now it works. Big formatting changes come from: * Dramatically improved collection-splitting logic upstream * Black having a strong (correct IMO) opinion that """ is better than ''' Differential Revision: https://phab.mercurial-scm.org/D9430
author Augie Fackler <raf@durin42.com>
date Fri, 27 Nov 2020 17:03:29 -0500
parents ed58ecd59030
children d4ba4d51f85f
comparison
equal deleted inserted replaced
45941:346af7687c6f 45942:89a2afe31e82
193 except AttributeError: 193 except AttributeError:
194 return False 194 return False
195 195
196 196
197 class winstdout(object): 197 class winstdout(object):
198 '''Some files on Windows misbehave. 198 """Some files on Windows misbehave.
199 199
200 When writing to a broken pipe, EINVAL instead of EPIPE may be raised. 200 When writing to a broken pipe, EINVAL instead of EPIPE may be raised.
201 201
202 When writing too many bytes to a console at the same, a "Not enough space" 202 When writing too many bytes to a console at the same, a "Not enough space"
203 error may happen. Python 3 already works around that. 203 error may happen. Python 3 already works around that.
204 ''' 204 """
205 205
206 def __init__(self, fp): 206 def __init__(self, fp):
207 self.fp = fp 207 self.fp = fp
208 self.throttle = not pycompat.ispy3 and _isatty(fp) 208 self.throttle = not pycompat.ispy3 and _isatty(fp)
209 209
495 def isowner(st): 495 def isowner(st):
496 return True 496 return True
497 497
498 498
499 def findexe(command): 499 def findexe(command):
500 '''Find executable for command searching like cmd.exe does. 500 """Find executable for command searching like cmd.exe does.
501 If command is a basename then PATH is searched for command. 501 If command is a basename then PATH is searched for command.
502 PATH isn't searched if command is an absolute or relative path. 502 PATH isn't searched if command is an absolute or relative path.
503 An extension from PATHEXT is found and added if not present. 503 An extension from PATHEXT is found and added if not present.
504 If command isn't found None is returned.''' 504 If command isn't found None is returned."""
505 pathext = encoding.environ.get(b'PATHEXT', b'.COM;.EXE;.BAT;.CMD') 505 pathext = encoding.environ.get(b'PATHEXT', b'.COM;.EXE;.BAT;.CMD')
506 pathexts = [ext for ext in pathext.lower().split(pycompat.ospathsep)] 506 pathexts = [ext for ext in pathext.lower().split(pycompat.ospathsep)]
507 if os.path.splitext(command)[1].lower() in pathexts: 507 if os.path.splitext(command)[1].lower() in pathexts:
508 pathexts = [b''] 508 pathexts = [b'']
509 509
527 527
528 _wantedkinds = {stat.S_IFREG, stat.S_IFLNK} 528 _wantedkinds = {stat.S_IFREG, stat.S_IFLNK}
529 529
530 530
531 def statfiles(files): 531 def statfiles(files):
532 '''Stat each file in files. Yield each stat, or None if a file 532 """Stat each file in files. Yield each stat, or None if a file
533 does not exist or has a type we don't care about. 533 does not exist or has a type we don't care about.
534 534
535 Cluster and cache stat per directory to minimize number of OS stat calls.''' 535 Cluster and cache stat per directory to minimize number of OS stat calls."""
536 dircache = {} # dirname -> filename -> status | None if file does not exist 536 dircache = {} # dirname -> filename -> status | None if file does not exist
537 getkind = stat.S_IFMT 537 getkind = stat.S_IFMT
538 for nf in files: 538 for nf in files:
539 nf = normcase(nf) 539 nf = normcase(nf)
540 dir, base = os.path.split(nf) 540 dir, base = os.path.split(nf)
628 def cacheable(self): 628 def cacheable(self):
629 return False 629 return False
630 630
631 631
632 def lookupreg(key, valname=None, scope=None): 632 def lookupreg(key, valname=None, scope=None):
633 ''' Look up a key/value name in the Windows registry. 633 """Look up a key/value name in the Windows registry.
634 634
635 valname: value name. If unspecified, the default value for the key 635 valname: value name. If unspecified, the default value for the key
636 is used. 636 is used.
637 scope: optionally specify scope for registry lookup, this can be 637 scope: optionally specify scope for registry lookup, this can be
638 a sequence of scopes to look up in order. Default (CURRENT_USER, 638 a sequence of scopes to look up in order. Default (CURRENT_USER,
639 LOCAL_MACHINE). 639 LOCAL_MACHINE).
640 ''' 640 """
641 if scope is None: 641 if scope is None:
642 scope = (winreg.HKEY_CURRENT_USER, winreg.HKEY_LOCAL_MACHINE) 642 scope = (winreg.HKEY_CURRENT_USER, winreg.HKEY_LOCAL_MACHINE)
643 elif not isinstance(scope, (list, tuple)): 643 elif not isinstance(scope, (list, tuple)):
644 scope = (scope,) 644 scope = (scope,)
645 for s in scope: 645 for s in scope: