mirror of
https://github.com/echemdata/galvani.git
synced 2025-12-14 09:15:34 +00:00
Fixed some flake8 warnings in res2sqlite.py
This commit is contained in:
@@ -7,8 +7,8 @@ import csv
|
|||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
|
||||||
## The following scripts are adapted from the result of running
|
# The following scripts are adapted from the result of running
|
||||||
## $ mdb-schema <result.res> oracle
|
# $ mdb-schema <result.res> oracle
|
||||||
|
|
||||||
mdb_tables = ["Version_Table", "Global_Table", "Resume_Table",
|
mdb_tables = ["Version_Table", "Global_Table", "Resume_Table",
|
||||||
"Channel_Normal_Table", "Channel_Statistic_Table",
|
"Channel_Normal_Table", "Channel_Statistic_Table",
|
||||||
@@ -126,7 +126,8 @@ CREATE TABLE Channel_Statistic_Table
|
|||||||
-- Version 1.14 ends here, version 5.23 continues
|
-- Version 1.14 ends here, version 5.23 continues
|
||||||
Charge_Time REAL DEFAULT NULL,
|
Charge_Time REAL DEFAULT NULL,
|
||||||
Discharge_Time REAL DEFAULT NULL,
|
Discharge_Time REAL DEFAULT NULL,
|
||||||
FOREIGN KEY (Test_ID, Data_Point) REFERENCES Channel_Normal_Table (Test_ID, Data_Point)
|
FOREIGN KEY (Test_ID, Data_Point)
|
||||||
|
REFERENCES Channel_Normal_Table (Test_ID, Data_Point)
|
||||||
); """,
|
); """,
|
||||||
"Auxiliary_Table": """
|
"Auxiliary_Table": """
|
||||||
CREATE TABLE Auxiliary_Table
|
CREATE TABLE Auxiliary_Table
|
||||||
@@ -137,7 +138,8 @@ CREATE TABLE Auxiliary_Table
|
|||||||
Data_Type INTEGER,
|
Data_Type INTEGER,
|
||||||
X REAL,
|
X REAL,
|
||||||
"dX/dt" REAL,
|
"dX/dt" REAL,
|
||||||
FOREIGN KEY (Test_ID, Data_Point) REFERENCES Channel_Normal_Table (Test_ID, Data_Point)
|
FOREIGN KEY (Test_ID, Data_Point)
|
||||||
|
REFERENCES Channel_Normal_Table (Test_ID, Data_Point)
|
||||||
); """,
|
); """,
|
||||||
"Event_Table": """
|
"Event_Table": """
|
||||||
CREATE TABLE Event_Table
|
CREATE TABLE Event_Table
|
||||||
@@ -220,7 +222,8 @@ CREATE TABLE Smart_Battery_Data_Table
|
|||||||
ChargingCurrent REAL DEFAULT NULL,
|
ChargingCurrent REAL DEFAULT NULL,
|
||||||
ChargingVoltage REAL DEFAULT NULL,
|
ChargingVoltage REAL DEFAULT NULL,
|
||||||
ManufacturerData REAL DEFAULT NULL,
|
ManufacturerData REAL DEFAULT NULL,
|
||||||
FOREIGN KEY (Test_ID, Data_Point) REFERENCES Channel_Normal_Table (Test_ID, Data_Point)
|
FOREIGN KEY (Test_ID, Data_Point)
|
||||||
|
REFERENCES Channel_Normal_Table (Test_ID, Data_Point)
|
||||||
); """,
|
); """,
|
||||||
## The following tables are not present in version 1.14
|
## The following tables are not present in version 1.14
|
||||||
'MCell_Aci_Data_Table': """
|
'MCell_Aci_Data_Table': """
|
||||||
@@ -233,7 +236,8 @@ CREATE TABLE MCell_Aci_Data_Table
|
|||||||
Phase_Shift REAL,
|
Phase_Shift REAL,
|
||||||
Voltage REAL,
|
Voltage REAL,
|
||||||
Current REAL,
|
Current REAL,
|
||||||
FOREIGN KEY (Test_ID, Data_Point) REFERENCES Channel_Normal_Table (Test_ID, Data_Point)
|
FOREIGN KEY (Test_ID, Data_Point)
|
||||||
|
REFERENCES Channel_Normal_Table (Test_ID, Data_Point)
|
||||||
);""",
|
);""",
|
||||||
'Aux_Global_Data_Table': """
|
'Aux_Global_Data_Table': """
|
||||||
CREATE TABLE Aux_Global_Data_Table
|
CREATE TABLE Aux_Global_Data_Table
|
||||||
@@ -288,7 +292,8 @@ CREATE TABLE Smart_Battery_Clock_Stretch_Table
|
|||||||
VCELL3 INTEGER,
|
VCELL3 INTEGER,
|
||||||
VCELL2 INTEGER,
|
VCELL2 INTEGER,
|
||||||
VCELL1 INTEGER,
|
VCELL1 INTEGER,
|
||||||
FOREIGN KEY (Test_ID, Data_Point) REFERENCES Channel_Normal_Table (Test_ID, Data_Point)
|
FOREIGN KEY (Test_ID, Data_Point)
|
||||||
|
REFERENCES Channel_Normal_Table (Test_ID, Data_Point)
|
||||||
);"""}
|
);"""}
|
||||||
|
|
||||||
mdb_create_indices = {
|
mdb_create_indices = {
|
||||||
@@ -306,11 +311,14 @@ CREATE TEMPORARY TABLE capacity_helper(
|
|||||||
Discharge_Capacity REAL NOT NULL,
|
Discharge_Capacity REAL NOT NULL,
|
||||||
Charge_Energy REAL NOT NULL,
|
Charge_Energy REAL NOT NULL,
|
||||||
Discharge_Energy REAL NOT NULL,
|
Discharge_Energy REAL NOT NULL,
|
||||||
FOREIGN KEY (Test_ID, Cycle_Index) REFERENCES Channel_Normal_Table (Test_ID, Cycle_Index)
|
FOREIGN KEY (Test_ID, Cycle_Index)
|
||||||
|
REFERENCES Channel_Normal_Table (Test_ID, Cycle_Index)
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO capacity_helper
|
INSERT INTO capacity_helper
|
||||||
SELECT Test_ID, Cycle_Index, max(Charge_Capacity), max(Discharge_Capacity), max(Charge_Energy), max(Discharge_Energy)
|
SELECT Test_ID, Cycle_Index,
|
||||||
|
max(Charge_Capacity), max(Discharge_Capacity),
|
||||||
|
max(Charge_Energy), max(Discharge_Energy)
|
||||||
FROM Channel_Normal_Table
|
FROM Channel_Normal_Table
|
||||||
GROUP BY Test_ID, Cycle_Index;
|
GROUP BY Test_ID, Cycle_Index;
|
||||||
|
|
||||||
@@ -328,11 +336,14 @@ CREATE TABLE Capacity_Sum_Table(
|
|||||||
Discharge_Capacity_Sum REAL NOT NULL,
|
Discharge_Capacity_Sum REAL NOT NULL,
|
||||||
Charge_Energy_Sum REAL NOT NULL,
|
Charge_Energy_Sum REAL NOT NULL,
|
||||||
Discharge_Energy_Sum REAL NOT NULL,
|
Discharge_Energy_Sum REAL NOT NULL,
|
||||||
FOREIGN KEY (Test_ID, Cycle_Index) REFERENCES Channel_Normal_Table (Test_ID, Cycle_Index)
|
FOREIGN KEY (Test_ID, Cycle_Index)
|
||||||
|
REFERENCES Channel_Normal_Table (Test_ID, Cycle_Index)
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO Capacity_Sum_Table
|
INSERT INTO Capacity_Sum_Table
|
||||||
SELECT a.Test_ID, a.Cycle_Index, total(b.Charge_Capacity), total(b.Discharge_Capacity), total(b.Charge_Energy), total(b.Discharge_Energy)
|
SELECT a.Test_ID, a.Cycle_Index,
|
||||||
|
total(b.Charge_Capacity), total(b.Discharge_Capacity),
|
||||||
|
total(b.Charge_Energy), total(b.Discharge_Energy)
|
||||||
FROM capacity_helper AS a LEFT JOIN capacity_helper AS b
|
FROM capacity_helper AS a LEFT JOIN capacity_helper AS b
|
||||||
ON (a.Test_ID = b.Test_ID AND a.Cycle_Index > b.Cycle_Index)
|
ON (a.Test_ID = b.Test_ID AND a.Cycle_Index > b.Cycle_Index)
|
||||||
GROUP BY a.Test_ID, a.Cycle_Index;
|
GROUP BY a.Test_ID, a.Cycle_Index;
|
||||||
@@ -352,14 +363,17 @@ CREATE VIEW IF NOT EXISTS Capacity_View
|
|||||||
|
|
||||||
def mdb_get_data_text(s3db, filename, table):
|
def mdb_get_data_text(s3db, filename, table):
|
||||||
print("Reading %s..." % table)
|
print("Reading %s..." % table)
|
||||||
|
insert_pattern = re.compile(
|
||||||
|
r'INSERT INTO "\w+" \([^)]+?\) VALUES \(("[^"]*"|[^")])+?\);\n',
|
||||||
|
re.IGNORECASE
|
||||||
|
)
|
||||||
try:
|
try:
|
||||||
mdb_sql = sp.Popen(['mdb-export', '-I', 'postgres', filename, table],
|
mdb_sql = sp.Popen(['mdb-export', '-I', 'postgres', filename, table],
|
||||||
bufsize=-1, stdin=None, stdout=sp.PIPE,
|
bufsize=-1, stdin=None, stdout=sp.PIPE,
|
||||||
universal_newlines=True)
|
universal_newlines=True)
|
||||||
mdb_output = mdb_sql.stdout.read()
|
mdb_output = mdb_sql.stdout.read()
|
||||||
while len(mdb_output) > 0:
|
while len(mdb_output) > 0:
|
||||||
insert_match = re.match(r'INSERT INTO "\w+" \([^)]+?\) VALUES \(("[^"]*"|[^")])+?\);\n',
|
insert_match = insert_pattern.match(mdb_output)
|
||||||
mdb_output, re.IGNORECASE)
|
|
||||||
s3db.execute(insert_match.group())
|
s3db.execute(insert_match.group())
|
||||||
mdb_output = mdb_output[insert_match.end():]
|
mdb_output = mdb_output[insert_match.end():]
|
||||||
s3db.commit()
|
s3db.commit()
|
||||||
@@ -408,7 +422,6 @@ def convert_arbin_to_sqlite(input_file, output_file):
|
|||||||
"""
|
"""
|
||||||
s3db = sqlite3.connect(output_file)
|
s3db = sqlite3.connect(output_file)
|
||||||
|
|
||||||
|
|
||||||
for table in reversed(mdb_tables + mdb_5_23_tables):
|
for table in reversed(mdb_tables + mdb_5_23_tables):
|
||||||
s3db.execute('DROP TABLE IF EXISTS "%s";' % table)
|
s3db.execute('DROP TABLE IF EXISTS "%s";' % table)
|
||||||
|
|
||||||
@@ -419,7 +432,9 @@ def convert_arbin_to_sqlite(input_file, output_file):
|
|||||||
print("Creating indices for %s..." % table)
|
print("Creating indices for %s..." % table)
|
||||||
s3db.executescript(mdb_create_indices[table])
|
s3db.executescript(mdb_create_indices[table])
|
||||||
|
|
||||||
if (s3db.execute("SELECT Version_Schema_Field FROM Version_Table;").fetchone()[0] == "Results File 5.23"):
|
csr = s3db.execute("SELECT Version_Schema_Field FROM Version_Table;")
|
||||||
|
version_text, = csr.fetchone()
|
||||||
|
if (version_text == "Results File 5.23"):
|
||||||
for table in mdb_5_23_tables:
|
for table in mdb_5_23_tables:
|
||||||
s3db.executescript(mdb_create_scripts[table])
|
s3db.executescript(mdb_create_scripts[table])
|
||||||
mdb_get_data(input_file, table)
|
mdb_get_data(input_file, table)
|
||||||
|
|||||||
Reference in New Issue
Block a user