add base62

This commit is contained in:
Damien Elmes 2011-12-05 22:06:09 +09:00
parent d52b2d4801
commit 14f7c366d0

View file

@ -191,16 +191,20 @@ def maxID(db):
"select max(id) from %s" % tbl))
return now + 1
def base91(num):
# used in ankiweb
def base62(num, extra=""):
s = string
# all printable characters minus quotes, backslash and separators
table = s.letters + s.digits + "!#$%&()*+,-./:;<=>?@[]^_`{|}~"
table = s.letters + s.digits + extra
buf = ""
while num:
num, i = divmod(num, len(table))
buf = table[i] + buf
return buf
def base91(num):
# all printable characters minus quotes, backslash and separators
return base62(num, "!#$%&()*+,-./:;<=>?@[]^_`{|}~")
def guid64():
"Return a base91-encoded 64bit random number."
return base91(random.randint(0, 2**64-1))