utils.py 736 Bytes
Newer Older
sdtblck's avatar
sdtblck committed
1
2
3
4
5
6
7
8
9
10
11
12
import os


class ExitCodeError(Exception):
    pass


def sh(x):
    if os.system(x):
        raise ExitCodeError()


Jason Phang's avatar
gpt3  
Jason Phang committed
13
14
15
16
17
18
def simple_parse_args_string(args_string):
    """
    Parses something like
        args1=val1,arg2=val2
    Into a dictionary
    """
Jason Phang's avatar
Jason Phang committed
19
    args_string = args_string.strip()
Jason Phang's avatar
gpt3  
Jason Phang committed
20
21
22
23
    if not args_string:
        return {}
    arg_list = args_string.split(",")
    args_dict = {}
Jason Phang's avatar
Jason Phang committed
24
    for arg in arg_list:
Jason Phang's avatar
gpt3  
Jason Phang committed
25
26
27
        k, v = arg.split("=")
        args_dict[k] = v
    return args_dict
Leo Gao's avatar
Leo Gao committed
28
29
30

def join_iters(iters):
    for iter in iters:
Leo Gao's avatar
Leo Gao committed
31
        yield from iter
Leo Gao's avatar
Leo Gao committed
32
33
34
35
36
37
38
39
40
41
42


def chunks(iter, n):
    arr = []
    for x in iter:
        arr.append(x)
        if len(arr) == n:
            yield arr
            arr = []
    
    if arr: yield arr