JEPL/jepl/jeplinit.py
2024-12-13 15:47:10 -04:00

66 lines
1.9 KiB
Python

import pandas as pd
import sys
import sqlite3
'''
When this init file is used for projects, the location should be passed as an argument, similar to:
%run jeplinit.py resources/JEPL/jepl/
If there is no argument, we assume that it is part of development and we will use the root folder.
'''
location = ''
if sys.argv[1]:
location = sys.argv[1] # This needs to be passed if its not the same as the location of jepl.py
'''
The functions used in the initialization
'''
def insert(database,table,data):
'''
This function creates a database from the current
source data to be used in the modules.
Running this function will replace any data that is already in the database.
'''
conn = sqlite3.connect(database)
data.to_sql(table, conn, if_exists='replace', index=False)
conn.close()
def create_database(name,tables):
'''
This function loops over the source data lists to create tables in the database.
'''
for i in range(len(tables)):
db = tables[i][0]
table = tables[i][1]
source = tables[i][2]
data = pd.read_csv(source)
insert(db,table,data) # Call the database insert function to add the data
'''
This is all the tables and their sources that will be added to the databases.
'''
CEC21_database = [
['jepl-cec21.db','Table1',location+'Tables/CEC-Tables/CEC21-table1.csv'],
['jepl-cec21.db','Table2',location+'Tables/CEC-Tables/CEC21-table2.csv'],
['jepl-cec21.db','Table3',location+'Tables/CEC-Tables/CEC21-table2.csv'],
['jepl-cec21.db','Table4',location+'Tables/CEC-Tables/CEC21-table2.csv'],
]
create_database('jepl-cec21.db',CEC21_database)
cable_database = [
['cable.db','SW-Spec 25055',location+'Tables/Manufacturer/SW-Spec-23055.csv'],
]
create_database('cable.db',cable_database)