isatty() for file-like objects: Implement or not?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • HOWARD GOLDEN

    #1

    isatty() for file-like objects: Implement or not?

    The standard documentation for isatty() says:

    "Return True if the file is connected to a tty(-like) device, else
    False. Note: If a file-like object is not associated with a real file,
    this method should not be implemented."

    In his book, "Text Processing in Python," David Mertz says: "...
    implementing it to always return 0 is probably a better approach."

    My reaction is to agree with Mertz. I'd appreciate hearing from someone
    why the standard documentation is the way it is. Is there some concept of
    a file-like, non-real file that is to be distinguished using the
    non-implementation of isatty()? If this is the intention, then my
    suggestion is that this distinction is too indirectly expressed, and a
    more direct approach would be easier for non-language lawyers to
    understand. For example, there could be an attribute "unreal" (or,
    contrarily, "real").

    Howard B. Golden
  • Neal  Norwitz

    #2
    Re: isatty() for file-like objects: Implement or not?

    HOWARD GOLDEN wrote:[color=blue]
    > The standard documentation for isatty() says:
    >
    > "Return True if the file is connected to a tty(-like) device, else
    > False. Note: If a file-like object is not associated with a real file,
    > this method should not be implemented."
    >
    > In his book, "Text Processing in Python," David Mertz says: "...
    > implementing it to always return 0 is probably a better approach."
    >
    > My reaction is to agree with Mertz.[/color]

    I agree, I think the doc is wrong, e.g. StringIO has isatty() which
    returns False. I think the doc was probably a thinko (or things have
    changed) since Guido checked it in over 3 years ago.

    It would be great if you can provide a patch or at least a bug report
    on SourceForge.

    Thanks,
    n

    Comment

    Working...