Last active 15 hours ago

Generuje zadaną ilość osób, zwierząt i relacji (bez dodatkowych zasad - zwierzę może mieć wiele właścicieli, osoba może mieć wiele zwierząt)

GGORG revised this gist 15 hours ago. Go to revision

1 file changed, 74 insertions, 74 deletions

gen2.py

@@ -1,75 +1,75 @@
1 - from faker import Faker
2 - import random
3 - import sqlite3
4 - import numpy as np
5 -
6 - faker = Faker(locale="pl")
7 -
8 - N_OSOB = 30
9 - N_ZWIERZAT = 50
10 - N_RELACJI = 20
11 -
12 - imiona_zwierzat = {
13 - "pies": [
14 - "Burek", "Reksio", "Azor", "Max", "Luna", "Bella",
15 - "Rocky", "Tina", "Bruno", "Dżeki", "Milo", "Kora"
16 - ],
17 - "kot": [
18 - "Mruczek", "Filemon", "Kicia", "Simba", "Mila", "Leo",
19 - "Loki", "Nela", "Puszek", "Feliks", "Tosia", "Zorro"
20 - ],
21 - "papuga": [
22 - "Kiwi", "Lola", "Rio", "Mango", "Coco", "Polly",
23 - "Sky", "Bingo", "Tiki", "Ariel", "Paco", "Zazu"
24 - ],
25 - "chomik": [
26 - "Puszek", "Nugat", "Tofik", "Karmel", "Fistaszek", "Drops",
27 - "Migdał", "Bąbel", "Rufi", "Pixel", "Kokos", "Gizmo"
28 - ],
29 - "żółw": [
30 - "Leonardo", "Skorupka", "Turbo", "Shelly", "Donatello",
31 - "Rafaello", "Mirek", "Stefan", "Tuptuś", "Gucio"
32 - ]
33 - }
34 -
35 - def gen_zwierze(id):
36 - gatunek = random.choice(list(imiona_zwierzat.keys()))
37 - imie = random.choice(imiona_zwierzat[gatunek])
38 - wiek = random.randint(1, 10)
39 - czy_zyje = int(np.random.choice([1, 0], p=[0.8, 0.2]))
40 - return id, imie, wiek, gatunek, czy_zyje
41 -
42 - def gen_osobe(id):
43 - imie, nazwisko = faker.unique.first_name(), faker.unique.last_name()
44 - wiek = random.randint(1, 100)
45 - plec = random.choice(['mężczyzna', 'kobieta'])
46 - return id, imie, nazwisko, wiek, plec
47 -
48 - zwierzeta = [
49 - gen_zwierze(i)
50 - for i in range(N_ZWIERZAT)
51 - ]
52 - osoby = [
53 - gen_osobe(i)
54 - for i in range(N_OSOB)
55 - ]
56 - relacje = [
57 - (random.choice(osoby)[0], random.choice(zwierzeta)[0])
58 - for _ in range(N_RELACJI)
59 - ]
60 -
61 - base = sqlite3.connect("zwierzeta.db")
62 - base.cursor().executescript('''
63 - CREATE TABLE IF NOT EXISTS osoby (id INTEGER PRIMARY KEY, imie TEXT, nazwisko TEXT, wiek INTEGER, plec TEXT);
64 - CREATE TABLE IF NOT EXISTS zwierzeta (id INTEGER PRIMARY KEY, imie TEXT, wiek INTEGER, gatunek TEXT, czy_zyje INTEGER);
65 - CREATE TABLE IF NOT EXISTS osoby_zwierzeta (id_osoby INTEGER, id_zwierzecia INTEGER);
66 - DELETE FROM osoby;
67 - DELETE FROM zwierzeta;
68 - DELETE FROM osoby_zwierzeta;
69 - ''')
70 - base.commit()
71 -
72 - base.cursor().executemany("INSERT INTO osoby (id, imie, nazwisko, wiek, plec) VALUES (?, ?, ?, ?, ?)", osoby)
73 - base.cursor().executemany("INSERT INTO zwierzeta (id, imie, wiek, gatunek, czy_zyje) VALUES (?, ?, ?, ?, ?)", zwierzeta)
74 - base.cursor().executemany("INSERT INTO osoby_zwierzeta (id_osoby, id_zwierzecia) VALUES (?, ?)", relacje)
1 + from faker import Faker
2 + import random
3 + import sqlite3
4 + import numpy as np
5 +
6 + faker = Faker(locale="pl")
7 +
8 + N_OSOB = 30
9 + N_ZWIERZAT = 50
10 + N_RELACJI = 20
11 +
12 + imiona_zwierzat = {
13 + "pies": [
14 + "Burek", "Reksio", "Azor", "Max", "Luna", "Bella",
15 + "Rocky", "Tina", "Bruno", "Dżeki", "Milo", "Kora"
16 + ],
17 + "kot": [
18 + "Mruczek", "Filemon", "Kicia", "Simba", "Mila", "Leo",
19 + "Loki", "Nela", "Puszek", "Feliks", "Tosia", "Zorro"
20 + ],
21 + "papuga": [
22 + "Kiwi", "Lola", "Rio", "Mango", "Coco", "Polly",
23 + "Sky", "Bingo", "Tiki", "Ariel", "Paco", "Zazu"
24 + ],
25 + "chomik": [
26 + "Puszek", "Nugat", "Tofik", "Karmel", "Fistaszek", "Drops",
27 + "Migdał", "Bąbel", "Rufi", "Pixel", "Kokos", "Gizmo"
28 + ],
29 + "żółw": [
30 + "Leonardo", "Skorupka", "Turbo", "Shelly", "Donatello",
31 + "Rafaello", "Mirek", "Stefan", "Tuptuś", "Gucio"
32 + ]
33 + }
34 +
35 + def gen_zwierze(id):
36 + gatunek = random.choice(list(imiona_zwierzat.keys()))
37 + imie = random.choice(imiona_zwierzat[gatunek])
38 + wiek = random.randint(1, 10)
39 + czy_zyje = int(np.random.choice([1, 0], p=[0.8, 0.2]))
40 + return id, imie, wiek, gatunek, czy_zyje
41 +
42 + def gen_osobe(id):
43 + imie, nazwisko = faker.unique.first_name(), faker.unique.last_name()
44 + wiek = random.randint(1, 100)
45 + plec = random.choice(['mężczyzna', 'kobieta'])
46 + return id, imie, nazwisko, wiek, plec
47 +
48 + zwierzeta = [
49 + gen_zwierze(i)
50 + for i in range(N_ZWIERZAT)
51 + ]
52 + osoby = [
53 + gen_osobe(i)
54 + for i in range(N_OSOB)
55 + ]
56 + relacje = [
57 + (random.choice(osoby)[0], random.choice(zwierzeta)[0])
58 + for _ in range(N_RELACJI)
59 + ]
60 +
61 + base = sqlite3.connect("zwierzeta.db")
62 + base.cursor().executescript('''
63 + CREATE TABLE IF NOT EXISTS osoby (id INTEGER PRIMARY KEY, imie TEXT, nazwisko TEXT, wiek INTEGER, plec TEXT);
64 + CREATE TABLE IF NOT EXISTS zwierzeta (id INTEGER PRIMARY KEY, imie TEXT, wiek INTEGER, gatunek TEXT, czy_zyje INTEGER);
65 + CREATE TABLE IF NOT EXISTS osoby_zwierzeta (id_osoby INTEGER, id_zwierzecia INTEGER);
66 + DELETE FROM osoby;
67 + DELETE FROM zwierzeta;
68 + DELETE FROM osoby_zwierzeta;
69 + ''')
70 + base.commit()
71 +
72 + base.cursor().executemany("INSERT INTO osoby (id, imie, nazwisko, wiek, plec) VALUES (?, ?, ?, ?, ?)", osoby)
73 + base.cursor().executemany("INSERT INTO zwierzeta (id, imie, wiek, gatunek, czy_zyje) VALUES (?, ?, ?, ?, ?)", zwierzeta)
74 + base.cursor().executemany("INSERT INTO osoby_zwierzeta (id_osoby, id_zwierzecia) VALUES (?, ?)", relacje)
75 75 base.commit()

