pyramid_tut.scripts.initializedb   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 51
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 5
eloc 30
dl 0
loc 51
rs 10
c 0
b 0
f 0

2 Functions

Rating   Name   Duplication   Size   Complexity  
A main() 0 30 4
A usage() 0 7 1
1
import os
2
import sys
3
from datetime import date
4
5
import transaction
6
from pyramid.paster import get_appsettings, setup_logging
7
from sqlalchemy import engine_from_config
8
9
from ..models import Address, Base, DBSession, User
10
11
12
def usage(argv):
13
    """Help user on how to use the script."""
14
    cmd = os.path.basename(argv[0])
15
16
    print("usage: %s <config_uri> [var=value]\n" % cmd, cmd)
17
18
    sys.exit(1)
19
20
21
def main(argv=sys.argv):
22
    """Populate database with 30 users."""
23
    if len(argv) < 2:
24
        usage(argv)
25
26
    config_uri = argv[1]
27
28
    setup_logging(config_uri)
29
30
    settings = get_appsettings(config_uri)
31
32
    engine = engine_from_config(settings, "sqlalchemy.")
33
34
    DBSession.configure(bind=engine)
35
36
    Base.metadata.create_all(engine)
37
38
    for i in range(30):
39
        with transaction.manager:
40
            address = Address(description="Address#2" + str(i).rjust(2, "0"))
41
42
            DBSession.add(address)
43
44
            user = User(
45
                name="User#1" + str(i).rjust(2, "0"),
46
                birthday=date(1980 + i % 8, i % 12 + 1, i % 10 + 1))
47
48
            user.address = address
49
50
            DBSession.add(user)
51