Format: text/x-python
⬇ Download File (916 B)
   1  def import_module(callback):
   2      """
   3      Handle "magic" Flask extension imports:
   4      ``flask.ext.foo`` is really ``flask_foo`` or ``flaskext.foo``.
   5      """
   6      def wrapper(inference_state, import_names, module_context, *args, **kwargs):
   7          if len(import_names) == 3 and import_names[:2] == ('flask', 'ext'):
   8              # New style.
   9              ipath = ('flask_' + import_names[2]),
  10              value_set = callback(inference_state, ipath, None, *args, **kwargs)
  11              if value_set:
  12                  return value_set
  13              value_set = callback(inference_state, ('flaskext',), None, *args, **kwargs)
  14              return callback(
  15                  inference_state,
  16                  ('flaskext', import_names[2]),
  17                  next(iter(value_set)),
  18                  *args, **kwargs
  19              )
  20          return callback(inference_state, import_names, module_context, *args, **kwargs)
  21      return wrapper
  22