2017-03-16 19:13:08 +03:00
|
|
|
# coding: utf8
|
2017-04-15 13:05:47 +03:00
|
|
|
from __future__ import unicode_literals
|
2017-03-16 19:13:08 +03:00
|
|
|
|
2017-05-03 12:01:42 +03:00
|
|
|
import importlib
|
2017-05-08 16:27:25 +03:00
|
|
|
|
|
|
|
from .compat import basestring_
|
2017-03-28 15:10:20 +03:00
|
|
|
from .cli.info import info
|
2017-05-03 18:01:53 +03:00
|
|
|
from .glossary import explain
|
2017-05-13 22:21:47 +03:00
|
|
|
from .deprecated import resolve_load_name
|
2017-05-08 16:27:25 +03:00
|
|
|
from . import util
|
2017-02-01 01:27:29 +03:00
|
|
|
|
2016-03-25 20:54:45 +03:00
|
|
|
|
2016-10-18 20:23:31 +03:00
|
|
|
def load(name, **overrides):
|
2017-05-13 22:21:47 +03:00
|
|
|
name = resolve_load_name(name, **overrides)
|
2017-05-08 16:27:25 +03:00
|
|
|
model_path = util.resolve_model_path(name)
|
|
|
|
meta = util.parse_package_meta(model_path)
|
|
|
|
if 'lang' not in meta:
|
|
|
|
raise IOError('No language setting found in model meta.')
|
2017-05-09 00:50:45 +03:00
|
|
|
cls = util.load_lang_class(meta['lang'])
|
2017-03-16 19:13:08 +03:00
|
|
|
overrides['meta'] = meta
|
2017-04-16 21:35:00 +03:00
|
|
|
overrides['path'] = model_path
|
2017-04-27 12:14:26 +03:00
|
|
|
return cls(**overrides)
|