Mercurial > public > mercurial-scm > hg-stable
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: |