@@ -1642,6 +1642,12 @@ def __init__(self, f, **kwds):
16421642 if len (self .decimal ) != 1 :
16431643 raise ValueError ('Only length-1 decimal markers supported' )
16441644
1645+ if self .thousands is None :
1646+ self .nonnum = re .compile ('[^-^0-9^%s]+' % self .decimal )
1647+ else :
1648+ self .nonnum = re .compile ('[^-^0-9^%s^%s]+' % (self .thousands ,
1649+ self .decimal ))
1650+
16451651 def _set_no_thousands_columns (self ):
16461652 # Create a set of column ids that are not to be stripped of thousands
16471653 # operators.
@@ -2053,13 +2059,12 @@ def _check_empty(self, lines):
20532059 def _check_thousands (self , lines ):
20542060 if self .thousands is None :
20552061 return lines
2056- nonnum = re . compile ( '[^-^0-9^%s^%s]+' % ( self . thousands , self . decimal ))
2062+
20572063 return self ._search_replace_num_columns (lines = lines ,
20582064 search = self .thousands ,
2059- replace = '' ,
2060- nonnum = nonnum )
2065+ replace = '' )
20612066
2062- def _search_replace_num_columns (self , lines , search , replace , nonnum ):
2067+ def _search_replace_num_columns (self , lines , search , replace ):
20632068 ret = []
20642069 for l in lines :
20652070 rl = []
@@ -2068,26 +2073,20 @@ def _search_replace_num_columns(self, lines, search, replace, nonnum):
20682073 search not in x or
20692074 (self ._no_thousands_columns and
20702075 i in self ._no_thousands_columns ) or
2071- nonnum .search (x .strip ())):
2076+ self . nonnum .search (x .strip ())):
20722077 rl .append (x )
20732078 else :
20742079 rl .append (x .replace (search , replace ))
20752080 ret .append (rl )
20762081 return ret
20772082
20782083 def _check_decimal (self , lines ):
2079- if self .decimal == b'.' :
2084+ if self .decimal == _parser_defaults [ 'decimal' ] :
20802085 return lines
20812086
2082- if self .thousands is None :
2083- nonnum = re .compile ('[^-^0-9^%s]+' % self .decimal )
2084- else :
2085- nonnum = re .compile ('[^-^0-9^%s^%s]+' % (self .thousands ,
2086- self .decimal ))
20872087 return self ._search_replace_num_columns (lines = lines ,
20882088 search = self .decimal ,
2089- replace = '.' ,
2090- nonnum = nonnum )
2089+ replace = '.' )
20912090
20922091 def _clear_buffer (self ):
20932092 self .buf = []
0 commit comments