diff options
author | Ori Bernstein <ori@eigenstate.org> | 2021-06-14 00:00:37 +0000 |
---|---|---|
committer | Ori Bernstein <ori@eigenstate.org> | 2021-06-14 00:00:37 +0000 |
commit | a73a964e51247ed169d322c725a3a18859f109a3 (patch) | |
tree | 3f752d117274d444bda44e85609aeac1acf313f3 /sys/lib/python/mercurial/pure/base85.py | |
parent | e64efe273fcb921a61bf27d33b230c4e64fcd425 (diff) |
python, hg: tow outside the environment.
they've served us well, and can ride off into the sunset.
Diffstat (limited to 'sys/lib/python/mercurial/pure/base85.py')
-rw-r--r-- | sys/lib/python/mercurial/pure/base85.py | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/sys/lib/python/mercurial/pure/base85.py b/sys/lib/python/mercurial/pure/base85.py deleted file mode 100644 index 88cb1ce8c..000000000 --- a/sys/lib/python/mercurial/pure/base85.py +++ /dev/null @@ -1,74 +0,0 @@ -# base85.py: pure python base85 codec -# -# Copyright (C) 2009 Brendan Cully <brendan@kublai.com> -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2, incorporated herein by reference. - -import struct - -_b85chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" \ - "abcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~" -_b85chars2 = [(a + b) for a in _b85chars for b in _b85chars] -_b85dec = {} - -def _mkb85dec(): - for i, c in enumerate(_b85chars): - _b85dec[c] = i - -def b85encode(text, pad=False): - """encode text in base85 format""" - l = len(text) - r = l % 4 - if r: - text += '\0' * (4 - r) - longs = len(text) >> 2 - words = struct.unpack('>%dL' % (longs), text) - - out = ''.join(_b85chars[(word // 52200625) % 85] + - _b85chars2[(word // 7225) % 7225] + - _b85chars2[word % 7225] - for word in words) - - if pad: - return out - - # Trim padding - olen = l % 4 - if olen: - olen += 1 - olen += l // 4 * 5 - return out[:olen] - -def b85decode(text): - """decode base85-encoded text""" - if not _b85dec: - _mkb85dec() - - l = len(text) - out = [] - for i in range(0, len(text), 5): - chunk = text[i:i+5] - acc = 0 - for j, c in enumerate(chunk): - try: - acc = acc * 85 + _b85dec[c] - except KeyError: - raise TypeError('Bad base85 character at byte %d' % (i + j)) - if acc > 4294967295: - raise OverflowError('Base85 overflow in hunk starting at byte %d' % i) - out.append(acc) - - # Pad final chunk if necessary - cl = l % 5 - if cl: - acc *= 85 ** (5 - cl) - if cl > 1: - acc += 0xffffff >> (cl - 2) * 8 - out[-1] = acc - - out = struct.pack('>%dL' % (len(out)), *out) - if cl: - out = out[:-(5 - cl)] - - return out |