Skip to content

Commit e561967

Browse files
committed
CLN: replace %s syntax with .format in pandas.io
progress towards pandas-dev#16130
1 parent decc8ce commit e561967

File tree

6 files changed

+216
-169
lines changed

6 files changed

+216
-169
lines changed

Diff for: pandas/io/packers.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -519,7 +519,8 @@ def encode(obj):
519519
elif isinstance(obj, date):
520520
return {u'typ': u'date',
521521
u'data': u(obj.isoformat())}
522-
raise Exception("cannot encode this datetimelike object: %s" % obj)
522+
raise Exception(
523+
"cannot encode this datetimelike object: {obj}".format(obj=obj))
523524
elif isinstance(obj, Period):
524525
return {u'typ': u'period',
525526
u'ordinal': obj.ordinal,

Diff for: pandas/io/parsers.py

+35-28
Original file line numberDiff line numberDiff line change
@@ -1464,9 +1464,9 @@ def extract(r):
14641464
for n in range(len(columns[0])):
14651465
if all(compat.to_str(c[n]) in self.unnamed_cols for c in columns):
14661466
raise ParserError(
1467-
"Passed header=[%s] are too many rows for this "
1467+
"Passed header=[{header}] are too many rows for this "
14681468
"multi_index of columns"
1469-
% ','.join(str(x) for x in self.header)
1469+
.format(header=','.join(str(x) for x in self.header))
14701470
)
14711471

14721472
# Clean the column names (if we have an index_col).
@@ -1499,9 +1499,10 @@ def _maybe_dedup_names(self, names):
14991499
counts[col] = cur_count + 1
15001500

15011501
if is_potential_mi:
1502-
col = col[:-1] + ('%s.%d' % (col[-1], cur_count),)
1502+
col = col[:-1] + ('{col}.{cnt}'.format(
1503+
col=col[-1], cnt=cur_count),)
15031504
else:
1504-
col = '%s.%d' % (col, cur_count)
1505+
col = '{col}.{cnt}'.format(col=col, cnt=cur_count)
15051506
cur_count = counts[col]
15061507

15071508
names[i] = col
@@ -1548,7 +1549,7 @@ def _get_simple_index(self, data, columns):
15481549
def ix(col):
15491550
if not isinstance(col, compat.string_types):
15501551
return col
1551-
raise ValueError('Index %s invalid' % col)
1552+
raise ValueError('Index {col} invalid'.format(col=col))
15521553

15531554
to_remove = []
15541555
index = []
@@ -1572,8 +1573,8 @@ def _get_name(icol):
15721573
return icol
15731574

15741575
if col_names is None:
1575-
raise ValueError(('Must supply column order to use %s as '
1576-
'index') % str(icol))
1576+
raise ValueError(('Must supply column order to use {icol!s} '
1577+
'as index').format(icol=icol))
15771578

15781579
for i, c in enumerate(col_names):
15791580
if i == icol:
@@ -1688,7 +1689,8 @@ def _convert_to_ndarrays(self, dct, na_values, na_fvalues, verbose=False,
16881689

16891690
result[c] = cvals
16901691
if verbose and na_count:
1691-
print('Filled %d NA values in column %s' % (na_count, str(c)))
1692+
print('Filled {count} NA values in column {c!s}'.format(
1693+
count=na_count, c=c))
16921694
return result
16931695

16941696
def _infer_types(self, values, na_values, try_num_bool=True):
@@ -1789,8 +1791,9 @@ def _cast_types(self, values, cast_type, column):
17891791
values = astype_nansafe(values, cast_type,
17901792
copy=True, skipna=True)
17911793
except ValueError:
1792-
raise ValueError("Unable to convert column %s to "
1793-
"type %s" % (column, cast_type))
1794+
raise ValueError(
1795+
"Unable to convert column {column} to type {type}".format(
1796+
column=column, type=cast_type))
17941797
return values
17951798

17961799
def _do_date_conversions(self, names, data):
@@ -1853,7 +1856,7 @@ def __init__(self, src, **kwds):
18531856

18541857
if self.names is None:
18551858
if self.prefix:
1856-
self.names = ['%s%d' % (self.prefix, i)
1859+
self.names = ['{prefix}{i}'.format(prefix=self.prefix, i=i)
18571860
for i in range(self._reader.table_width)]
18581861
else:
18591862
self.names = lrange(self._reader.table_width)
@@ -2255,10 +2258,11 @@ def __init__(self, f, **kwds):
22552258
raise ValueError('Only length-1 decimal markers supported')
22562259

22572260
if self.thousands is None:
2258-
self.nonnum = re.compile('[^-^0-9^%s]+' % self.decimal)
2261+
self.nonnum = re.compile(
2262+
'[^-^0-9^{decimal}]+'.format(decimal=self.decimal))
22592263
else:
2260-
self.nonnum = re.compile('[^-^0-9^%s^%s]+' % (self.thousands,
2261-
self.decimal))
2264+
self.nonnum = re.compile('[^-^0-9^{thousands}^{decimal}]+'.format(
2265+
thousands=self.thousands, decimal=self.decimal))
22622266

22632267
def _set_no_thousands_columns(self):
22642268
# Create a set of column ids that are not to be stripped of thousands
@@ -2497,8 +2501,8 @@ def _infer_columns(self):
24972501
except StopIteration:
24982502
if self.line_pos < hr:
24992503
raise ValueError(
2500-
'Passed header=%s but only %d lines in file'
2501-
% (hr, self.line_pos + 1))
2504+
'Passed header={hr} but only {pos} lines in '
2505+
'file'.format(hr=hr, pos=(self.line_pos + 1)))
25022506

25032507
# We have an empty file, so check
25042508
# if columns are provided. That will
@@ -2539,7 +2543,8 @@ def _infer_columns(self):
25392543

25402544
while cur_count > 0:
25412545
counts[col] = cur_count + 1
2542-
col = "%s.%d" % (col, cur_count)
2546+
col = "{columns}.{count}".format(
2547+
columns=col, count=cur_count)
25432548
cur_count = counts[col]
25442549

25452550
this_columns[i] = col
@@ -2607,8 +2612,8 @@ def _infer_columns(self):
26072612

26082613
if not names:
26092614
if self.prefix:
2610-
columns = [['%s%d' % (self.prefix, i)
2611-
for i in range(ncols)]]
2615+
columns = [['{prefix}{idx}'.format(
2616+
prefix=self.prefix, idx=i) for i in range(ncols)]]
26122617
else:
26132618
columns = [lrange(ncols)]
26142619
columns = self._handle_usecols(columns, columns[0])
@@ -3035,8 +3040,9 @@ def _rows_to_cols(self, content):
30353040
content.append(l)
30363041

30373042
for row_num, actual_len in bad_lines:
3038-
msg = ('Expected %d fields in line %d, saw %d' %
3039-
(col_len, row_num + 1, actual_len))
3043+
msg = ('Expected {col_len} fields in line {line}, saw '
3044+
'{length}'.format(col_len=col_len, line=(row_num + 1),
3045+
length=actual_len))
30403046
if (self.delimiter and
30413047
len(self.delimiter) > 1 and
30423048
self.quoting != csv.QUOTE_NONE):
@@ -3207,8 +3213,9 @@ def _isindex(colspec):
32073213
new_name, col, old_names = _try_convert_dates(
32083214
converter, colspec, data_dict, orig_names)
32093215
if new_name in data_dict:
3210-
raise ValueError('New date column already in dict %s' %
3211-
new_name)
3216+
raise ValueError(
3217+
'New date column already in dict {name}'.format(
3218+
name=new_name))
32123219
new_data[new_name] = col
32133220
new_cols.append(new_name)
32143221
date_cols.update(old_names)
@@ -3217,8 +3224,8 @@ def _isindex(colspec):
32173224
# dict of new name to column list
32183225
for new_name, colspec in compat.iteritems(parse_spec):
32193226
if new_name in data_dict:
3220-
raise ValueError('Date column %s already in dict' %
3221-
new_name)
3227+
raise ValueError(
3228+
'Date column {name} already in dict'.format(name=new_name))
32223229

32233230
_, col, old_names = _try_convert_dates(converter, colspec,
32243231
data_dict, orig_names)
@@ -3397,7 +3404,7 @@ def _stringify_na_values(na_values):
33973404
# we are like 999 here
33983405
if v == int(v):
33993406
v = int(v)
3400-
result.append("%s.0" % v)
3407+
result.append("{value}.0".format(value=v))
34013408
result.append(str(v))
34023409

34033410
result.append(v)
@@ -3542,8 +3549,8 @@ def get_rows(self, infer_nrows, skiprows=None):
35423549

35433550
def detect_colspecs(self, infer_nrows=100, skiprows=None):
35443551
# Regex escape the delimiters
3545-
delimiters = ''.join(r'\%s' % x for x in self.delimiter)
3546-
pattern = re.compile('([^%s]+)' % delimiters)
3552+
delimiters = ''.join(r'\{}'.format(x for x in self.delimiter))
3553+
pattern = re.compile('([^{}]+)'.format(delimiters))
35473554
rows = self.get_rows(infer_nrows, skiprows)
35483555
if not rows:
35493556
raise EmptyDataError("No rows from which to infer column width")

0 commit comments

Comments
 (0)