Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 409e210

Browse files
committed
split setting of verbose mode from option validation code
svn path=/trunk/matplotlib/; revision=3425
1 parent a2a8f2b commit 409e210

File tree

1 file changed

+23
-23
lines changed

1 file changed

+23
-23
lines changed

lib/matplotlib/__init__.py

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,8 @@ class Verbose:
240240

241241

242242

243-
def __init__(self, level):
244-
self.set_level(level)
243+
def __init__(self):
244+
self.set_level('silent')
245245
self.fileo = sys.stdout
246246

247247
def set_level(self, level):
@@ -253,6 +253,21 @@ def set_level(self, level):
253253
raise ValueError('Illegal verbose string "%s". Legal values are %s'%(level, self.levels))
254254
self.level = level
255255

256+
def set_fileo(self, fname):
257+
std = {
258+
'sys.stdout': sys.stdout,
259+
'sys.stderr': sys.stderr,
260+
}
261+
if fname in std:
262+
self.fileo = std[fname]
263+
else:
264+
try:
265+
fileo = file(fname, 'w')
266+
except IOError:
267+
raise ValueError('Verbose object could not open log file "%s" for writing.\nCheck your matplotlibrc verbose.fileo setting'%fname)
268+
else:
269+
self.fileo = fileo
270+
256271
def report(self, s, level='helpful'):
257272
"""
258273
print message s to self.fileo if self.level>=level. Return
@@ -292,7 +307,7 @@ def ge(self, level):
292307
return self.vald[self.level]>=self.vald[level]
293308

294309

295-
verbose=Verbose('silent')
310+
verbose=Verbose()
296311

297312
def _get_home():
298313
"""Find user's home directory if possible.
@@ -618,25 +633,7 @@ def validate_fontsize(s):
618633
except ValueError:
619634
raise ValueError('not a valid font size')
620635

621-
622-
def validate_verbose(s):
623-
verbose.set_level(s)
624-
return verbose
625-
626-
627-
def validate_verbose_fileo(s):
628-
d = {'sys.stdout':sys.stdout,
629-
'sys.stderr':sys.stderr,
630-
}
631-
if d.has_key(s): verbose.fileo = d[s]
632-
else:
633-
try: fileo = file(s, 'w')
634-
except IOError:
635-
raise ValueError('Verbose object could not open log file "%s" for writing.\nCheck your matplotlibrc verbose.fileo setting'%s)
636-
else:
637-
verbose.fileo = fileo
638-
return verbose.fileo
639-
636+
validate_verbose = ValidateInStrings(Verbose.levels)
640637

641638
validate_ps_papersize = ValidateInStrings([
642639
'auto', 'letter', 'legal', 'ledger',
@@ -771,7 +768,7 @@ def __call__(self, s):
771768

772769
# the verbosity setting
773770
'verbose.level' : ['silent', validate_verbose],
774-
'verbose.fileo' : ['sys.stdout', validate_verbose_fileo],
771+
'verbose.fileo' : ['sys.stdout', str],
775772

776773
# line props
777774
'lines.linewidth' : [1.0, validate_float], # line width in points
@@ -1056,6 +1053,9 @@ def rc_params(fail_on_error=False):
10561053
if cval is not None:
10571054
ret[key] = cval
10581055

1056+
verbose.set_level(ret['verbose.level'])
1057+
verbose.set_fileo(ret['verbose.fileo'])
1058+
10591059
for key, (val, line, cnt) in rc_temp.iteritems():
10601060
cval = validate_key(key, val, line, cnt, fname, fail_on_error)
10611061
if cval is not None:

0 commit comments

Comments
 (0)