Patchwork [3,of,3] py3kcompat: drop unused module

login
register
mail settings
Submitter Yuya Nishihara
Date Dec. 14, 2016, 3:03 p.m.
Message ID <89287fe8826fbae16ec7.1481727797@mimosa>
Download mbox | patch
Permalink /patch/17909/
State Accepted
Headers show

Comments

Yuya Nishihara - Dec. 14, 2016, 3:03 p.m.
# HG changeset patch
# User Yuya Nishihara <yuya@tcha.org>
# Date 1476604901 -32400
#      Sun Oct 16 17:01:41 2016 +0900
# Node ID 89287fe8826fbae16ec72ae970b3963914f0c58e
# Parent  077aff1707305042021381e812886416fc0d1690
py3kcompat: drop unused module

Perhaps this was a predated attempt of Python 3 porting. Python 3.5 supports
%-formatting of bytes.
Augie Fackler - Dec. 16, 2016, 6:23 p.m.
On Thu, Dec 15, 2016 at 12:03:17AM +0900, Yuya Nishihara wrote:
> # HG changeset patch
> # User Yuya Nishihara <yuya@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@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@mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Patch

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@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()
-