Write data, where s is a str
(self, s)
| 2268 | return self.buffer.isatty() |
| 2269 | |
| 2270 | def write(self, s): |
| 2271 | 'Write data, where s is a str' |
| 2272 | if self.closed: |
| 2273 | raise ValueError("write to closed file") |
| 2274 | if not isinstance(s, str): |
| 2275 | raise TypeError("can't write %s to text stream" % |
| 2276 | s.__class__.__name__) |
| 2277 | length = len(s) |
| 2278 | haslf = (self._writetranslate or self._line_buffering) and "\n" in s |
| 2279 | if haslf and self._writetranslate and self._writenl != "\n": |
| 2280 | s = s.replace("\n", self._writenl) |
| 2281 | encoder = self._encoder or self._get_encoder() |
| 2282 | # XXX What if we were just reading? |
| 2283 | b = encoder.encode(s) |
| 2284 | self.buffer.write(b) |
| 2285 | if self._line_buffering and (haslf or "\r" in s): |
| 2286 | self.flush() |
| 2287 | if self._snapshot is not None: |
| 2288 | self._set_decoded_chars('') |
| 2289 | self._snapshot = None |
| 2290 | if self._decoder: |
| 2291 | self._decoder.reset() |
| 2292 | return length |
| 2293 | |
| 2294 | def _get_encoder(self): |
| 2295 | make_encoder = codecs.getincrementalencoder(self._encoding) |