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