ppp_logger.get_engine()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1
Metric Value
cc 1
dl 0
loc 5
ccs 4
cts 4
cp 1
crap 1
rs 9.4286
1 1
from sqlalchemy import create_engine
2 1
from sqlalchemy import Table, Column
3 1
from sqlalchemy import Boolean, Integer, String, Text, DateTime
4 1
from sqlalchemy import MetaData, ForeignKey
5
6 1
from .config import Config
7
8 1
metadata = MetaData()
9
10 1
requests = Table('requests', metadata,
11
                 Column('request_id', Integer, primary_key=True),
12
                 Column('ppp_request_id', String),
13
                 Column('request_question', Text),
14
                 Column('request_datetime', DateTime),
15
                )
16
17 1
responses = Table('responses', metadata,
18
                  Column('response_id', Integer, primary_key=True),
19
                  Column('request_id', None, ForeignKey('requests.request_id')),
20
                  Column('parent_response_id', None, ForeignKey('responses.response_id'), nullable=True),
21
                  Column('response_is_final_result', Boolean),
22
                  Column('response_module', String),
23
                  Column('response_tree', Text),
24
                  Column('response_language', String),
25
                  Column('response_measures', Text),
26
                 )
27
28 1
feedback = Table('feedback', metadata,
29
                 Column('feedback_id', Integer, primary_key=True),
30
                 Column('request_id', None, ForeignKey('requests.request_id')),
31
                 Column('response_is_good', Boolean),
32
                 Column('response_correction', Text),
33
                )
34
35 1
def get_engine(uri):
36
    """Asks SQLAlchemy to create an engine to connect to the URI and return it."""
37 1
    engine = create_engine(uri, echo=Config().debug)
38 1
    metadata.create_all(engine)
39
    return engine
40