GGORG revised this gist 15 hours ago. Go to revision

1 file changed, 75 insertions

gen2.py(file created)

@@ -0,0 +1,75 @@
1 + from faker import Faker
2 + import random
3 + import sqlite3
4 + import numpy as np
5 +
6 + faker = Faker(locale="pl")
7 +
8 + N_OSOB = 30
9 + N_ZWIERZAT = 50
10 + N_RELACJI = 20
11 +
12 + imiona_zwierzat = {
13 + "pies": [
14 + "Burek", "Reksio", "Azor", "Max", "Luna", "Bella",
15 + "Rocky", "Tina", "Bruno", "Dżeki", "Milo", "Kora"
16 + ],
17 + "kot": [
18 + "Mruczek", "Filemon", "Kicia", "Simba", "Mila", "Leo",
19 + "Loki", "Nela", "Puszek", "Feliks", "Tosia", "Zorro"
20 + ],
21 + "papuga": [
22 + "Kiwi", "Lola", "Rio", "Mango", "Coco", "Polly",
23 + "Sky", "Bingo", "Tiki", "Ariel", "Paco", "Zazu"
24 + ],
25 + "chomik": [
26 + "Puszek", "Nugat", "Tofik", "Karmel", "Fistaszek", "Drops",
27 + "Migdał", "Bąbel", "Rufi", "Pixel", "Kokos", "Gizmo"
28 + ],
29 + "żółw": [
30 + "Leonardo", "Skorupka", "Turbo", "Shelly", "Donatello",
31 + "Rafaello", "Mirek", "Stefan", "Tuptuś", "Gucio"
32 + ]
33 + }
34 +
35 + def gen_zwierze(id):
36 + gatunek = random.choice(list(imiona_zwierzat.keys()))
37 + imie = random.choice(imiona_zwierzat[gatunek])
38 + wiek = random.randint(1, 10)
39 + czy_zyje = int(np.random.choice([1, 0], p=[0.8, 0.2]))
40 + return id, imie, wiek, gatunek, czy_zyje
41 +
42 + def gen_osobe(id):
43 + imie, nazwisko = faker.unique.first_name(), faker.unique.last_name()
44 + wiek = random.randint(1, 100)
45 + plec = random.choice(['mężczyzna', 'kobieta'])
46 + return id, imie, nazwisko, wiek, plec
47 +
48 + zwierzeta = [
49 + gen_zwierze(i)
50 + for i in range(N_ZWIERZAT)
51 + ]
52 + osoby = [
53 + gen_osobe(i)
54 + for i in range(N_OSOB)
55 + ]
56 + relacje = [
57 + (random.choice(osoby)[0], random.choice(zwierzeta)[0])
58 + for _ in range(N_RELACJI)
59 + ]
60 +
61 + base = sqlite3.connect("zwierzeta.db")
62 + base.cursor().executescript('''
63 + CREATE TABLE IF NOT EXISTS osoby (id INTEGER PRIMARY KEY, imie TEXT, nazwisko TEXT, wiek INTEGER, plec TEXT);
64 + CREATE TABLE IF NOT EXISTS zwierzeta (id INTEGER PRIMARY KEY, imie TEXT, wiek INTEGER, gatunek TEXT, czy_zyje INTEGER);
65 + CREATE TABLE IF NOT EXISTS osoby_zwierzeta (id_osoby INTEGER, id_zwierzecia INTEGER);
66 + DELETE FROM osoby;
67 + DELETE FROM zwierzeta;
68 + DELETE FROM osoby_zwierzeta;
69 + ''')
70 + base.commit()
71 +
72 + base.cursor().executemany("INSERT INTO osoby (id, imie, nazwisko, wiek, plec) VALUES (?, ?, ?, ?, ?)", osoby)
73 + base.cursor().executemany("INSERT INTO zwierzeta (id, imie, wiek, gatunek, czy_zyje) VALUES (?, ?, ?, ?, ?)", zwierzeta)
74 + base.cursor().executemany("INSERT INTO osoby_zwierzeta (id_osoby, id_zwierzecia) VALUES (?, ?)", relacje)
75 + base.commit()
Newer Older