# -*- coding: utf-8 -*- # import struct import random import socket import string import secrets string_punctuation = '!#$%&()*+,-.:;<=>?@[]^_{}~' def random_datetime(date_start, date_end): random_delta = (date_end - date_start) * random.random() return date_start + random_delta def random_ip(): return socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff))) def random_string(length, lower=True, upper=True, digit=True, special_char=False): chars = string.ascii_letters if digit: chars += string.digits while True: password = list(random.choice(chars) for i in range(length)) if upper and not any(c.upper() for c in password): continue if lower and not any(c.lower() for c in password): continue if digit and not any(c.isdigit() for c in password): continue break if special_char: spc = random.choice(string_punctuation) i = random.choice(range(len(password))) password[i] = spc password = ''.join(password) return password # def strTimeProp(start, end, prop, fmt): # time_start = time.mktime(time.strptime(start, fmt)) # time_end = time.mktime(time.strptime(end, fmt)) # ptime = time_start + prop * (time_end - time_start) # return int(ptime) # # # def randomTimestamp(start, end, fmt='%Y-%m-%d %H:%M:%S'): # return strTimeProp(start, end, random.random(), fmt) # # # def randomDate(start, end, frmt='%Y-%m-%d %H:%M:%S'): # return time.strftime(frmt, time.localtime(strTimeProp(start, end, random.random(), frmt))) # # # def randomTimestampList(start, end, n, frmt='%Y-%m-%d %H:%M:%S'): # return [randomTimestamp(start, end, frmt) for _ in range(n)] # # # def randomDateList(start, end, n, frmt='%Y-%m-%d %H:%M:%S'): # return [randomDate(start, end, frmt) for _ in range(n)]