util.py 691 B

123456789101112131415161718192021222324252627
  1. import csv
  2. import numpy
  3. debug = True
  4. chars = [str(d) for d in range(1, 10)]
  5. p = [1. for _ in chars]
  6. with open('letter_dist.csv', newline='') as csv_file:
  7. reader = csv.reader(csv_file, delimiter=',')
  8. sp = sum(p)
  9. for row in reader:
  10. chars.append(row[0])
  11. p.append(float(row[2]))
  12. p = numpy.array(p) / sum(p)
  13. def random_chars(count):
  14. return ''.join(numpy.random.choice(chars, p=p) for _ in range(count))
  15. def str2bool(v):
  16. v = str(v).strip().lower()
  17. if v in ["yes", 'y' "true", "t", "1"]:
  18. return True
  19. if v in ["no", 'n' "false", "f", "0", '', 'null', 'none']:
  20. return False
  21. raise ValueError('Can not convert `' + v + '` to bool')