2014-11-06 11:15:54 +03:00
|
|
|
from six import string_types
|
2015-04-17 18:49:32 +03:00
|
|
|
import sys
|
2015-04-27 15:05:25 +03:00
|
|
|
if sys.version_info < (2, 7):
|
2015-04-17 18:49:32 +03:00
|
|
|
from django.utils.importlib import import_module
|
|
|
|
else:
|
|
|
|
from importlib import import_module
|
2014-10-09 13:41:52 +04:00
|
|
|
|
|
|
|
|
|
|
|
def import_callable(path_or_callable):
|
|
|
|
if hasattr(path_or_callable, '__call__'):
|
|
|
|
return path_or_callable
|
|
|
|
else:
|
2014-11-06 11:15:54 +03:00
|
|
|
assert isinstance(path_or_callable, string_types)
|
2014-10-09 13:41:52 +04:00
|
|
|
package, attr = path_or_callable.rsplit('.', 1)
|
|
|
|
return getattr(import_module(package), attr)
|