Cut down code

This commit is contained in:
SimpleArt
2020-11-16 12:23:22 -05:00
parent bf19b4eba3
commit 2171576a99

View File

@ -7,7 +7,7 @@ class SQL_Database:
"""Main database class that controls all the functionality for input / """Main database class that controls all the functionality for input /
out of the database using SQLite3.""" out of the database using SQLite3."""
sql_types_dict = [int, float, str] sql_types = [int, float, str]
def __init__(self): def __init__(self):
self.conn = None self.conn = None
@ -98,74 +98,21 @@ class SQL_Database:
"""Insert the configuration attributes into the config.""" """Insert the configuration attributes into the config."""
# Structure the insert data # Structure the insert data
db_config_list = [ db_config_list = list(ga.__dict__.values())
ga.chromosome_length,
ga.population_size,
ga.chromosome_impl,
ga.gene_impl,
ga.target_fitness_type,
ga.update_fitness,
ga.parent_ratio,
ga.selection_probability,
ga.tournament_size_ratio,
ga.current_generation,
float(ga.current_fitness),
ga.generation_goal,
ga.fitness_goal,
ga.tolerance_goal,
ga.percent_converged,
ga.chromosome_mutation_rate,
ga.gene_mutation_rate,
ga.initialization_impl,
ga.fitness_function_impl,
ga.parent_selection_impl,
ga.crossover_individual_impl,
ga.crossover_population_impl,
ga.survivor_selection_impl,
ga.mutation_individual_impl,
ga.mutation_population_impl,
ga.termination_impl,
ga.database_name
]
# Clean up so the sqlite database accepts the data structure # Clean up so the sqlite database accepts the data structure
for i in range(len(db_config_list)): for i in range(len(db_config_list)):
if callable(db_config_list[i]): if callable(db_config_list[i]):
db_config_list[i] = db_config_list[i].__name__ db_config_list[i] = db_config_list[i].__name__
elif type(db_config_list[i]) not in self.sql_types_dict: elif type(db_config_list[i]) not in self.sql_types:
db_config_list[i] = str(db_config_list[i]) db_config_list[i] = str(db_config_list[i])
# For some reason it has to be in var = array(tuple()) form # For some reason it has to be in var = array(tuple()) form
db_config_list = [tuple(db_config_list)] db_config_list = [tuple(db_config_list)]
# Create sql query structure # Create sql query structure
sql = f'''INSERT INTO config (chromosome_length, sql = f"""INSERT INTO config ({''',
population_size, '''.join(ga.__dict__.keys())}) VALUES({(',?'*len(db_config_list))[1:]}) """
chromosome_impl,
gene_impl,
target_fitness_type,
update_fitness,
parent_ratio,
selection_probability,
tournament_size_ratio,
current_generation,
current_fitness,
generation_goal,
fitness_goal,
tolerance_goal,
percent_converged,
chromosome_mutation_rate,
gene_mutation_rate,
initialization_impl,
fitness_function_impl,
parent_selection_impl,
crossover_individual_impl,
crossover_population_impl,
survivor_selection_impl,
mutation_individual_impl,
mutation_population_impl,
termination_impl,
database_name) VALUES({(',?'*len(db_config_list))[1:]}) '''
# Execute sql query # Execute sql query
cur = self.conn.cursor() cur = self.conn.cursor()