Source code for src.Misc
# Misc functions:
import csv
from csv import reader
from src.str_util import *
from src.Misc import *
import math
import sys
import re
import os
[docs]def settings(s):
t = {}
for k, v in re.findall('\n [\s]+[-][^\s]+[\s]+[-][-]([^\s]+)[^\n]+= ([^\s]+)', s):
t[k] = coerce(v)
return t
[docs]def cli(options):
args = sys.argv
for k, v in options.items():
v = str(v)
for i in range(1, len(args)):
if args[i] == '-' + k[0:1] or args[i] == '--' + k:
if v == "False":
v = "true"
elif v == "True":
v = "false"
else:
v = args[i + 1]
options[k] = coerce(v)
return options
global Seed
[docs]def rand(lo, hi):
Seed = 93716211
lo = lo or 0
hi = hi or 1
Seed = (16807 * Seed) % 2147483647
return lo + (hi - lo) * Seed / 2147483647
[docs]def rint(lo, hi):
return math.floor(0.5 + rand(lo, hi))
[docs]def rnd(n, nPlaces):
x = nPlaces or 3
mult = 10**x
return math.floor(n * mult + 0.5) / mult
[docs]def push(t, x):
t[1+len(t)] = x
return x
[docs]def CSV(fname, fun):
sep = "([^" + "\," + "]+"
with open(fname) as file_obj:
reader_obj = reader(file_obj)
for row in reader_obj:
t = {}
for element in row:
t[str(1 + len(t))] = coerce(element)
fun(t)