• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python utils.import_string函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中werkzeug.utils.import_string函数的典型用法代码示例。如果您正苦于以下问题:Python import_string函数的具体用法?Python import_string怎么用?Python import_string使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了import_string函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: main

def main(entrypoint, adapter, host, port, debug, level):
    if '.' not in sys.path:
        sys.path.insert(0, '.')

    # Get the API object
    api = import_string(entrypoint)
    if not isinstance(api, RESTArt):
        raise RuntimeError(
            'The object specified by entrypoint %r is not an '
            'instance of `restart.api.RESTArt`' % str(entrypoint)
        )

    # Get the adapter class
    adapter_class = import_string(adapter)
    if not issubclass(adapter_class, Adapter):
        raise RuntimeError(
            'The class specified by adapter %r is not a subclass '
            'of `restart.adapter.Adapter`' % str(adapter)
        )

    # Change the level of the global logger
    from .logging import global_logger
    global_logger.setLevel(level)

    # Run the API as a service
    service = Service(api, adapter_class)
    service.run(host, port, debug)
开发者ID:RussellLuo,项目名称:restart,代码行数:27,代码来源:cli.py


示例2: autodiscover

    def autodiscover(self, paths, models=None, module_names=None):
        """
        Automatically register all Kibble views under ``path``.

        :param paths: The module paths to search under.
        :param module_names: A list of module names to match on. e.g. `kibble`
            will only attempt to autodiscover `kibble.py` files.
        :param models: A list of model kinds (either a ``ndb.Model`` subclass
            or a string) (Optional)
        """
        from werkzeug.utils import find_modules, import_string
        from .base import KibbleMeta

        all_models = models is None
        models = [
            (x._kind() if isinstance(x, ndb.Model) else x)
            for x in models or []]

        for p in paths:
            for mod in find_modules(p, True, True):
                # logger.debug("Autodiscover: %s", mod)
                if module_names is None \
                        or mod.rsplit('.', 1)[-1] in module_names:
                    import_string(mod)

        for view in KibbleMeta._autodiscover:
            if view.model and (all_models or view.kind() in models):
                self.register_view(view)
开发者ID:brunoripa,项目名称:flask-kibble,代码行数:28,代码来源:blueprint.py


示例3: try_to_eval

def try_to_eval(string, context={}, **general_context):
    """Take care of evaluating the python expression.

    If an exception happens, it tries to import the needed module.

    @param string: String to evaluate
    @param context: Context needed, in some cases, to evaluate the string

    @return: The value of the expression inside string
    """
    if not string:
        return None

    res = None
    imports = []
    general_context.update(context)
    simple = False
    while True:
        try:
            # kwalitee: disable=eval
            res = eval(string, globals().update(general_context), locals())
        except NameError as err:
            #Try first to import using werkzeug import_string
            try:
                from werkzeug.utils import import_string
                if "." in string:
                    part = string.split('.')[0]
                    import_string(part)
                    for i in string.split('.')[1:]:
                        part += '.' + i
                        import_string(part)
                    continue
                else:
                    simple = True
            except:
                pass

            import_name = str(err).split("'")[1]
            if import_name not in imports:
                if import_name in context:
                    globals()[import_name] = context[import_name]
                else:
                    globals()[import_name] = __import__(import_name)
                    imports.append(import_name)
                continue
            elif simple:
                import_name = str(err).split("'")[0]
                if import_name in context:
                    globals()[import_name] = context[import_name]
                else:
                    globals()[import_name] = __import__(import_name)
                    imports.append(import_name)
                continue

            raise ImportError("Can't import the needed module to evaluate %s"
                              (string, ))
        import os
        if isinstance(res, type(os)):
            raise ImportError
        return res
开发者ID:ffelsner,项目名称:invenio,代码行数:60,代码来源:utils.py


示例4: import_module_from_packages

def import_module_from_packages(name, app=None, packages=None, silent=False):
    if packages is None:
        if app is None and has_app_context():
            app = current_app
        if app is None:
            raise Exception(
                'Working outside application context or provide app'
            )
        #FIXME
        packages = app.config.get('PACKAGES', [])

    for package in packages:
        if package.endswith('.*'):
            for module in find_modules(package[:-2], include_packages=True):
                try:
                    yield import_string(module + '.' + name, silent)
                except ImportError:
                    pass
                except Exception as e:
                    import traceback
                    traceback.print_exc()
                    app.logger.error('Could not import: "%s.%s: %s',
                                     module, name, str(e))
                    pass
            continue
        try:
            yield import_string(package + '.' + name, silent)
        except ImportError:
            pass
        except Exception as e:
            import traceback
            traceback.print_exc()
            app.logger.error('Could not import: "%s.%s: %s',
                             package, name, str(e))
            pass
