Skip to content

Commit 6188fb5

Browse files
committed
Use pandas to retrieve results
1 parent e846611 commit 6188fb5

File tree

1 file changed

+9
-18
lines changed

1 file changed

+9
-18
lines changed

fact/factdb/utils.py

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
import pandas as pd
22
import peewee
33
from .models import RunInfo, Source, RunType
4-
from .database import factdata_db, connect_database
4+
from ..credentials import create_factdb_engine
55

66

7-
def get_ontime_by_source_and_runtype(config=None):
8-
if factdata_db.is_closed():
9-
connect_database(config=config)
10-
df = pd.DataFrame(list(
7+
def get_ontime_by_source_and_runtype(engine=None):
8+
query, params = (
119
RunInfo
1210
.select(
1311
peewee.fn.SUM(RunInfo.fontime).alias('ontime'),
@@ -18,17 +16,15 @@ def get_ontime_by_source_and_runtype(config=None):
1816
.switch(RunInfo)
1917
.join(RunType, on=RunType.fruntypekey == RunInfo.fruntypekey)
2018
.group_by(Source.fsourcename, RunType.fruntypename)
21-
.dicts()
22-
.naive() # put selected foreign key attributes directly into the objects
23-
))
19+
.sql()
20+
)
21+
df = pd.read_sql(query, engine or create_factdb_engine(), params=params)
2422
df.set_index(['source', 'runtype'], inplace=True)
2523

2624
return df
2725

2826

29-
def get_ontime_by_source(runtype=None, config=None):
30-
if factdata_db.is_closed():
31-
connect_database(config=config)
27+
def get_ontime_by_source(runtype=None, engine=None):
3228
query = (
3329
RunInfo
3430
.select(
@@ -42,13 +38,8 @@ def get_ontime_by_source(runtype=None, config=None):
4238
if runtype is not None:
4339
query = query.where(RunType.fruntypename == runtype)
4440

45-
query = (
46-
query
47-
.group_by(Source.fsourcename)
48-
.dicts()
49-
.naive() # put selected foreign key attributes directly into the objects
50-
)
51-
df = pd.DataFrame(list(query))
41+
query, params = query.group_by(Source.fsourcename).sql()
42+
df = pd.read_sql(query, engine or create_factdb_engine(), params=params)
5243
df.set_index('source', inplace=True)
5344

5445
return df

0 commit comments

Comments
 (0)