mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
Use importlib instead of __import__ and eval (#2043)
This commit is contained in:
parent
b12d364095
commit
3701ad9f26
@ -7,6 +7,7 @@ import email.utils
|
||||
import errno
|
||||
import fcntl
|
||||
import html
|
||||
import importlib
|
||||
import inspect
|
||||
import io
|
||||
import logging
|
||||
@ -364,19 +365,17 @@ def import_app(module):
|
||||
module, obj = parts[0], parts[1]
|
||||
|
||||
try:
|
||||
__import__(module)
|
||||
mod = importlib.import_module(module)
|
||||
except ImportError:
|
||||
if module.endswith(".py") and os.path.exists(module):
|
||||
msg = "Failed to find application, did you mean '%s:%s'?"
|
||||
raise ImportError(msg % (module.rsplit(".", 1)[0], obj))
|
||||
raise
|
||||
|
||||
mod = sys.modules[module]
|
||||
|
||||
is_debug = logging.root.level == logging.DEBUG
|
||||
try:
|
||||
app = eval(obj, vars(mod))
|
||||
except NameError:
|
||||
app = getattr(mod, obj)
|
||||
except AttributeError:
|
||||
if is_debug:
|
||||
traceback.print_exception(*sys.exc_info())
|
||||
raise AppImportError("Failed to find application object %r in %r" % (obj, module))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user