Mercurial > public > mercurial-scm > hg
comparison mercurial/hgweb/server.py @ 50925: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 | b08aed45ef00 |
children | 18c8c18993f0 |
comparison
equal
deleted
inserted
replaced
50924:7a8ea1397816 | 50925:d718eddf01d9 |
---|---|
98 def log_message(self, format, *args): | 98 def log_message(self, format, *args): |
99 self._log_any(self.server.accesslog, format, *args) | 99 self._log_any(self.server.accesslog, format, *args) |
100 | 100 |
101 def log_request(self, code='-', size='-'): | 101 def log_request(self, code='-', size='-'): |
102 xheaders = [] | 102 xheaders = [] |
103 if util.safehasattr(self, 'headers'): | 103 if hasattr(self, 'headers'): |
104 xheaders = [ | 104 xheaders = [ |
105 h for h in self.headers.items() if h[0].startswith('x-') | 105 h for h in self.headers.items() if h[0].startswith('x-') |
106 ] | 106 ] |
107 self.log_message( | 107 self.log_message( |
108 '"%s" %s %s%s', | 108 '"%s" %s %s%s', |
212 env['wsgi.input'] = self.rfile | 212 env['wsgi.input'] = self.rfile |
213 env['wsgi.errors'] = _error_logger(self) | 213 env['wsgi.errors'] = _error_logger(self) |
214 env['wsgi.multithread'] = isinstance( | 214 env['wsgi.multithread'] = isinstance( |
215 self.server, socketserver.ThreadingMixIn | 215 self.server, socketserver.ThreadingMixIn |
216 ) | 216 ) |
217 if util.safehasattr(socketserver, 'ForkingMixIn'): | 217 if hasattr(socketserver, 'ForkingMixIn'): |
218 env['wsgi.multiprocess'] = isinstance( | 218 env['wsgi.multiprocess'] = isinstance( |
219 self.server, socketserver.ForkingMixIn | 219 self.server, socketserver.ForkingMixIn |
220 ) | 220 ) |
221 else: | 221 else: |
222 env['wsgi.multiprocess'] = False | 222 env['wsgi.multiprocess'] = False |
342 import threading | 342 import threading |
343 | 343 |
344 threading.active_count() # silence pyflakes and bypass demandimport | 344 threading.active_count() # silence pyflakes and bypass demandimport |
345 _mixin = socketserver.ThreadingMixIn | 345 _mixin = socketserver.ThreadingMixIn |
346 except ImportError: | 346 except ImportError: |
347 if util.safehasattr(os, "fork"): | 347 if hasattr(os, "fork"): |
348 _mixin = socketserver.ForkingMixIn | 348 _mixin = socketserver.ForkingMixIn |
349 else: | 349 else: |
350 | 350 |
351 class _mixin: | 351 class _mixin: |
352 pass | 352 pass |