You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
916 B
Python
22 lines
916 B
Python
2 years ago
|
def import_module(callback):
|
||
|
"""
|
||
|
Handle "magic" Flask extension imports:
|
||
|
``flask.ext.foo`` is really ``flask_foo`` or ``flaskext.foo``.
|
||
|
"""
|
||
|
def wrapper(inference_state, import_names, module_context, *args, **kwargs):
|
||
|
if len(import_names) == 3 and import_names[:2] == ('flask', 'ext'):
|
||
|
# New style.
|
||
|
ipath = ('flask_' + import_names[2]),
|
||
|
value_set = callback(inference_state, ipath, None, *args, **kwargs)
|
||
|
if value_set:
|
||
|
return value_set
|
||
|
value_set = callback(inference_state, ('flaskext',), None, *args, **kwargs)
|
||
|
return callback(
|
||
|
inference_state,
|
||
|
('flaskext', import_names[2]),
|
||
|
next(iter(value_set)),
|
||
|
*args, **kwargs
|
||
|
)
|
||
|
return callback(inference_state, import_names, module_context, *args, **kwargs)
|
||
|
return wrapper
|