| 2735 | """ |
| 2736 | |
| 2737 | def __init__(self, initial_value="", newline="\n"): |
| 2738 | super(StringIO, self).__init__(BytesIO(), |
| 2739 | encoding="utf-8", |
| 2740 | errors="surrogatepass", |
| 2741 | newline=newline) |
| 2742 | # Issue #5645: make universal newlines semantics the same as in the |
| 2743 | # C version, even under Windows. |
| 2744 | if newline is None: |
| 2745 | self._writetranslate = False |
| 2746 | if initial_value is not None: |
| 2747 | if not isinstance(initial_value, str): |
| 2748 | raise TypeError("initial_value must be str or None, not {0}" |
| 2749 | .format(type(initial_value).__name__)) |
| 2750 | self.write(initial_value) |
| 2751 | self.seek(0) |
| 2752 | |
| 2753 | def getvalue(self): |
| 2754 | self.flush() |