# HG changeset patch # User Yuya Nishihara # Date 1476604901 -32400 # Node ID 07025bd744a09dd5622e16ccef11966fda7b86f2 # Parent 65835b850a720939556ae527c24a2915f1c6086b py3kcompat: drop unused module Perhaps this was a predated attempt of Python 3 porting. Python 3.5 supports %-formatting of bytes. diff -r 65835b850a72 -r 07025bd744a0 mercurial/py3kcompat.py --- a/mercurial/py3kcompat.py Sun Oct 16 16:59:50 2016 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -# py3kcompat.py - compatibility definitions for running hg in py3k -# -# Copyright 2010 Renato Cunha -# -# 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() -