@@ -172,50 +172,54 @@ def validate_maskedarray(v):
172
172
' please delete it from your matplotlibrc file' )
173
173
174
174
175
- class validate_nseq_float :
175
+ _seq_err_msg = ('You must supply exactly {n:d} values, you provided '
176
+ '{num:d} values: {s}' )
177
+
178
+ _str_err_msg = ('You must supply exactly {n:d} comma-separated values, '
179
+ 'you provided '
180
+ '{num:d} comma-separated values: {s}' )
181
+
182
+
183
+ class validate_nseq_float (object ):
176
184
def __init__ (self , n ):
177
185
self .n = n
178
186
179
187
def __call__ (self , s ):
180
188
"""return a seq of n floats or raise"""
181
189
if isinstance (s , six .string_types ):
182
- ss = s .split (',' )
183
- if len (ss ) != self .n :
184
- raise ValueError (
185
- 'You must supply exactly %d comma separated values' %
186
- self .n )
187
- try :
188
- return [float (val ) for val in ss ]
189
- except ValueError :
190
- raise ValueError ('Could not convert all entries to floats' )
190
+ s = s .split (',' )
191
+ err_msg = _str_err_msg
191
192
else :
192
- assert type (s ) in (list , tuple )
193
- if len (s ) != self .n :
194
- raise ValueError ('You must supply exactly %d values' % self .n )
193
+ err_msg = _seq_err_msg
194
+
195
+ if len (s ) != self .n :
196
+ raise ValueError (err_msg .format (n = self .n , num = len (s ), s = s ))
197
+
198
+ try :
195
199
return [float (val ) for val in s ]
200
+ except ValueError :
201
+ raise ValueError ('Could not convert all entries to floats' )
196
202
197
203
198
- class validate_nseq_int :
204
+ class validate_nseq_int ( object ) :
199
205
def __init__ (self , n ):
200
206
self .n = n
201
207
202
208
def __call__ (self , s ):
203
209
"""return a seq of n ints or raise"""
204
210
if isinstance (s , six .string_types ):
205
- ss = s .split (',' )
206
- if len (ss ) != self .n :
207
- raise ValueError (
208
- 'You must supply exactly %d comma separated values' %
209
- self .n )
210
- try :
211
- return [int (val ) for val in ss ]
212
- except ValueError :
213
- raise ValueError ('Could not convert all entries to ints' )
211
+ s = s .split (',' )
212
+ err_msg = _str_err_msg
214
213
else :
215
- assert type (s ) in (list , tuple )
216
- if len (s ) != self .n :
217
- raise ValueError ('You must supply exactly %d values' % self .n )
214
+ err_msg = _seq_err_msg
215
+
216
+ if len (s ) != self .n :
217
+ raise ValueError (err_msg .format (n = self .n , num = len (s ), s = s ))
218
+
219
+ try :
218
220
return [int (val ) for val in s ]
221
+ except ValueError :
222
+ raise ValueError ('Could not convert all entries to ints' )
219
223
220
224
221
225
def validate_color (s ):
0 commit comments