util.py 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import random, time
  2. from datetime import UTC, datetime
  3. def random_blob_idx():
  4. return "%030x" % random.randrange(16**30)
  5. def datetime_to_unix(dt):
  6. return int(time.mktime(dt.timetuple()))
  7. def now():
  8. return datetime_to_unix(datetime.now(tz=UTC))
  9. def month_to_unix(month=None):
  10. month_year = month if month is not None else datetime.utcnow().strftime("%m%y")
  11. return datetime.strptime(month_year,"%m%y").timestamp()
  12. def unix_to_datetime(timestamp):
  13. return datetime.utcfromtimestamp(int(timestamp))
  14. task_template = {
  15. "workspace": str,
  16. "title": str,
  17. "tags": list,
  18. "desc": str,
  19. "owner": str,
  20. "assign": list,
  21. "project": list,
  22. "due": int,
  23. "rank": float,
  24. "created_at": int,
  25. "state": str,
  26. "events": list,
  27. "comments": list,
  28. }
  29. def _enforce_task_format(task):
  30. for attr, val in task.items():
  31. val_type = task_template[attr]
  32. if val is None:
  33. assert val_type == list or attr not in ["created"]
  34. continue
  35. assert isinstance(val, val_type)