Mercurial > hg
comparison mercurial/encoding.py @ 36797:d4c760c997cd
py3: drop encoding.strio()
Its buffered nature makes TextIOWrapper unsuitable for temporarily wrapping
bytes I/O.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Tue, 06 Mar 2018 02:43:17 -0600 |
parents | 3696efeab66f |
children | 57b0c7221dba 443029011990 |
comparison
equal
deleted
inserted
replaced
36796:aa0fc12743c7 | 36797:d4c760c997cd |
---|---|
5 # This software may be used and distributed according to the terms of the | 5 # This software may be used and distributed according to the terms of the |
6 # GNU General Public License version 2 or any later version. | 6 # GNU General Public License version 2 or any later version. |
7 | 7 |
8 from __future__ import absolute_import, print_function | 8 from __future__ import absolute_import, print_function |
9 | 9 |
10 import io | |
11 import locale | 10 import locale |
12 import os | 11 import os |
13 import unicodedata | 12 import unicodedata |
14 | 13 |
15 from . import ( | 14 from . import ( |
579 # unescape U+DCxx characters | 578 # unescape U+DCxx characters |
580 if "\xed\xb0\x80" <= c <= "\xed\xb3\xbf": | 579 if "\xed\xb0\x80" <= c <= "\xed\xb3\xbf": |
581 c = pycompat.bytechr(ord(c.decode("utf-8", _utf8strict)) & 0xff) | 580 c = pycompat.bytechr(ord(c.decode("utf-8", _utf8strict)) & 0xff) |
582 r += c | 581 r += c |
583 return r | 582 return r |
584 | |
585 if pycompat.ispy3: | |
586 class strio(io.TextIOWrapper): | |
587 """Wrapper around TextIOWrapper that respects hg's encoding assumptions. | |
588 | |
589 Also works around Python closing streams. | |
590 """ | |
591 | |
592 def __init__(self, buffer): | |
593 super(strio, self).__init__(buffer, encoding=_sysstr(encoding)) | |
594 | |
595 def __del__(self): | |
596 """Override __del__ so it doesn't close the underlying stream.""" | |
597 else: | |
598 strio = pycompat.identity |