@@ -165,7 +165,7 @@ def register_writer(klass):
165165 if ext .startswith ('.' ):
166166 ext = ext [1 :]
167167 if ext not in _writer_extensions :
168- config .register_option ("io.excel.%s .writer" % ext ,
168+ config .register_option ("io.excel.{ext} .writer" . format ( ext = ext ) ,
169169 engine_name , validator = str )
170170 _writer_extensions .append (ext )
171171
@@ -190,7 +190,8 @@ def get_writer(engine_name):
190190 try :
191191 return _writers [engine_name ]
192192 except KeyError :
193- raise ValueError ("No Excel writer '%s'" % engine_name )
193+ raise ValueError ("No Excel writer '{engine}'"
194+ .format (engine = engine_name ))
194195
195196
196197@Appender (_read_excel_doc )
@@ -259,7 +260,7 @@ def __init__(self, io, **kwds):
259260 engine = kwds .pop ('engine' , None )
260261
261262 if engine is not None and engine != 'xlrd' :
262- raise ValueError ("Unknown engine: %s" % engine )
263+ raise ValueError ("Unknown engine: {engine}" . format ( engine = engine ) )
263264
264265 # If io is a url, want to keep the data as bytes so can't pass
265266 # to get_filepath_or_buffer()
@@ -445,7 +446,7 @@ def _parse_cell(cell_contents, cell_typ):
445446
446447 for asheetname in sheets :
447448 if verbose :
448- print ("Reading sheet %s" % asheetname )
449+ print ("Reading sheet {sheet}" . format ( sheet = asheetname ) )
449450
450451 if isinstance (asheetname , compat .string_types ):
451452 sheet = self .book .sheet_by_name (asheetname )
@@ -634,7 +635,7 @@ def _conv_value(val):
634635 elif is_bool (val ):
635636 val = bool (val )
636637 elif isinstance (val , Period ):
637- val = "%s" % val
638+ val = "{val}" . format ( val = val )
638639 elif is_list_like (val ):
639640 val = str (val )
640641
@@ -697,9 +698,11 @@ def __new__(cls, path, engine=None, **kwargs):
697698 ext = 'xlsx'
698699
699700 try :
700- engine = config .get_option ('io.excel.%s.writer' % ext )
701+ engine = config .get_option ('io.excel.{ext}.writer'
702+ .format (ext = ext ))
701703 except KeyError :
702- error = ValueError ("No engine for filetype: '%s'" % ext )
704+ error = ValueError ("No engine for filetype: '{ext}'"
705+ .format (ext = ext ))
703706 raise error
704707 cls = get_writer (engine )
705708
@@ -787,8 +790,9 @@ def check_extension(cls, ext):
787790 if ext .startswith ('.' ):
788791 ext = ext [1 :]
789792 if not any (ext in extension for extension in cls .supported_extensions ):
790- msg = (u ("Invalid extension for engine '%s': '%s'" ) %
791- (pprint_thing (cls .engine ), pprint_thing (ext )))
793+ msg = (u ("Invalid extension for engine '{engine}': '{ext}'" )
794+ .format (engine = pprint_thing (cls .engine ),
795+ ext = pprint_thing (ext )))
792796 raise ValueError (msg )
793797 else :
794798 return True
@@ -813,8 +817,8 @@ class _Openpyxl1Writer(ExcelWriter):
813817 def __init__ (self , path , engine = None , ** engine_kwargs ):
814818 if not openpyxl_compat .is_compat (major_ver = self .openpyxl_majorver ):
815819 raise ValueError ('Installed openpyxl is not supported at this '
816- 'time. Use {0 }.x.y.'
817- .format (self .openpyxl_majorver ))
820+ 'time. Use {majorver }.x.y.'
821+ .format (majorver = self .openpyxl_majorver ))
818822 # Use the openpyxl module as the Excel writer.
819823 from openpyxl .workbook import Workbook
820824
@@ -854,7 +858,8 @@ def write_cells(self, cells, sheet_name=None, startrow=0, startcol=0,
854858
855859 for cell in cells :
856860 colletter = get_column_letter (startcol + cell .col + 1 )
857- xcell = wks .cell ("%s%s" % (colletter , startrow + cell .row + 1 ))
861+ xcell = wks .cell ("{col}{row}" .format (col = colletter ,
862+ row = startrow + cell .row + 1 ))
858863 if (isinstance (cell .val , compat .string_types ) and
859864 xcell .data_type_for_value (cell .val ) != xcell .TYPE_STRING ):
860865 xcell .set_value_explicit (cell .val )
@@ -876,10 +881,12 @@ def write_cells(self, cells, sheet_name=None, startrow=0, startcol=0,
876881 cletterstart = get_column_letter (startcol + cell .col + 1 )
877882 cletterend = get_column_letter (startcol + cell .mergeend + 1 )
878883
879- wks .merge_cells ('%s%s:%s%s' % (cletterstart ,
880- startrow + cell .row + 1 ,
881- cletterend ,
882- startrow + cell .mergestart + 1 ))
884+ wks .merge_cells ('{start}{row}:{end}{mergestart}'
885+ .format (start = cletterstart ,
886+ row = startrow + cell .row + 1 ,
887+ end = cletterend ,
888+ mergestart = startrow +
889+ cell .mergestart + 1 ))
883890
884891 # Excel requires that the format of the first cell in a merged
885892 # range is repeated in the rest of the merged range.
@@ -895,7 +902,8 @@ def write_cells(self, cells, sheet_name=None, startrow=0, startcol=0,
895902 # Ignore first cell. It is already handled.
896903 continue
897904 colletter = get_column_letter (col )
898- xcell = wks .cell ("%s%s" % (colletter , row ))
905+ xcell = wks .cell ("{col}{row}"
906+ .format (col = colletter , row = row ))
899907 for field in style .__fields__ :
900908 xcell .style .__setattr__ (
901909 field , style .__getattribute__ (field ))
@@ -955,7 +963,8 @@ def write_cells(self, cells, sheet_name=None, startrow=0, startcol=0,
955963
956964 for cell in cells :
957965 colletter = get_column_letter (startcol + cell .col + 1 )
958- xcell = wks ["%s%s" % (colletter , startrow + cell .row + 1 )]
966+ xcell = wks ["{col}{row}"
967+ .format (col = colletter , row = startrow + cell .row + 1 )]
959968 xcell .value = _conv_value (cell .val )
960969 style_kwargs = {}
961970
@@ -977,10 +986,12 @@ def write_cells(self, cells, sheet_name=None, startrow=0, startcol=0,
977986 cletterstart = get_column_letter (startcol + cell .col + 1 )
978987 cletterend = get_column_letter (startcol + cell .mergeend + 1 )
979988
980- wks .merge_cells ('%s%s:%s%s' % (cletterstart ,
981- startrow + cell .row + 1 ,
982- cletterend ,
983- startrow + cell .mergestart + 1 ))
989+ wks .merge_cells ('{start}{row}:{end}{mergestart}'
990+ .format (start = cletterstart ,
991+ row = startrow + cell .row + 1 ,
992+ end = cletterend ,
993+ mergestart = startrow +
994+ cell .mergestart + 1 ))
984995
985996 # Excel requires that the format of the first cell in a merged
986997 # range is repeated in the rest of the merged range.
@@ -996,7 +1007,8 @@ def write_cells(self, cells, sheet_name=None, startrow=0, startcol=0,
9961007 # Ignore first cell. It is already handled.
9971008 continue
9981009 colletter = get_column_letter (col )
999- xcell = wks ["%s%s" % (colletter , row )]
1010+ xcell = wks ["{col}{row}"
1011+ .format (col = colletter , row = row )]
10001012 xcell .style = xcell .style .copy (** style_kwargs )
10011013
10021014 @classmethod
@@ -1030,7 +1042,7 @@ def _convert_to_style_kwargs(cls, style_dict):
10301042 for k , v in style_dict .items ():
10311043 if k in _style_key_map :
10321044 k = _style_key_map [k ]
1033- _conv_to_x = getattr (cls , '_convert_to_{0 }' .format (k ),
1045+ _conv_to_x = getattr (cls , '_convert_to_{k }' .format (k = k ),
10341046 lambda x : None )
10351047 new_v = _conv_to_x (v )
10361048 if new_v :
@@ -1505,17 +1517,19 @@ def _style_to_xlwt(cls, item, firstlevel=True, field_sep=',',
15051517 """
15061518 if hasattr (item , 'items' ):
15071519 if firstlevel :
1508- it = ["%s: %s" % (key , cls ._style_to_xlwt (value , False ))
1520+ it = ["{key}: {val}"
1521+ .format (key = key , val = cls ._style_to_xlwt (value , False ))
15091522 for key , value in item .items ()]
1510- out = "%s " % ( line_sep ).join (it )
1523+ out = "{sep} " . format ( sep = ( line_sep ).join (it ) )
15111524 return out
15121525 else :
1513- it = ["%s %s" % (key , cls ._style_to_xlwt (value , False ))
1526+ it = ["{key} {val}"
1527+ .format (key = key , val = cls ._style_to_xlwt (value , False ))
15141528 for key , value in item .items ()]
1515- out = "%s " % ( field_sep ).join (it )
1529+ out = "{sep} " . format ( sep = ( field_sep ).join (it ) )
15161530 return out
15171531 else :
1518- item = "%s" % item
1532+ item = "{item}" . format ( item = item )
15191533 item = item .replace ("True" , "on" )
15201534 item = item .replace ("False" , "off" )
15211535 return item
0 commit comments