Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
avocado
提交
903ab496
A
avocado
项目概览
openeuler
/
avocado
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
avocado
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
903ab496
编写于
5月 13, 2014
作者:
L
Lucas Meneghel Rodrigues
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
avocado.settings: Make convert_value_type() more generic
Signed-off-by:
N
Lucas Meneghel Rodrigues
<
lmr@redhat.com
>
上级
8bc6a350
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
39 addition
and
13 deletion
+39
-13
avocado/settings.py
avocado/settings.py
+39
-13
未找到文件。
avocado/settings.py
浏览文件 @
903ab496
...
...
@@ -61,13 +61,40 @@ class ConfigFileNotFound(SettingsError):
return
(
"Could not find the avocado config file after looking in: %s"
%
self
.
path_list
)
def
convert_value_type
(
key
,
section
,
value
,
value_type
):
def
convert_value_type
(
value
,
value_type
):
"""
Convert a string to another data type.
Convert a string value to a given value type.
:param value: Value we want to convert.
:type value: str.
:param value_type: Type of the value we want to convert.
:type value_type: str or type.
:return: Converted value type.
:rtype: Dependent on value_type.
:raise: TypeError, in case it was not possible to convert values.
"""
# strip off leading and trailing white space
sval
=
value
.
strip
()
try
:
sval
=
value
.
strip
()
except
:
sval
=
value
if
isinstance
(
value_type
,
str
):
if
value_type
==
'str'
:
value_type
=
str
elif
value_type
==
'bool'
:
value_type
=
bool
elif
value_type
==
'int'
:
value_type
=
int
elif
value_type
==
'float'
:
value_type
=
float
elif
value_type
==
'list'
:
value_type
=
list
if
value_type
is
None
:
value_type
=
str
# if length of string is zero then return None
if
len
(
sval
)
==
0
:
...
...
@@ -94,14 +121,8 @@ def convert_value_type(key, section, value, value_type):
# Split the string using ',' and return a list
return
[
val
.
strip
()
for
val
in
sval
.
split
(
','
)]
try
:
conv_val
=
value_type
(
sval
)
return
conv_val
except
Exception
:
msg
=
(
"Could not convert %s value %r in section %s to type %s"
%
(
key
,
sval
,
section
,
value_type
))
raise
SettingsValueError
(
msg
)
conv_val
=
value_type
(
sval
)
return
conv_val
class
Settings
(
object
):
...
...
@@ -183,7 +204,12 @@ class Settings(object):
if
not
val
.
strip
()
and
not
allow_blank
:
return
self
.
_handle_no_value
(
section
,
key
,
default
)
return
convert_value_type
(
key
,
section
,
val
,
key_type
)
try
:
return
convert_value_type
(
val
,
key_type
)
except
Exception
,
details
:
raise
SettingsValueError
(
"Could not convert value %r to type %s "
"(settings key %s, section %s): %s"
%
(
val
,
key_type
,
key
,
section
,
details
))
settings
=
Settings
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录