summaryrefslogtreecommitdiff
path: root/sys/lib/python/mercurial/pure/base85.py
diff options
context:
space:
mode:
authorOri Bernstein <ori@eigenstate.org>2021-06-14 00:00:37 +0000
committerOri Bernstein <ori@eigenstate.org>2021-06-14 00:00:37 +0000
commita73a964e51247ed169d322c725a3a18859f109a3 (patch)
tree3f752d117274d444bda44e85609aeac1acf313f3 /sys/lib/python/mercurial/pure/base85.py
parente64efe273fcb921a61bf27d33b230c4e64fcd425 (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.py74
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