Esempio n. 1
0
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'),
    )
Esempio n. 2
0
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}')
Esempio n. 3
0
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,
    )
Esempio n. 4
0
def questions(course: Course, course_root: str, path: str):
    return pipe(
        canvas.quiz.quiz_data_from_yaml(course, course_root, path),
        call('get', 'questions', []),
    )
Esempio n. 5
0
 def render(path, **kw):
     return pipe(
         path.read_text(),
         env.from_string,
         call('render', **kw),
     )