Source code for kademlia.utils

"""
General catchall for functions that don't make sense as methods.
"""

import asyncio
import hashlib
import operator


[docs] async def gather_dict(dic): cors = list(dic.values()) results = await asyncio.gather(*cors) return dict(zip(dic.keys(), results))
[docs] def digest(string): if not isinstance(string, bytes): string = str(string).encode("utf8") return hashlib.sha1(string).digest()
[docs] def shared_prefix(args): """ Find the shared prefix between the strings. For instance: sharedPrefix(['blahblah', 'blahwhat']) returns 'blah'. """ i = 0 while i < min(map(len, args)): if len(set(map(operator.itemgetter(i), args))) != 1: break i += 1 return args[0][:i]
[docs] def bytes_to_bit_string(bites): bits = [bin(bite)[2:].rjust(8, "0") for bite in bites] return "".join(bits)