[PATCH 3 of 3] py3kcompat: drop unused module

Augie Fackler raf at durin42.com
Fri Dec 16 13:23:52 EST 2016


On Thu, Dec 15, 2016 at 12:03:17AM +0900, Yuya Nishihara wrote:
> # HG changeset patch
> # User Yuya Nishihara <yuya at tcha.org>
> # Date 1476604901 -32400
> #      Sun Oct 16 17:01:41 2016 +0900
> # Node ID 89287fe8826fbae16ec72ae970b3963914f0c58e
> # Parent  077aff1707305042021381e812886416fc0d1690
> py3kcompat: drop unused module

Queued these, thanks.

>
> Perhaps this was a predated attempt of Python 3 porting. Python 3.5 supports
> %-formatting of bytes.
>
> diff --git a/mercurial/py3kcompat.py b/mercurial/py3kcompat.py
> deleted file mode 100644
> --- a/mercurial/py3kcompat.py
> +++ /dev/null
> @@ -1,68 +0,0 @@
> -# py3kcompat.py - compatibility definitions for running hg in py3k
> -#
> -# Copyright 2010 Renato Cunha <renatoc at gmail.com>
> -#
> -# This software may be used and distributed according to the terms of the
> -# GNU General Public License version 2 or any later version.
> -
> -from __future__ import absolute_import
> -
> -import builtins
> -import numbers
> -
> -Number = numbers.Number
> -
> -def bytesformatter(format, args):
> -    '''Custom implementation of a formatter for bytestrings.
> -
> -    This function currently relies on the string formatter to do the
> -    formatting and always returns bytes objects.
> -
> -    >>> bytesformatter(20, 10)
> -    0
> -    >>> bytesformatter('unicode %s, %s!', ('string', 'foo'))
> -    b'unicode string, foo!'
> -    >>> bytesformatter(b'test %s', 'me')
> -    b'test me'
> -    >>> bytesformatter('test %s', 'me')
> -    b'test me'
> -    >>> bytesformatter(b'test %s', b'me')
> -    b'test me'
> -    >>> bytesformatter('test %s', b'me')
> -    b'test me'
> -    >>> bytesformatter('test %d: %s', (1, b'result'))
> -    b'test 1: result'
> -    '''
> -    # The current implementation just converts from bytes to unicode, do
> -    # what's needed and then convert the results back to bytes.
> -    # Another alternative is to use the Python C API implementation.
> -    if isinstance(format, Number):
> -        # If the fixer erroneously passes a number remainder operation to
> -        # bytesformatter, we just return the correct operation
> -        return format % args
> -    if isinstance(format, bytes):
> -        format = format.decode('utf-8', 'surrogateescape')
> -    if isinstance(args, bytes):
> -        args = args.decode('utf-8', 'surrogateescape')
> -    if isinstance(args, tuple):
> -        newargs = []
> -        for arg in args:
> -            if isinstance(arg, bytes):
> -                arg = arg.decode('utf-8', 'surrogateescape')
> -            newargs.append(arg)
> -        args = tuple(newargs)
> -    ret = format % args
> -    return ret.encode('utf-8', 'surrogateescape')
> -builtins.bytesformatter = bytesformatter
> -
> -origord = builtins.ord
> -def fakeord(char):
> -    if isinstance(char, int):
> -        return char
> -    return origord(char)
> -builtins.ord = fakeord
> -
> -if __name__ == '__main__':
> -    import doctest
> -    doctest.testmod()
> -
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list