开发者ID:mhellmic,项目名称:b2share,代码行数:35,代码来源:utils.py


示例5: create_app

def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])

    db.init_app(app)
    csrf.init_app(app)
    bcrypt.init_app(app)
    mail.init_app(app)
    login_manager.init_app(app)
    redis_store.init_app(app)
    celery.conf.update(app.config)

    models_committed.connect(receive_change, app)

    sign_in_manage = {}
    sign_in_func = 'account.sign_in'
    for path in blueprints:
        bp = import_string('sayit.views.' + path[0])
        app.register_blueprint(bp, url_prefix=path[1])
        sign_in_manage[bp.name] = sign_in_func

    for path in jinja_filters:
        flt = import_string('sayit.filters:' + path[0])
        app.jinja_env.filters[path[1]] = flt

    login_manager.blueprint_login_views = sign_in_manage

    return app
开发者ID:fpfeng,项目名称:sayit.website,代码行数:28,代码来源:__init__.py


示例6: serializer

def serializer(metadata_prefix):
    """Return etree_dumper instances."""
    metadataFormats = current_app.config['OAISERVER_METADATA_FORMATS']
    serializer_ = metadataFormats[metadata_prefix]['serializer']
    if isinstance(serializer_, tuple):
        return partial(import_string(serializer_[0]), **serializer_[1])
    return import_string(serializer_)
开发者ID:nharraud,项目名称:invenio-oaiserver,代码行数:7,代码来源:utils.py


示例7: import_module_from_packages

def import_module_from_packages(name, app=None, packages=None, silent=False):
    """Import modules from packages."""
    warnings.warn("Use of import_module_from_packages has been deprecated."
                  " Please use Flask-Registry instead.",  DeprecationWarning)

    if app is None and has_app_context():
        app = current_app
    if app is None:
        raise Exception(
            'Working outside application context or provide app'
        )

    if packages is None:
        packages = app.config.get('PACKAGES', [])

    for package in packages:
        if package.endswith('.*'):
            for module in find_modules(package[:-2], include_packages=True):
                try:
                    yield import_string(module + '.' + name, silent)
                except ImportError:
                    pass
                except Exception:
                    app.logger.exception("could not import %s.%s",
                                         package, name)
            continue
        try:
            yield import_string(package + '.' + name, silent)
        except ImportError:
            pass
        except Exception:
            app.logger.exception("could not import %s.%s", package, name)
开发者ID:ffelsner,项目名称:invenio,代码行数:32,代码来源:utils.py


示例8: _get_search_results

    def _get_search_results(self, q):
        from flask_cms.app import app

        results = {}
        searchable_models = app.config.get("SEARCHABLE_MODELS", [])
        for model in searchable_models:
            model_string = model[0]
            model_class = import_string(model_string)

            # Only get these columns from db
            columns_to_select = model[2]
            entities = [import_string("{}.{}".format(model_string, column))
                        for column in columns_to_select]

            # build search condition
            searchable_columns = model[1]
            column_objs = [import_string("{}.{}".format(model_string, column))
                           for column in searchable_columns]
            search_condition = [obj.like("%{}%".format(q))
                                for obj in column_objs]

            # query model with entities for search condition
            model_results = (model_class.query.
                             with_entities(*entities).
                             filter(or_(*search_condition)).
                             params(q=q).all())
            if model_results:
                results[model_class.__tablename__] = model_results
        return results
开发者ID:sumanthns,项目名称:flask-cms,代码行数:29,代码来源:views.py


示例9: _discover_module

    def _discover_module(self, pkg):
        import_str = pkg + '.' + self.module_name

        blacklist = self.app.config.get(
            '%s_%s_EXCLUDE' % (self.cfg_var_prefix, self.module_name.upper()),
            []
        )

        try:
            import_string(import_str, silent=self.silent)
        except ImportError as e:  # pylint: disable=C0103
            self._handle_importerror(e, pkg, import_str)
            return
        except SyntaxError as e:
            self._handle_syntaxerror(e, pkg, import_str)
            return

        for m in find_modules(import_str):
            if m in blacklist:  # Exclude specific package
                continue
            try:
                module = import_string(m, silent=self.silent)
                if module is not None:
                    self.register(module)
            except ImportError as e:  # pylint: disable=C0103
                self._handle_importerror(e, import_str, m)
            except SyntaxError as e:
                self._handle_syntaxerror(e, import_str, m)
