def fill_persondata(): db = MySQLdb.connect(host=config.DB_HOST, user=config.DB_USER, passwd=config.DB_PASSWORD, db=config.DB_NAME) cursor = db.cursor() # Zero client, anon cursor.execute( """INSERT INTO PersonData (first_name, last_name, birth_date, email, mobile, gender) VALUES (%s, %s, %s, %s, %s, %s);""", [ 'anon', 'anon', Datetime().date(start=1950, end=2001), None, None, None ]) for _ in range(config.N_PERSONS): p = Person('ru') cursor.execute( """INSERT INTO PersonData (first_name, last_name, birth_date, email, mobile, gender) VALUES (%s, %s, %s, %s, %s, %s);""", [ p.name(), p.surname(), Datetime().date(start=1950, end=2001), p.email(), p.telephone('#' * 11), 'M' if p.gender(iso5218=True) == 1 else 'F' ]) db.commit() cursor.close() db.close()
def generate_menu_items(amount): date = Datetime() food = Food() business = Business() text = Text() code = Code() num = Numbers() model = "core.menuitem" items = [] count = 1 for _ in range(amount): fields = {"created": date.datetime(), "modified": date.datetime(), "title": food.dish()} fields["slug"] = f'{fields["title"].replace(" ", "-")}-{code.issn()}' fields["content"] = text.quote() fields["price"] = num.between(1, 100) fields["category"] = None fields["draft"] = False single = { "model": model, "pk": count, "fields": fields } count += 1 items.append(single) with open("menu.json", "w") as f: json.dump(items, f, cls=DjangoJSONEncoder)
def seed(): # Data m_datetime = Datetime() person = Person() dates_range = dict(start=(datetime.utcnow() - timedelta(days=366)).year, end=datetime.utcnow().year) _role = models.Role.query.filter_by(name="Shopper").first() accounts = models.Account.query.filter_by(role=_role).all() for account in accounts: # only make orders for accounts with at least one campaign if not account.campaign: continue # Generate and save orders for _ in range(randint(0, 4)): order = models.Order( account=account, campaign=account.campaign, created_at=m_datetime.datetime(start=dates_range["start"], end=dates_range["end"]), checkout_fields={ "First Name": person.name(), "Last Name": person.last_name() }, ) db.session.add(order) db.session.commit()
def generate_news_items(amount): date = Datetime() text = Text() num = Numbers() code = Code() model = "core.newsitem" items = [] count = 1 for _ in range(amount): fields = {} fields["created"] = date.datetime() fields["modified"] = date.datetime() fields["title"] = text.title() fields["slug"] = slugify(f"{fields['title']}-{code.ean()}") fields["content"] = text.text(6) fields["draft"] = False fields["category"] = random.randint(1, 3) single = { "model": model, "pk": count, "fields": fields } count += 1 items.append(single) with open("news.json", "w") as f: json.dump(items, f, cls=DjangoJSONEncoder)
def __init__(self): self.person = Person(locale='zh') self.address = Address(locale='zh') self.code = Code() self.business = Business(locale='zh') self.text = Text(locale='zh') self.datetime = Datetime(locale='zh') self.file = File() self.path = Path() self.internet = Internet() self.structure = Structure()
def _generate_user_data(locale='ru'): person = Person(locale) date = Datetime(locale) gender = get_random_item(Gender) return { 'password': _generate_password(), 'first_name': person.surname(gender=gender), 'last_name': person.name(gender=gender), 'email': person.email(), 'date_joined': date.datetime(start=2014, end=2015).replace(tzinfo=utc), }
def flights(): return [ models.Flight.objects.create( name=f"Flight_{i}", number=Random().custom_code(mask="@@ ####"), departure=Address().city(), destination=Address().city(), scheduled_at=Datetime().datetime(), expected_at=Datetime().datetime(), duration=Numbers().integer_number(start=1, end=100), fare=Numbers().float_number(start=1, end=10000, precision=2), ) for i in range(10) ]
def datetime_el(locale): """ :param locale: :return: """ return Datetime(locale)
def run(): person = Person() text = Text() internet = Internet() dateTime = Datetime() for i in range(100): User.objects.create(password="******", username=person.username(), first_name=person.name(), last_name=person.last_name(), email=person.email()) users = User.objects.all() for i in range(100): Post.objects.create(author=choice(users), link=internet.home_page(), title=text.title(), description=text.text()) posts = Post.objects.all() for i in range(100): Comment.objects.create(author=choice(users), post=choice(posts), description=text.text())
class CSVData: def __init__(self): self.person = Person(locale='zh') self.address = Address(locale='zh') self.code = Code() self.business = Business(locale='zh') self.text = Text(locale='zh') self.datetime = Datetime(locale='zh') self.file = File() self.path = Path() self.internet = Internet() self.structure = Structure() def mime_data(self): # col1 = self.person.full_name() col1 = self.person.last_name() + self.person.first_name() col2 = self.address.city() col3 = self.address.street_name() col4 = self.address.calling_code() col5 = self.address.longitude() col6 = self.code.imei() col7 = self.business.company() col8 = self.text.hex_color() col9 = self.datetime.formatted_datetime() col10 = self.datetime.time() col11 = self.file.file_name() col12 = self.path.dev_dir() col13 = self.internet.ip_v4() col14 = self.internet.ip_v6() col15 = self.internet.home_page() col16 = self.internet.stock_image() col17 = self.internet.user_agent() col18 = self.internet.mac_address() col19 = self.person.email() col20 = self.person.telephone() col21 = self.code.issn() col22 = self.person.social_media_profile() col23 = self.structure.html() line = '\"{0}\", \"{1}\", \"{2}\", \"{3}\", {4}, \"{5}\", \"{6}\" , \"{7}\" , \"{8}\" , \"{9}\" , \"{10}\" , \"{11}\" , \"{12}\" , \"{13}\" , \"{14}\" , \"{15}\" , \"{16}\" , \"{17}\" , \"{18}\" , \"{19}\" , \"{20}\" , \"{21}\" , \"{22}\"\n'.format( col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15, col16, col17, col18, col19, col20, col21, col22, col23) # line = "mime data" # print(line) return line
def generate_fake_persons(size): """ This function generates a list of dummy persons (email, username, fullname, DOB, address and ssn) """ person = Personal('en') datetime = Datetime() address = Address('en') usa_provider = USASpecProvider() fake_persons = [] for _ in range(0, size): fake_person = (person.email(), person.username(), \ person.full_name(), datetime.date(1970, 2000), \ address.address() + " - " + address.state(), usa_provider.ssn()) fake_persons.append(fake_person) return fake_persons
def _generate_questionnaire_data(locale='ru') -> dict: person = Person(locale) rus_spec = RussiaSpecProvider() datetime = Datetime(locale) g = get_random_item(Gender) created = datetime.datetime(start=2015, end=2018) return { 'id': uuid.uuid4(), 'created': created.replace(tzinfo=utc), 'updated': created.replace(tzinfo=utc), 'surname': person.surname(gender=g), 'first_name': person.name(gender=g), 'patronymic': rus_spec.patronymic(gender=g), 'birth_date': datetime.datetime(start=1960, end=1998).date(), 'phone_num': person.telephone(), 'pass_ser': rus_spec.passport_series(), 'pass_num': rus_spec.passport_number(), 'score': randint(0, 2000), }
def _generate_offer_data(locale='ru') -> dict: text = Text(locale) datetime = Datetime(locale) typ_choice = [Offer.CONSUMER, Offer.MORTGAGE, Offer.AUTO, Offer.CSMB] created = datetime.datetime(start=2015, end=2017) _score = randint(0, 1000) def rand_dt(): _dt = datetime.datetime(start=2017, end=2018) return _dt.replace(tzinfo=utc) return { 'id': uuid.uuid4(), 'created': created.replace(tzinfo=utc), 'updated': created.replace(tzinfo=utc), 'rotation_start': rand_dt(), 'rotation_finish': rand_dt(), 'name': ' '.join(text.words(quantity=10)), 'typ': choice(typ_choice), 'min_score': _score, 'max_score': _score + randint(300, 1000), }
def create_example_stuff(user): example_kit = Kit.objects.create(name='Example kit', user=user) without_kit = Kit.objects.get(name='Without kit', user=user) for kit in (example_kit, without_kit): for medication in EXAMPLE_STUFF[kit.name]: Medication.objects.create( name=medication.name, description=medication.description, expiration_date=Datetime().date(start=2015, end=2025), # TODO Add 'keep_in_cold' kit=kit, )
def setUp(self): """Generate some fake data.""" self.app = Flask('test') util.init_app(self.app) self.app.config['CLASSIC_DATABASE_URI'] = 'sqlite:///test.db' self.app.config['CLASSIC_SESSION_HASH'] = 'foohash' with self.app.app_context(): util.create_all() with util.transaction() as session: person = Person('en') net = Internet('en') ip_addr = net.ip_v4() email = person.email() approved = 1 deleted = 0 banned = 0 first_name = person.name() last_name = person.surname() suffix_name = person.title() joined_date = util.epoch( Datetime('en').datetime().replace(tzinfo=EASTERN)) db_user = models.DBUser( first_name=first_name, last_name=last_name, suffix_name=suffix_name, share_first_name=1, share_last_name=1, email=email, flag_approved=approved, flag_deleted=deleted, flag_banned=banned, flag_edit_users=0, flag_edit_system=0, flag_email_verified=1, share_email=8, email_bouncing=0, policy_class=2, # Public user. TODO: consider admin. joined_date=joined_date, joined_ip_num=ip_addr, joined_remote_host=ip_addr) session.add(db_user) self.user = domain.User(user_id=str(db_user.user_id), username='******', email=db_user.email, name=domain.UserFullName( forename=db_user.first_name, surname=db_user.last_name, suffix=db_user.suffix_name))
def generate_random_data(): p = Person() a = Address() return { "name": p.full_name(), "email": p.email(), "nationality": p.nationality(), "occupation": p.occupation(), "password": p.password(), "phone": p.telephone(), "address": a.address(), "city": a.city(), "street_no": a.street_number(), "created": Datetime().date().isoformat(), }
class Transaction(Node): _datetime = Datetime() _business = Business() def __init__(self, sourceId: int, targetId: int): self.__type = "Transaction" self.source = sourceId self.target = targetId self.date = self._datetime.date(start=2000, end=2020) self.time = self._datetime.time() self.amount = random.randint(1, 10000) if random.random() < 0.8: self.currency = self._business.currency_iso_code() else: self.currency = None
def bootstrap(count): from mimesis import Business, Datetime for _ in range(count): title = str(_) city = choice(CITIES) category = choice(CATEGORIES) company = Business('en').company() date_published = datetime.strptime( Datetime('uk').date(start=2013, end=2017, fmt=''), "%d.%m.%Y") vacancy = { "title": title, "city": city, "company": company, "category": category, "date_published": date_published } db.vacancy_collection.insert(vacancy)
def fill_mercants(): db = MySQLdb.connect(host=config.DB_HOST, user=config.DB_USER, passwd=config.DB_PASSWORD, db=config.DB_NAME) cursor = db.cursor() for i in config.MERCHANT_IDS: cursor.execute( """ INSERT INTO Merchant (info_id, added_at, access_level) VALUES (%s, %s, %s); """, [i, Datetime().datetime(start=2018, end=2018), r.randint(0, 3)]) db.commit() cursor.close() db.close()
def generate_medicines(kit_name: str, quantity: int = 15) -> None: kit = Kit.objects.filter(name=kit_name).first() if not kit: user = get_user_model().objects.create(username=Person().username()) kit = Kit(name=kit_name, user=user) kit.save() print(f'Creating {quantity} fake medicines') for _ in range(quantity): Medication.objects.create( name=Food().fruit(), description=Text().title(), expiration_date=Datetime().date(start=2015, end=2025), kit=kit, ) return None
def generate_drugs(kit_name: str, quantity: int = 15) -> None: kit = Kit.objects.filter(name=kit_name).first() if not kit: kit = Kit(name=kit_name) kit.save() for _ in range(quantity): drug = Drug( name=Food().fruit(), description=Text().title(), expiration_date=Datetime().date(start=2015, end=2025), kit=kit, ) drug.save() print(f'Created {quantity} fake drugs') return None
def test_invalidated_autoendorsements(self): """The user has two autoendorsements that have been invalidated.""" with self.app.app_context(): with util.transaction() as session: issued_when = util.epoch( Datetime('en').datetime().replace(tzinfo=EASTERN)) session.add( models.DBEndorsement(endorsee_id=self.user.user_id, archive='astro-ph', subject_class='CO', flag_valid=0, endorsement_type='auto', point_value=10, issued_when=issued_when)) session.add( models.DBEndorsement(endorsee_id=self.user.user_id, archive='astro-ph', subject_class='CO', flag_valid=0, endorsement_type='auto', point_value=10, issued_when=issued_when)) session.add( models.DBEndorsement(endorsee_id=self.user.user_id, archive='astro-ph', subject_class='CO', flag_valid=1, endorsement_type='auto', point_value=10, issued_when=issued_when)) session.add( models.DBEndorsement(endorsee_id=self.user.user_id, archive='astro-ph', subject_class='CO', flag_valid=1, endorsement_type='user', point_value=10, issued_when=issued_when)) result = endorsements.invalidated_autoendorsements(self.user) self.assertEqual(len(result), 2, "Two revoked endorsements are loaded")
class Transaction(Node): _datetime = Datetime() _numbers = Numbers() _text = Text() _business = Business() def __init__(self, sourceId, targetId): self.__type = 'Transaction' self.id = uuid4() self.source = sourceId self.target = targetId self.date = self._datetime.date(start=2015, end=2019) self.time = self._datetime.time() if random() < 0.05: self.amount = self._numbers.between(100000, 1000000) self.amount = npr.exponential(10) if random() < 0.15: self.currency = self._business.currency_iso_code() else: self.currency = None
def fill_orders(): db = MySQLdb.connect(host=config.DB_HOST, user=config.DB_USER, passwd=config.DB_PASSWORD, db=config.DB_NAME) cursor = db.cursor() for i in range(config.N_ORDERS): user_id = r.choice(range(1, len(config.USER_IDS))) cursor.execute( """ INSERT INTO `Order` (merchant_id, completed_at, user_id, total_sum) VALUES (%s, %s, %s, %s); """, [ r.choice(config.MERCHANT_IDS[:-1]), Datetime().datetime(start=2018, end=2018), user_id, r.randint(200, 600) ]) db.commit() cursor.close() db.close()
def users(count: int = 500) -> List[models.User]: """Generate a bunch of random users.""" _users = [] for i in range(count): locale = _get_locale() person = Person(locale) net = Internet(locale) ip_addr = net.ip_v4() _users.append( models.User( first_name=person.name(), last_name=person.surname(), suffix_name=person.title(), share_first_name=1, share_last_name=1, email=person.email(), share_email=8, email_bouncing=0, policy_class=2, # Public user. joined_date=_epoch(Datetime(locale).datetime()), joined_ip_num=ip_addr, joined_remote_host=ip_addr)) return _users
from models import * from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker import random from mimesis import Person from mimesis import Address from mimesis import Datetime from mimesis.enums import Gender dateTime = Datetime('ru') address = Address('ru') person = Person('ru') count_org = 1 count_bran = 3 count_dep = 10 count_peop = 150 positions = [ 'position0', 'position1', 'position2', 'position3', 'position4', 'position5' ] gender = [Gender.MALE, Gender.FEMALE] def gen_number(): result = str(random.randrange(100, 999)) + '-' + str( random.randrange(10, 99)) + '-' + str(random.randrange(10, 99)) return result
# todo: need to add hook with preset data if # in rules.json exists generators based on data from 'data' folder data_folder = os.path.join(os.path.dirname(os.path.abspath(__file__)), "data") class DataObject: pass languages = ["zh", "ru", "en", "es", "ar", "fr"] fake = Generic() text = Text() person = Person() date = Datetime() address = Address() def current_time(): tz = pytz.timezone(config.cfg.timezone) return datetime.datetime.now(tz) last_time = None countries = DataObject() def countries_init(): """ method to read countries and load data for generator
def d2(self, seed): return Datetime(seed=seed)
def setUp(self): """Generate some fake data.""" self.app = Flask('test') util.init_app(self.app) self.app.config['CLASSIC_DATABASE_URI'] = 'sqlite:///test.db' self.app.config['CLASSIC_SESSION_HASH'] = 'foohash' with self.app.app_context(): util.create_all() with util.transaction() as session: person = Person('en') net = Internet('en') ip_addr = net.ip_v4() email = "*****@*****.**" approved = 1 deleted = 0 banned = 0 first_name = person.name() last_name = person.surname() suffix_name = person.title() joined_date = util.epoch( Datetime('en').datetime().replace(tzinfo=EASTERN)) db_user = models.DBUser( first_name=first_name, last_name=last_name, suffix_name=suffix_name, share_first_name=1, share_last_name=1, email=email, flag_approved=approved, flag_deleted=deleted, flag_banned=banned, flag_edit_users=0, flag_edit_system=0, flag_email_verified=1, share_email=8, email_bouncing=0, policy_class=2, # Public user. TODO: consider admin. joined_date=joined_date, joined_ip_num=ip_addr, joined_remote_host=ip_addr) session.add(db_user) self.user = domain.User(user_id=str(db_user.user_id), username='******', email=db_user.email, name=domain.UserFullName( forename=db_user.first_name, surname=db_user.last_name, suffix=db_user.suffix_name)) ok_patterns = ['%w3.org', '%aaas.org', '%agu.org', '%ams.org'] bad_patterns = ['%.com', '%.net', '%.biz.%'] with util.transaction() as session: for pattern in ok_patterns: session.add(models.DBEmailWhitelist(pattern=str(pattern))) for pattern in bad_patterns: session.add(models.DBEmailBlacklist(pattern=str(pattern))) session.add( models.DBEndorsementDomain( endorsement_domain='test_domain', endorse_all='n', mods_endorse_all='n', endorse_email='y', papers_to_endorse=3)) for category, definition in taxonomy.CATEGORIES_ACTIVE.items(): if '.' in category: archive, subject_class = category.split('.', 1) else: archive, subject_class = category, '' session.add( models.DBCategory(archive=archive, subject_class=subject_class, definitive=1, active=1, endorsement_domain='test_domain'))
from mimesis import Person from mimesis import Address from mimesis import Datetime from mimesis import random from mimesis.enums import Gender import random person = Person('ru') address = Address('ru') datetime = Datetime() file = open("clients.txt", 'w') list_rating = [] list_cities = ['Истра', 'Правдинск', 'Соликамск', 'Железнодорожный', 'Углич', 'Белёв', 'Тайга', 'Красноармейск', 'Володарск', 'Гаджиево', 'Яровое', 'Багратионовск', 'Среднеуральск', 'Невельск', 'Питкяранта', 'Темников', 'Калач-на-Дону', 'Сергиев Посад', 'Бугуруслан', 'Калининград', 'Лесной', 'Ишимбай', 'Жирновск', 'Нефтекамск', 'Серпухов', 'Балахна', 'Железногорск', 'Тюкалинск', 'Воронеж', 'Черемхово', 'Каменск-Уральский', 'Эртиль', 'Алагир', 'Новокубанск', 'Избербаш', 'Гуково', 'Сокол', 'Ельня', 'Баймак', 'Ступино', 'Высоцк', 'Коломна', 'Сосновоборск', 'Суздаль', 'Сковородино', 'Оханск', 'Малгобек', 'Спасск-Дальний', 'Каменск-Шахтинский', 'Юхнов'] list_date = [] list_phones = [] list_email = [] list_seniority = [] list_shops = [] for i in range(10000): list_date.append(datetime.date(start = 1960, end = 2005)) list_phones.append(person.telephone()) list_email.append(person.email()) list_shops.append(random.randint(1, 1000)) for i in range(10000): list_seniority.append(random.randint(0, 10)) for i in range(1, 10001): file.write("%d|%s|%s|г.%s, %s|%s|%s\n" %(i, person.full_name(), list_date[i-1], random.choice(list_cities), address.address(),