Source code for dawsonia.image_id

[docs] def encode(book: int, page: int, row: int, col: int, table: int) -> str: key1 = format(book, "016b") # 16 bits key2 = format(page, "010b") # 10 bits key3 = format(row, "06b") # 6 bits key4 = format(col, "06b") # 6 bits key5 = format(table, "04b") # 4 bits key_name = key1 + key2 + key3 + key4 + key5 return str(int(key_name, 2))
[docs] def decode(key: int, printer: bool = True) -> tuple[int, ...]: key_binary = format(key, "b") length = 16 + 10 + 6 + 6 + 4 b = "0" * (length - len(key_binary)) + key_binary book = int(b[0:16], 2) page = int(b[16:26], 2) row = int(b[26:32], 2) col = int(b[32:38], 2) table = int(b[38:42], 2) if printer: print(f"Book={book}, Page={page}, Row={row}, Col={col}, Table={table}") return (book, page, row, col, table)