开发者ID:SCOAP3,项目名称:invenio,代码行数:28,代码来源:__init__.py


示例10: test_import_string_attribute_error

def test_import_string_attribute_error():
    with pytest.raises(AttributeError) as foo_exc:
        utils.import_string('tests.res.foo')
    assert 'screw your import' in str(foo_exc)

    with pytest.raises(AttributeError) as bar_exc:
        utils.import_string('tests.res.bar')
    assert 'screw your import' in str(bar_exc)
开发者ID:char101,项目名称:werkzeug,代码行数:8,代码来源:test_utils.py


示例11: __init__

 def __init__(self):
   # avoid 'no implementation for kind' error.
   import_string(settings.AUTH_USER_MODEL)
   if not 'kay.sessions.middleware.SessionMiddleware' in \
         settings.MIDDLEWARE_CLASSES:
     raise ImproperlyConfigured(
       "The DatastoreBackend requires session middleware to "
       "be installed. Edit your MIDDLEWARE_CLASSES setting to insert "
       "'kay.sessions.middleware.SessionMiddleware'.")
开发者ID:IanLewis,项目名称:kay,代码行数:9,代码来源:datastore.py


示例12: run

def run(*args):
    # XXX: Need to import here before manager is run to ensure additional
    # commands are registered
    for mod in 'account', 'video':
        import_string('wonder.romeo.%s.commands' % mod)

    if args:
        return manager.handle(sys.argv[0], args)
    else:
        return manager.run()
开发者ID:philpill,项目名称:romeo,代码行数:10,代码来源:commands.py


示例13: test_import_string_attribute_error

def test_import_string_attribute_error(tmpdir, monkeypatch):
    monkeypatch.syspath_prepend(str(tmpdir))
    tmpdir.join('foo_test.py').write('from bar_test import value')
    tmpdir.join('bar_test.py').write('raise AttributeError("screw you!")')
    with pytest.raises(AttributeError) as foo_exc:
        utils.import_string('foo_test')
    assert 'screw you!' in str(foo_exc)

    with pytest.raises(AttributeError) as bar_exc:
        utils.import_string('bar_test')
    assert 'screw you!' in str(bar_exc)
开发者ID:nzavagli,项目名称:UnrealPy,代码行数:11,代码来源:test_utils.py


示例14: init_app

    def init_app(self, app, elasticsearch=None):
        """Flask application initialization."""
        self.init_config(app)
        # Configure elasticsearch client.
        self._clients[app] = elasticsearch

        for autoindex in app.config.get('SEARCH_AUTOINDEX', []):
            import_string(autoindex)

        app.cli.add_command(index_cmd)
        app.extensions['invenio-search'] = self
开发者ID:pombredanne,项目名称:invenio-search,代码行数:11,代码来源:ext.py


示例15: init_tasks

def init_tasks(app):
    """
    Extracts modules (task types) from global configuration

    :param app: Current Flask application instance
    :type app: Flask.Flask

    :return: Dictionary with instantiated *TaskType objects
    :rtype: dict
    """
    task_types = {}
    loaders = {}
    enabled_tasks = app.config.get("ENABLED_TASKS", {})

    for plugin, task in enabled_tasks.iteritems():
        task_settings = import_string(
            "{plugin_name}.settings".format(plugin_name=plugin)
        )
        plugin_instance = import_string(
            "{plugin_name}".format(plugin_name=plugin))
        settings = plugin_instance.configure(task_settings)

        task_instance = import_string(
            "{plugin_name}.models.task_types.{task}".format(
                plugin_name=plugin, task=task)
        )
        static_path = import_string(plugin).__path__[0]

        js_name = 'plugin_js_{task}'.format(task=task_instance.type_name)
        css_name = 'plugin_css_{task}'.format(task=task_instance.type_name)

        if len(task_instance.JS_ASSETS) > 0:
            js = Bundle(*map(lambda x: os.path.join(static_path, x),
                             task_instance.JS_ASSETS),
                        output="scripts/{name}.js".format(name=js_name),
                        filters=app.config.get('JS_ASSETS_FILTERS', ''))
            app.assets.register(js_name, js)

        if len(task_instance.CSS_ASSETS) > 0:
            css = Bundle(*map(lambda x: os.path.join(static_path, x),
                              task_instance.CSS_ASSETS),
                         output="styles/{name}.css".format(name=css_name),
                         filters=app.config.get('CSS_ASSETS_FILTERS', ''))

            app.assets.register(css_name, css)

        loaders[task_instance.type_name] = jinja2.PackageLoader(plugin)
        task_types[task_instance.type_name] = task_instance(settings=settings)

    app.jinja_loader = jinja2.ChoiceLoader([
        app.jinja_loader,
        jinja2.PrefixLoader(loaders)])

    return task_types
