Skip to content

Commit e81c43b

Browse files
committed
CLN: replace %s syntax with .format in pandas.io.parsers
progress towards #16130
1 parent d46d2a5 commit e81c43b

File tree

1 file changed

+37
-28
lines changed

1 file changed

+37
-28
lines changed

pandas/io/parsers.py

+37-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,11 @@ 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] + ('{column}.{count}'.format(
1503+
column=col[-1], count=cur_count),)
15031504
else:
1504-
col = '%s.%d' % (col, cur_count)
1505+
col = '{column}.{count}'.format(
1506+
column=col, count=cur_count)
15051507
cur_count = counts[col]
15061508

15071509
names[i] = col
@@ -1548,7 +1550,7 @@ def _get_simple_index(self, data, columns):
15481550
def ix(col):
15491551
if not isinstance(col, compat.string_types):
15501552
return col
1551-
raise ValueError('Index %s invalid' % col)
1553+
raise ValueError('Index {col} invalid'.format(col=col))
15521554

15531555
to_remove = []
15541556
index = []
@@ -1572,8 +1574,8 @@ def _get_name(icol):
15721574
return icol
15731575

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

15781580
for i, c in enumerate(col_names):
15791581
if i == icol:
@@ -1688,7 +1690,8 @@ def _convert_to_ndarrays(self, dct, na_values, na_fvalues, verbose=False,
16881690

16891691
result[c] = cvals
16901692
if verbose and na_count:
1691-
print('Filled %d NA values in column %s' % (na_count, str(c)))
1693+
print('Filled {count} NA values in column {c!s}'.format(
1694+
count=na_count, c=c))
16921695
return result
16931696

16941697
def _infer_types(self, values, na_values, try_num_bool=True):
@@ -1789,8 +1792,10 @@ def _cast_types(self, values, cast_type, column):
17891792
values = astype_nansafe(values, cast_type,
17901793
copy=True, skipna=True)
17911794
except ValueError:
1792-
raise ValueError("Unable to convert column %s to "
1793-
"type %s" % (column, cast_type))
1795+
raise ValueError(
1796+
"Unable to convert column {column} to type "
1797+
"{cast_type}".format(
1798+
column=column, cast_type=cast_type))
17941799
return values
17951800

17961801
def _do_date_conversions(self, names, data):
@@ -1853,7 +1858,7 @@ def __init__(self, src, **kwds):
18531858

18541859
if self.names is None:
18551860
if self.prefix:
1856-
self.names = ['%s%d' % (self.prefix, i)
1861+
self.names = ['{prefix}{i}'.format(prefix=self.prefix, i=i)
18571862
for i in range(self._reader.table_width)]
18581863
else:
18591864
self.names = lrange(self._reader.table_width)
@@ -2255,10 +2260,11 @@ def __init__(self, f, **kwds):
22552260
raise ValueError('Only length-1 decimal markers supported')
22562261

22572262
if self.thousands is None:
2258-
self.nonnum = re.compile('[^-^0-9^%s]+' % self.decimal)
2263+
self.nonnum = re.compile(
2264+
r'[^-^0-9^{decimal}]+'.format(decimal=self.decimal))
22592265
else:
2260-
self.nonnum = re.compile('[^-^0-9^%s^%s]+' % (self.thousands,
2261-
self.decimal))
2266+
self.nonnum = re.compile(r'[^-^0-9^{thousands}^{decimal}]+'.format(
2267+
thousands=self.thousands, decimal=self.decimal))
22622268

22632269
def _set_no_thousands_columns(self):
22642270
# Create a set of column ids that are not to be stripped of thousands
@@ -2497,8 +2503,8 @@ def _infer_columns(self):
24972503
except StopIteration:
24982504
if self.line_pos < hr:
24992505
raise ValueError(
2500-
'Passed header=%s but only %d lines in file'
2501-
% (hr, self.line_pos + 1))
2506+
'Passed header={hr} but only {pos} lines in '
2507+
'file'.format(hr=hr, pos=(self.line_pos + 1)))
25022508

25032509
# We have an empty file, so check
25042510
# if columns are provided. That will
@@ -2539,7 +2545,8 @@ def _infer_columns(self):
25392545

25402546
while cur_count > 0:
25412547
counts[col] = cur_count + 1
2542-
col = "%s.%d" % (col, cur_count)
2548+
col = u'{column}.{count}'.format(
2549+
column=col, count=cur_count)
25432550
cur_count = counts[col]
25442551

25452552
this_columns[i] = col
@@ -2607,8 +2614,8 @@ def _infer_columns(self):
26072614

26082615
if not names:
26092616
if self.prefix:
2610-
columns = [['%s%d' % (self.prefix, i)
2611-
for i in range(ncols)]]
2617+
columns = [['{prefix}{idx}'.format(
2618+
prefix=self.prefix, idx=i) for i in range(ncols)]]
26122619
else:
26132620
columns = [lrange(ncols)]
26142621
columns = self._handle_usecols(columns, columns[0])
@@ -3035,8 +3042,9 @@ def _rows_to_cols(self, content):
30353042
content.append(l)
30363043

30373044
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))
3045+
msg = ('Expected {col_len} fields in line {line}, saw '
3046+
'{length}'.format(col_len=col_len, line=(row_num + 1),
3047+
length=actual_len))
30403048
if (self.delimiter and
30413049
len(self.delimiter) > 1 and
30423050
self.quoting != csv.QUOTE_NONE):
@@ -3207,8 +3215,9 @@ def _isindex(colspec):
32073215
new_name, col, old_names = _try_convert_dates(
32083216
converter, colspec, data_dict, orig_names)
32093217
if new_name in data_dict:
3210-
raise ValueError('New date column already in dict %s' %
3211-
new_name)
3218+
raise ValueError(
3219+
'New date column already in dict {name}'.format(
3220+
name=new_name))
32123221
new_data[new_name] = col
32133222
new_cols.append(new_name)
32143223
date_cols.update(old_names)
@@ -3217,8 +3226,8 @@ def _isindex(colspec):
32173226
# dict of new name to column list
32183227
for new_name, colspec in compat.iteritems(parse_spec):
32193228
if new_name in data_dict:
3220-
raise ValueError('Date column %s already in dict' %
3221-
new_name)
3229+
raise ValueError(
3230+
'Date column {name} already in dict'.format(name=new_name))
32223231

32233232
_, col, old_names = _try_convert_dates(converter, colspec,
32243233
data_dict, orig_names)
@@ -3397,7 +3406,7 @@ def _stringify_na_values(na_values):
33973406
# we are like 999 here
33983407
if v == int(v):
33993408
v = int(v)
3400-
result.append("%s.0" % v)
3409+
result.append("{value}.0".format(value=v))
34013410
result.append(str(v))
34023411

34033412
result.append(v)
@@ -3542,8 +3551,8 @@ def get_rows(self, infer_nrows, skiprows=None):
35423551

35433552
def detect_colspecs(self, infer_nrows=100, skiprows=None):
35443553
# Regex escape the delimiters
3545-
delimiters = ''.join(r'\%s' % x for x in self.delimiter)
3546-
pattern = re.compile('([^%s]+)' % delimiters)
3554+
delimiters = ''.join(r'\{}'.format(x) for x in self.delimiter)
3555+
pattern = re.compile('([^{}]+)'.format(delimiters))
35473556
rows = self.get_rows(infer_nrows, skiprows)
35483557
if not rows:
35493558
raise EmptyDataError("No rows from which to infer column width")

0 commit comments

Comments
 (0)