Untitled

 avatar
unknown
plain_text
a month ago
1.2 kB
4
Indexable
import os
import sqlite3
import pandas as pd

os.environ['SQLITE_DB_PATH'] = r'/c01/home/lidtd3o/APP_K/app_db_new.db'

def get_parent_child(program_id, var_name):
    """
    Optimized function to get children and parents of the target variable.
    Returns two lists: one for children and one for parents.
    """
    # Connect to the database
    conn = sqlite3.connect(os.getenv('SQLITE_DB_PATH'))
    
    # Fetch all relevant records in a single query
    query = f"""
        SELECT VARIABLE_NAME, VARIABLE_PARENT, PROGRAM_NAME 
        FROM BRE_ATTRIBUTE_TBL
        WHERE PROGRAM_NAME = '{program_id}' 
          AND (VARIABLE_NAME = '{var_name}' OR VARIABLE_PARENT = '{var_name}')
    """
    df = pd.read_sql_query(query, conn)
    conn.close()

    # Separate parents and children
    children = df[df['VARIABLE_PARENT'] == var_name][['VARIABLE_PARENT', 'VARIABLE_NAME', 'PROGRAM_NAME']].values.tolist()
    parents = df[df['VARIABLE_NAME'] == var_name][['VARIABLE_PARENT', 'VARIABLE_NAME', 'PROGRAM_NAME']].values.tolist()

    return children, parents


# Input
children, parents = get_parent_child('PAJSFN20', 'ERROR-PCB-AREA')

# Output
print("Children:", children)
print("Parents:", parents)
Leave a Comment