开发者ID:kostyll,项目名称:vulyk,代码行数:54,代码来源:__init__.py


示例16: record_file_factory

 def record_file_factory(self):
     """Load default storage factory."""
     imp = self.app.config.get("FILES_REST_RECORD_FILE_FACTORY")
     if imp:
         import_string(imp)
     else:
         try:
             get_distribution('invenio-records-files')
             from invenio_records_files.utils import record_file_factory
             return record_file_factory
         except DistributionNotFound:
             return lambda pid, record, filename: None
开发者ID:kaplun,项目名称:invenio-files-rest,代码行数:12,代码来源:ext.py


示例17: add_blueprint

    def add_blueprint(self, name, kw):
        join_name = lambda n, s: '%s.%s' % (n, s)

        for module in self.config['LOAD_MODULES_EXTENSIONS']:
            try:
                import_string(join_name(name, module))
            except (ImportError, AttributeError):
                # print 'No {e_module} found in {e_name}.'.format(e_module=module, e_name=name)
                pass

        blueprint = import_string(join_name(name, 'app'))
        self.register_blueprint(blueprint, **kw)
开发者ID:jpoutrin,项目名称:flask-empty,代码行数:12,代码来源:empty.py


示例18: register_blueprint

def register_blueprint(app, app_package, module_name="app", blueprint_name="module", on_error=None):
    """Automatically load Blueprint from the specified package and registers them with Flask."""

    #TODO: simplify for our case

    if not app_package:
        raise ValueError("No apps package provided - unable to begin autoload")

    if isinstance(app_package, basestring):
        package_code = import_string(app_package)
    else:
        #: `apps_package` can be the already imported parent package
        #: (i.e. the following is a licit pattern)::
        #:
        #:      import app_package
        #:      # do something else with app_package
        #:      autoload(app, app_package)
        package_code = app_package
        app_package = app_package.__name__

    package_paths = package_code.__path__

    package_paths = [path.join(path.dirname(app.root_path), p) for p in package_paths]
    root = app_package
    app_package = app_package + u"." if not app_package.endswith(".") else app_package

    if on_error is None:
        on_error = lambda name: app.logger.warn("Unable to import {name}.".format(name=name))

    _to_import = "{base}.{module}.{symbol}"
    import_template = lambda base: _to_import.format(base=base,
                                                     module=module_name,
                                                     symbol=blueprint_name)

    #: Autoloaded apps must be Python packages
    #: The root of the package is ONLY inspected for a routing file
    package_contents = [[None, root, True]]
    for _, sub_app_name, is_pkg in package_contents:

        if not is_pkg:
            continue

        sub_app_import_path = import_template(base=sub_app_name)
        sub_app = import_string(sub_app_import_path)

        if isinstance(sub_app, Blueprint):
            app.register_blueprint(sub_app, url_prefix='/%s' % sub_app.name)
            # TODO: Check if it's necessary to import_models
            import_models(app, sub_app_name)
        else:
            app.logger.warn(("Failed to register {name} - "
                             "it does not match the registration pattern.").format(name=sub_app_name))
开发者ID:Se7ge,项目名称:rso,代码行数:52,代码来源:autoload.py


示例19: general_menu

def general_menu():
    menu_items = list()
    blueprints = app.blueprints
    for k, v in blueprints.items():
        try:
            config = import_string('%s.config' % import_string(v.import_name).__package__)
        except ImportError, e:
            print e
        else:
            if hasattr(config, 'RUS_NAME'):
                menu_items.append(dict(module=v.name, name=config.RUS_NAME))
            else:
                menu_items.append(dict(module=v.name, name=v.name))
开发者ID:Se7ge,项目名称:rso,代码行数:13,代码来源:context_processors.py


示例20: create_app

def create_app():
    app = Flask(__name__)
    app.config.from_object('envcfg.json.envision')

    for extension_name in extensions:
        extension = import_string(extension_name)
        extension.init_app(app)

    for blueprint_name in blueprints:
        blueprint = import_string(blueprint_name)
        app.register_blueprint(blueprint)

    return app
开发者ID:lttxzmj,项目名称:envision,代码行数:13,代码来源:app.py



注:本文中的werkzeug.utils.import_string函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python utils.parse_cookie函数代码示例发布时间:2022-05-26
下一篇:
Python utils.find_modules函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap