def _read_data(
filename, key_conv=str, value_conv=float, key_col=0, value_col=1):
result = {}
cols = None
for count, line in enumerate(
pkg.resource_stream(__name__, filename), start=1):
data = _parse_re.match(line.decode('utf-8')).group('data')
if data:
data = data.split()
try:
if cols is None:
cols = len(data)
elif len(data) != cols:
raise ValueError(
'Unexpected number of values (expected %d)' % cols)
key = key_conv(data[key_col])
value = value_conv(data[value_col])
if key in result:
raise ValueError(
'Duplicate definition for group %s' % key)
result[key] = value
except (IndexError, ValueError) as e:
e.args += ('on line %d of %s' % (count, filename),)
raise
return result
评论列表
文章目录