def hash_from_dict(content: dict): return _.pipe( content, common.json_dumps(sort_keys=True, default=str), common.call('encode', 'utf-8'), hashlib.md5, common.call('hexdigest'), )
def image_hash(course_root: str, path: str): path = resolve_path(course_root, path) if path.exists(): return pipe( path.read_bytes(), hashlib.md5, call('hexdigest'), ) log.error(f'No image at {path}')
def get_arp_data(arp_output, regex, mac_conv): return _.pipe( arp_output.splitlines(), _.map(regex.match), _.filter(None), _.map(__.call('groupdict')), larc.parallel.thread_map( lambda d: _.merge(d, mac_conv(d['mac'])), max_workers=5, ), tuple, )
def questions(course: Course, course_root: str, path: str): return pipe( canvas.quiz.quiz_data_from_yaml(course, course_root, path), call('get', 'questions', []), )
def render(path, **kw): return pipe( path.read_text(), env.from_string, call('render', **kw), )