summary refs log tree commit diff stats
path: root/pycompab.py
diff options
context:
space:
mode:
Diffstat (limited to 'pycompab.py')
-rwxr-xr-xpycompab.py109
1 files changed, 0 insertions, 109 deletions
diff --git a/pycompab.py b/pycompab.py
deleted file mode 100755
index 17422f20d..000000000
--- a/pycompab.py
+++ /dev/null
@@ -1,109 +0,0 @@
-""" Python compability library

-    

-    With careful and painful coding, compability from Python 1.5.2 up to 3.0

-    is achieved. Don't try this at home.

-

-    Copyright 2009, Andreas Rumpf

-"""

-

-import sys

-

-python3 = sys.version[0] >= "3"

-python26 = sys.version[0] == "2" and sys.version[2] >= "6"

-

-true, false = 0==0, 0==1

-

-if python3:

-  sys.exit("This script does not yet work with Python 3.0")

-

-try:

-  from cStringIO import StringIO

-except ImportError:

-  from io import StringIO

-

-if python3:

-  def replace(s, a, b): return s.replace(a, b)

-  def lower(s): return s.lower()

-  def join(a, s=""): return s.join(a)

-  def find(s, a): return s.find(a)

-  def split(s, a=None): return s.split(a)

-  def strip(s): return s.strip()

-

-  def has_key(dic, key): return key in dic

-else:

-  from string import replace, lower, join, find, split, strip

-

-  def has_key(dic, key): return dic.has_key(key)

-

-if not python3 and not python26:

-  import md5

-  def newMD5(): return md5.new()

-  def MD5update(obj, x):

-    return obj.update(x)

-else:

-  import hashlib

-  def newMD5(): return hashlib.md5()

-  def MD5update(obj, x):

-    if python26:

-      return obj.update(x)

-    else:

-      return obj.update(bytes(x, "utf-8"))

-

-def mydigest(hasher):

-  result = ""

-  for c in hasher.digest():

-    if python3:

-      x = hex(c)[2:]

-    else:

-      x = hex(ord(c))[2:]

-    if len(x) == 1: x = "0" + x

-    result = result + x

-  return result

-

-def Subs(frmt, *args, **substitution):

-  DIGITS = "0123456789"

-  LETTERS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

-  chars = DIGITS+LETTERS+"_"

-  d = substitution

-  a = args

-  result = []

-  i = 0

-  num = 0

-  L = len(frmt)

-  while i < L:

-    if frmt[i] == '$':

-      i = i+1

-      if frmt[i] == '#':

-        result.append(a[num])

-        num = num+1

-        i = i+1

-      elif frmt[i] == '$':

-        result.append('$')

-        i = i+1

-      elif frmt[i] == '{':

-        i = i+1

-        j = i

-        while frmt[i] != '}': i = i+1

-        i = i+1 # skip }

-        x = frmt[j:i-1]

-        if x[0] in DIGITS:

-          result.append(str(a[int(x)-1]))

-        else:

-          result.append(str(d[x]))

-      elif frmt[i] in chars:

-        j = i

-        i = i+1

-        while i < len(frmt) and frmt[i] in chars: i = i + 1

-        x = frmt[j:i]

-        if x[0] in DIGITS:

-          num = int(x)

-          result.append(str(a[num-1]))

-        else:

-          result.append(str(d[x]))

-      else:

-        assert(false)

-    else:

-      result.append(frmt[i])

-      i = i+1

-  return join(result, "")

-