Mercurial > public > mercurial-scm > hg
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 |