comparison mercurial/encoding.py @ 34152:a8994d08e4a2

doctest: use print_function and convert bytes to unicode where needed
author Yuya Nishihara <yuya@tcha.org>
date Sun, 03 Sep 2017 14:56:31 +0900
parents 414a3513c2bd
children 112f118ecb00
comparison
equal deleted inserted replaced
34151:414a3513c2bd 34152:a8994d08e4a2
3 # Copyright 2005-2009 Matt Mackall <mpm@selenic.com> and others 3 # Copyright 2005-2009 Matt Mackall <mpm@selenic.com> and others
4 # 4 #
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 8 from __future__ import absolute_import, print_function
9 9
10 import io 10 import io
11 import locale 11 import locale
12 import os 12 import os
13 import unicodedata 13 import unicodedata
246 246
247 If 'leftside' is True, left side of string 's' is trimmed. 247 If 'leftside' is True, left side of string 's' is trimmed.
248 'ellipsis' is always placed at trimmed side. 248 'ellipsis' is always placed at trimmed side.
249 249
250 >>> from .node import bin 250 >>> from .node import bin
251 >>> def bprint(s):
252 ... print(pycompat.sysstr(s))
251 >>> ellipsis = b'+++' 253 >>> ellipsis = b'+++'
252 >>> from . import encoding 254 >>> from . import encoding
253 >>> encoding.encoding = b'utf-8' 255 >>> encoding.encoding = b'utf-8'
254 >>> t = b'1234567890' 256 >>> t = b'1234567890'
255 >>> print trim(t, 12, ellipsis=ellipsis) 257 >>> bprint(trim(t, 12, ellipsis=ellipsis))
256 1234567890 258 1234567890
257 >>> print trim(t, 10, ellipsis=ellipsis) 259 >>> bprint(trim(t, 10, ellipsis=ellipsis))
258 1234567890 260 1234567890
259 >>> print trim(t, 8, ellipsis=ellipsis) 261 >>> bprint(trim(t, 8, ellipsis=ellipsis))
260 12345+++ 262 12345+++
261 >>> print trim(t, 8, ellipsis=ellipsis, leftside=True) 263 >>> bprint(trim(t, 8, ellipsis=ellipsis, leftside=True))
262 +++67890 264 +++67890
263 >>> print trim(t, 8) 265 >>> bprint(trim(t, 8))
264 12345678 266 12345678
265 >>> print trim(t, 8, leftside=True) 267 >>> bprint(trim(t, 8, leftside=True))
266 34567890 268 34567890
267 >>> print trim(t, 3, ellipsis=ellipsis) 269 >>> bprint(trim(t, 3, ellipsis=ellipsis))
268 +++ 270 +++
269 >>> print trim(t, 1, ellipsis=ellipsis) 271 >>> bprint(trim(t, 1, ellipsis=ellipsis))
270 + 272 +
271 >>> u = u'\u3042\u3044\u3046\u3048\u304a' # 2 x 5 = 10 columns 273 >>> u = u'\u3042\u3044\u3046\u3048\u304a' # 2 x 5 = 10 columns
272 >>> t = u.encode(pycompat.sysstr(encoding.encoding)) 274 >>> t = u.encode(pycompat.sysstr(encoding.encoding))
273 >>> print trim(t, 12, ellipsis=ellipsis) 275 >>> bprint(trim(t, 12, ellipsis=ellipsis))
274 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a 276 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a
275 >>> print trim(t, 10, ellipsis=ellipsis) 277 >>> bprint(trim(t, 10, ellipsis=ellipsis))
276 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a 278 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\xe3\x81\x8a
277 >>> print trim(t, 8, ellipsis=ellipsis) 279 >>> bprint(trim(t, 8, ellipsis=ellipsis))
278 \xe3\x81\x82\xe3\x81\x84+++ 280 \xe3\x81\x82\xe3\x81\x84+++
279 >>> print trim(t, 8, ellipsis=ellipsis, leftside=True) 281 >>> bprint(trim(t, 8, ellipsis=ellipsis, leftside=True))
280 +++\xe3\x81\x88\xe3\x81\x8a 282 +++\xe3\x81\x88\xe3\x81\x8a
281 >>> print trim(t, 5) 283 >>> bprint(trim(t, 5))
282 \xe3\x81\x82\xe3\x81\x84 284 \xe3\x81\x82\xe3\x81\x84
283 >>> print trim(t, 5, leftside=True) 285 >>> bprint(trim(t, 5, leftside=True))
284 \xe3\x81\x88\xe3\x81\x8a 286 \xe3\x81\x88\xe3\x81\x8a
285 >>> print trim(t, 4, ellipsis=ellipsis) 287 >>> bprint(trim(t, 4, ellipsis=ellipsis))
286 +++ 288 +++
287 >>> print trim(t, 4, ellipsis=ellipsis, leftside=True) 289 >>> bprint(trim(t, 4, ellipsis=ellipsis, leftside=True))
288 +++ 290 +++
289 >>> t = bin(b'112233445566778899aa') # invalid byte sequence 291 >>> t = bin(b'112233445566778899aa') # invalid byte sequence
290 >>> print trim(t, 12, ellipsis=ellipsis) 292 >>> bprint(trim(t, 12, ellipsis=ellipsis))
291 \x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa 293 \x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa
292 >>> print trim(t, 10, ellipsis=ellipsis) 294 >>> bprint(trim(t, 10, ellipsis=ellipsis))
293 \x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa 295 \x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa
294 >>> print trim(t, 8, ellipsis=ellipsis) 296 >>> bprint(trim(t, 8, ellipsis=ellipsis))
295 \x11\x22\x33\x44\x55+++ 297 \x11\x22\x33\x44\x55+++
296 >>> print trim(t, 8, ellipsis=ellipsis, leftside=True) 298 >>> bprint(trim(t, 8, ellipsis=ellipsis, leftside=True))
297 +++\x66\x77\x88\x99\xaa 299 +++\x66\x77\x88\x99\xaa
298 >>> print trim(t, 8) 300 >>> bprint(trim(t, 8))
299 \x11\x22\x33\x44\x55\x66\x77\x88 301 \x11\x22\x33\x44\x55\x66\x77\x88
300 >>> print trim(t, 8, leftside=True) 302 >>> bprint(trim(t, 8, leftside=True))
301 \x33\x44\x55\x66\x77\x88\x99\xaa 303 \x33\x44\x55\x66\x77\x88\x99\xaa
302 >>> print trim(t, 3, ellipsis=ellipsis) 304 >>> bprint(trim(t, 3, ellipsis=ellipsis))
303 +++ 305 +++
304 >>> print trim(t, 1, ellipsis=ellipsis) 306 >>> bprint(trim(t, 1, ellipsis=ellipsis))
305 + 307 +
306 """ 308 """
307 try: 309 try:
308 u = s.decode(_sysstr(encoding)) 310 u = s.decode(_sysstr(encoding))
309 except UnicodeDecodeError: 311 except UnicodeDecodeError: