当前位置: 首页>>代码示例>>Python>>正文


Python ConfigValue.to_iter方法代码示例

本文整理汇总了Python中r2.lib.configparse.ConfigValue.to_iter方法的典型用法代码示例。如果您正苦于以下问题:Python ConfigValue.to_iter方法的具体用法?Python ConfigValue.to_iter怎么用?Python ConfigValue.to_iter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在r2.lib.configparse.ConfigValue的用法示例。


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

示例1: load_db_params

# 需要导入模块: from r2.lib.configparse import ConfigValue [as 别名]
# 或者: from r2.lib.configparse.ConfigValue import to_iter [as 别名]
    def load_db_params(self):
        self.databases = tuple(ConfigValue.to_iter(self.config.raw_data['databases']))
        self.db_params = {}
        if not self.databases:
            return

        dbm = db_manager.db_manager()
        db_param_names = ('name', 'db_host', 'db_user', 'db_pass', 'db_port',
                          'pool_size', 'max_overflow')
        for db_name in self.databases:
            conf_params = ConfigValue.to_iter(self.config.raw_data[db_name + '_db'])
            params = dict(zip(db_param_names, conf_params))
            if params['db_user'] == "*":
                params['db_user'] = self.db_user
            if params['db_pass'] == "*":
                params['db_pass'] = self.db_pass
            if params['db_port'] == "*":
                params['db_port'] = self.db_port

            if params['pool_size'] == "*":
                params['pool_size'] = self.db_pool_size
            if params['max_overflow'] == "*":
                params['max_overflow'] = self.db_pool_overflow_size

            dbm.setup_db(db_name, g_override=self, **params)
            self.db_params[db_name] = params

        dbm.type_db = dbm.get_engine(self.config.raw_data['type_db'])
        dbm.relation_type_db = dbm.get_engine(self.config.raw_data['rel_type_db'])

        def split_flags(raw_params):
            params = []
            flags = {}

            for param in raw_params:
                if not param.startswith("!"):
                    params.append(param)
                else:
                    key, sep, value = param[1:].partition("=")
                    if sep:
                        flags[key] = value
                    else:
                        flags[key] = True

            return params, flags

        prefix = 'db_table_'
        self.predefined_type_ids = {}
        for k, v in self.config.raw_data.iteritems():
            if not k.startswith(prefix):
                continue

            params, table_flags = split_flags(ConfigValue.to_iter(v))
            name = k[len(prefix):]
            kind = params[0]
            server_list = self.config.raw_data["db_servers_" + name]
            engines, flags = split_flags(ConfigValue.to_iter(server_list))

            typeid = table_flags.get("typeid")
            if typeid:
                self.predefined_type_ids[name] = int(typeid)

            if kind == 'thing':
                dbm.add_thing(name, dbm.get_engines(engines),
                              **flags)
            elif kind == 'relation':
                dbm.add_relation(name, params[1], params[2],
                                 dbm.get_engines(engines),
                                 **flags)
        return dbm
开发者ID:Anenome,项目名称:reddit,代码行数:72,代码来源:app_globals.py

示例2: load_db_params

# 需要导入模块: from r2.lib.configparse import ConfigValue [as 别名]
# 或者: from r2.lib.configparse.ConfigValue import to_iter [as 别名]
    def load_db_params(self):
        self.databases = tuple(ConfigValue.to_iter(self.config.raw_data["databases"]))
        self.db_params = {}
        self.predefined_type_ids = {}
        if not self.databases:
            return

        if self.env == "unit_test":
            from mock import MagicMock

            return MagicMock()

        dbm = db_manager.db_manager()
        db_param_names = ("name", "db_host", "db_user", "db_pass", "db_port", "pool_size", "max_overflow")
        for db_name in self.databases:
            conf_params = ConfigValue.to_iter(self.config.raw_data[db_name + "_db"])
            params = dict(zip(db_param_names, conf_params))
            if params["db_user"] == "*":
                params["db_user"] = self.db_user
            if params["db_pass"] == "*":
                params["db_pass"] = self.db_pass
            if params["db_port"] == "*":
                params["db_port"] = self.db_port

            if params["pool_size"] == "*":
                params["pool_size"] = self.db_pool_size
            if params["max_overflow"] == "*":
                params["max_overflow"] = self.db_pool_overflow_size

            dbm.setup_db(db_name, g_override=self, **params)
            self.db_params[db_name] = params

        dbm.type_db = dbm.get_engine(self.config.raw_data["type_db"])
        dbm.relation_type_db = dbm.get_engine(self.config.raw_data["rel_type_db"])

        def split_flags(raw_params):
            params = []
            flags = {}

            for param in raw_params:
                if not param.startswith("!"):
                    params.append(param)
                else:
                    key, sep, value = param[1:].partition("=")
                    if sep:
                        flags[key] = value
                    else:
                        flags[key] = True

            return params, flags

        prefix = "db_table_"
        for k, v in self.config.raw_data.iteritems():
            if not k.startswith(prefix):
                continue

            params, table_flags = split_flags(ConfigValue.to_iter(v))
            name = k[len(prefix) :]
            kind = params[0]
            server_list = self.config.raw_data["db_servers_" + name]
            engines, flags = split_flags(ConfigValue.to_iter(server_list))

            typeid = table_flags.get("typeid")
            if typeid:
                self.predefined_type_ids[name] = int(typeid)

            if kind == "thing":
                dbm.add_thing(name, dbm.get_engines(engines), **flags)
            elif kind == "relation":
                dbm.add_relation(name, params[1], params[2], dbm.get_engines(engines), **flags)
        return dbm
开发者ID:loganfreeman,项目名称:reddit,代码行数:73,代码来源:app_globals.py


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