33 lines
859 B
Python
33 lines
859 B
Python
|
from typing import List
|
||
|
|
||
|
import pandas as pd
|
||
|
|
||
|
from config.models import Screen, Participant
|
||
|
from setup import db_engine, session
|
||
|
|
||
|
screen_status = {0: "off", 1: "on", 2: "locked", 3: "unlocked"}
|
||
|
|
||
|
|
||
|
def get_screen_data(usernames: List) -> pd.DataFrame:
|
||
|
"""
|
||
|
Read the data from the screen table and return it in a dataframe.
|
||
|
|
||
|
Parameters
|
||
|
----------
|
||
|
usernames: List
|
||
|
A list of usernames to put into the WHERE condition.
|
||
|
|
||
|
Returns
|
||
|
-------
|
||
|
df_screen: pd.DataFrame
|
||
|
A dataframe of screen data.
|
||
|
"""
|
||
|
query_screen = (
|
||
|
session.query(Screen, Participant.username)
|
||
|
.filter(Participant.id == Screen.participant_id)
|
||
|
.filter(Participant.username.in_(usernames))
|
||
|
)
|
||
|
with db_engine.connect() as connection:
|
||
|
df_screen = pd.read_sql(query_screen.statement, connection)
|
||
|
return df_screen
|