Mercurial > hg
comparison mercurial/commandserver.py @ 50928:d718eddf01d9
safehasattr: drop usage in favor of hasattr
The two functions should now be equivalent at least in their usage in core.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Thu, 31 Aug 2023 23:56:15 +0200 |
parents | 9342271eef31 |
children | 18c8c18993f0 |
comparison
equal
deleted
inserted
replaced
50927:7a8ea1397816 | 50928:d718eddf01d9 |
---|---|
330 for ui in uis: | 330 for ui in uis: |
331 ui.resetstate() | 331 ui.resetstate() |
332 # any kind of interaction must use server channels, but chg may | 332 # any kind of interaction must use server channels, but chg may |
333 # replace channels by fully functional tty files. so nontty is | 333 # replace channels by fully functional tty files. so nontty is |
334 # enforced only if cin is a channel. | 334 # enforced only if cin is a channel. |
335 if not util.safehasattr(self.cin, 'fileno'): | 335 if not hasattr(self.cin, 'fileno'): |
336 ui.setconfig(b'ui', b'nontty', b'true', b'commandserver') | 336 ui.setconfig(b'ui', b'nontty', b'true', b'commandserver') |
337 | 337 |
338 req = dispatch.request( | 338 req = dispatch.request( |
339 args[:], | 339 args[:], |
340 copiedui, | 340 copiedui, |
382 hellomsg += b'encoding: ' + encoding.encoding | 382 hellomsg += b'encoding: ' + encoding.encoding |
383 hellomsg += b'\n' | 383 hellomsg += b'\n' |
384 if self.cmsg: | 384 if self.cmsg: |
385 hellomsg += b'message-encoding: %s\n' % self.cmsg.encoding | 385 hellomsg += b'message-encoding: %s\n' % self.cmsg.encoding |
386 hellomsg += b'pid: %d' % procutil.getpid() | 386 hellomsg += b'pid: %d' % procutil.getpid() |
387 if util.safehasattr(os, 'getpgid'): | 387 if hasattr(os, 'getpgid'): |
388 hellomsg += b'\n' | 388 hellomsg += b'\n' |
389 hellomsg += b'pgid: %d' % os.getpgid(0) | 389 hellomsg += b'pgid: %d' % os.getpgid(0) |
390 | 390 |
391 # write the hello msg in -one- chunk | 391 # write the hello msg in -one- chunk |
392 self.cout.write(hellomsg) | 392 self.cout.write(hellomsg) |
557 | 557 |
558 def __init__(self, ui, repo, opts, handler=None): | 558 def __init__(self, ui, repo, opts, handler=None): |
559 self.ui = ui | 559 self.ui = ui |
560 self.repo = repo | 560 self.repo = repo |
561 self.address = opts[b'address'] | 561 self.address = opts[b'address'] |
562 if not util.safehasattr(socket, 'AF_UNIX'): | 562 if not hasattr(socket, 'AF_UNIX'): |
563 raise error.Abort(_(b'unsupported platform')) | 563 raise error.Abort(_(b'unsupported platform')) |
564 if not self.address: | 564 if not self.address: |
565 raise error.Abort(_(b'no socket path specified with --address')) | 565 raise error.Abort(_(b'no socket path specified with --address')) |
566 self._servicehandler = handler or unixservicehandler(ui) | 566 self._servicehandler = handler or unixservicehandler(ui) |
567 self._sock = None | 567 self._sock = None |
586 # a uni-directional pipe, but is backed by a DGRAM socket so each | 586 # a uni-directional pipe, but is backed by a DGRAM socket so each |
587 # message can be easily separated. | 587 # message can be easily separated. |
588 o = socket.socketpair(socket.AF_UNIX, socket.SOCK_DGRAM) | 588 o = socket.socketpair(socket.AF_UNIX, socket.SOCK_DGRAM) |
589 self._mainipc, self._workeripc = o | 589 self._mainipc, self._workeripc = o |
590 self._servicehandler.bindsocket(self._sock, self.address) | 590 self._servicehandler.bindsocket(self._sock, self.address) |
591 if util.safehasattr(procutil, 'unblocksignal'): | 591 if hasattr(procutil, 'unblocksignal'): |
592 procutil.unblocksignal(signal.SIGCHLD) | 592 procutil.unblocksignal(signal.SIGCHLD) |
593 o = signal.signal(signal.SIGCHLD, self._sigchldhandler) | 593 o = signal.signal(signal.SIGCHLD, self._sigchldhandler) |
594 self._oldsigchldhandler = o | 594 self._oldsigchldhandler = o |
595 self._socketunlinked = False | 595 self._socketunlinked = False |
596 self._repoloader.start() | 596 self._repoloader.start() |