make_base64_decode_table.py 509 B

12345678910111213141516171819
  1. """
  2. Generate the BASE64_DECODE_TABLE constant. See its doc-comment.
  3. """
  4. import string
  5. # https://tools.ietf.org/html/rfc4648#section-4
  6. alphabet = string.ascii_uppercase + string.ascii_lowercase + string.digits + "+/"
  7. assert len(alphabet) == 64
  8. reverse_table = [-1] * 256
  9. for i, symbol in enumerate(alphabet):
  10. reverse_table[ord(symbol)] = i
  11. print("[")
  12. per_line = 16
  13. for line in range(0, 256, per_line):
  14. print(" " + "".join(" %2s," % value for value in reverse_table[line:][:per_line]))
  15. print("]")