Ah, damn. That would've been soo much simpler. =S Thanks for the advice man.
-Wes Ben Cartwright wrote: > Ws wrote: > > I'm trying to write up a module that *safely* sets sys.stderr and > > sys.stdout, and am currently having troubles with the function > > verification. I need to assure that the function can indeed be called > > as the Python manual specifies that sys.stdout and sys.stderr should be > > defined (standard file-like objects, only requiring a function named > > "write"). > <snip> > > My problem is in verifying the class we're trying to redirect output > > to. > > This is what I have so far: > > def _VerifyOutputStream(fh): > > if 'write' not in dir(fh): > > raise AttributeError, "The Output Stream should have a write > > method." > > if not callable(fh.write): > > raise TypeError, "The Output Stream's write method is not > > callable." > <snip> > > In the above _VerifyOutputStream function, how would I verify that the > > fh.write method requires only one argument, as the built-in file > > objects do? > > Why not just call the function with an empty string? > > def _VerifyOutputStream(fh): > fh.write('') > > Note that you don't need to manually check for AttributeError or > TypeError. Python will do that for you. It's generally better to act > first and ask forgiveness later. > > --Ben -- http://mail.python.org/mailman/listinfo/python-list