comparison mercurial/hgweb/server.py @ 43069:e554cfd93975

hgweb: use importlib.reload() if available reload() was nuked in Python 3. We need to use importlib.reload() instead. But pyflakes isn't smart enough to detect our conditional usage, so we allow this error. Differential Revision: https://phab.mercurial-scm.org/D6992
author Gregory Szorc <gregory.szorc@gmail.com>
date Sat, 05 Oct 2019 17:44:54 -0400
parents 6bbb12cba5a8
children 2372284d9457
comparison
equal deleted inserted replaced
43068:094d0f4a8edd 43069:e554cfd93975
7 # GNU General Public License version 2 or any later version. 7 # GNU General Public License version 2 or any later version.
8 8
9 from __future__ import absolute_import 9 from __future__ import absolute_import
10 10
11 import errno 11 import errno
12 import importlib
12 import os 13 import os
13 import socket 14 import socket
14 import sys 15 import sys
15 import traceback 16 import traceback
16 import wsgiref.validate 17 import wsgiref.validate
368 # from Windows' ANSI APIs as ascii (fail), then re-encode them 369 # from Windows' ANSI APIs as ascii (fail), then re-encode them
369 # as ascii (clown fail), because the default Python Unicode 370 # as ascii (clown fail), because the default Python Unicode
370 # codec is hardcoded as ascii. 371 # codec is hardcoded as ascii.
371 372
372 sys.argv # unwrap demand-loader so that reload() works 373 sys.argv # unwrap demand-loader so that reload() works
373 reload(sys) # resurrect sys.setdefaultencoding() 374 # resurrect sys.setdefaultencoding()
375 try:
376 importlib.reload(sys)
377 except AttributeError:
378 reload(sys)
374 oldenc = sys.getdefaultencoding() 379 oldenc = sys.getdefaultencoding()
375 sys.setdefaultencoding("latin1") # or any full 8-bit encoding 380 sys.setdefaultencoding("latin1") # or any full 8-bit encoding
376 mimetypes.init() 381 mimetypes.init()
377 sys.setdefaultencoding(oldenc) 382 sys.setdefaultencoding(oldenc)
378 383