-
Notifications
You must be signed in to change notification settings - Fork 2
/
db.py
84 lines (69 loc) · 2.1 KB
/
db.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# pylint: disable=missing-function-docstring
"""Flask CLI db commands"""
from recommender.engines.rl.ml_components.sarses_generator import regenerate_sarses
from recommender.models import (
AccessMode,
Service,
AccessType,
LifeCycleStatus,
TargetUser,
Trl,
Category,
Platform,
Provider,
ScientificDomain,
)
from recommender.services.mp_dump import drop_mp_dump
from tests.factories.marketplace.faker_seeds.utils.dumpers import (
dump_names_descs,
dump_names,
dump_taglines,
)
from tests.factories.populate_database import populate_users_and_services
from logger_config import get_logger
logger = get_logger(__name__)
def _seed():
"""Populates databse with a small amount of data
for testing and development purposes"""
populate_users_and_services(
common_services_num=30,
unordered_services_num=70,
users_num=100,
k_common_services_min=1,
k_common_services_max=10,
verbose=True,
valid=True,
)
def _drop_mp():
"""Drops the documents sent by the MP Database dump"""
drop_mp_dump()
def _seed_faker():
"""
Call this function to generate json files used for seeding fakers in factories.
It uses current database data for it. To make factories more
realistic you can use seed_faker function to generate special
json files from data existing in the database.
These files will contain information used by factories'
fakers to generate more realistic data
"""
names_descs_classes = [
Service,
AccessMode,
AccessType,
LifeCycleStatus,
TargetUser,
Trl,
]
class_names = [Category, Platform, Provider, ScientificDomain]
for clazz in names_descs_classes:
dump_names_descs(clazz)
for clazz in class_names:
dump_names(clazz)
dump_taglines()
def _regenerate_sarses():
"""Regenerate SARSes"""
logger.info("Regenerating SARSes...")
regenerate_sarses(multi_processing=True, verbose=True)
logger.info("SARSes regenerated successfully!")
def db_command(task):
globals()[f"_{task}"]()