In response to the feature request:
Does anyone see any disadvantage to making Text.__init__ and
Text.set_text() either try to call the __str__ method, or use the str()
builtin, if passed an argument that is not a string? Maybe there is no
need to even check--just automatically use str(arg)? Offhand, this
looks to me like it would provide a gain in convenience and
intuitiveness with no pain.
Eric
--- Begin Message ---
Hi folks,
I am working on a software package to manipulate spectra and bandpasses,
and I expect my users will use it hand in hand with the pylabe interface
of matplotlib in order to see the results of their manipulations.
It would be extremely useful if xlabel, ylabel, title, and possibly
legend could be made smart enough to attempt to call a __str__ method on
the objects they are passed, so that xlabel(MyObject) behaves as
intelligently as "print MyObject" does.
For example, here's what happens presently:
>>> bb=S.BlackBody(33000)
>>> plot(bb.wave,bb.flux)
>>> print bb.waveunits
angstrom
>>> xlabel(bb.waveunits)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/stsci/pyssgdev/2.5/matplotlib/pylab.py", line 1069, in xlabel
l = gca().set_xlabel(s, *args, **kwargs)
File "/usr/stsci/pyssgdev/2.5/matplotlib/axes.py", line 1874, in set_xlabel
label.set_text(xlabel)
File "/usr/stsci/pyssgdev/2.5/matplotlib/text.py", line 735, in set_text
raise TypeError("This doesn't look like a string: '%s'"%s)
TypeError: This doesn't look like a string: 'angstrom'
It seems to me these functions shouldn't care whether they're given a
string or not, as long as the things they are given know how to make
strings out of themselves.
Of course, the workaround is for me to type
xlabel(str(bb.waveunits))
but in addition to the annoyance of extra typing, most of my intended
users are not presently Python users, and the present behavior
(especially the error given at the end of the traceback!) will confuse them.
Any chance of getting this implemented?
Hopefully,
Vicki Laidler, STScI
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users
--- End Message ---
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel