SQL controller

This is the base sql class. It is mostly used per animal, so the init function needs an animal passed to the constructor It also needs for the animal, histology and scan run tables to be filled out for each animal to use

class library.controller.sql_controller.SqlController(animal, rescan_number=0)

Bases: AnimalController, ElastixController, HistologyController, ScanRunController, SectionsController, SlideCZIToTifController

This is the base controller class for all things SQL. Each parent class of SqlController would correspond to one table in the database, and include all the methods to interact with that table

add_row(data)

adding a row to a table

Parameters:

data – (data to be added ): instance of sqalchemy ORMs

delete_row(search_dictionary, model)

Deletes one row of any table

Parameters:
  • search_dictionary – (dict): search field and value

  • model – (sqalchemy ORM class): sqalchemy ORM

get_resolution(animal)

Returns the resolution for an animal

Parameters:

animal – string primary key

Return numpy array:

of the resolutions

get_row(search_dictionary, model)

look for a specific row in the database and return the result

Parameters:
  • search_dictionary – (dict): field and value of the search

  • model – (sqalchemy ORM): the sqalchemy ORM in question

Returns:

sql alchemy query

query_table(search_dictionary, model)

query a sql table and return all the results fitting the search criterias

Parameters:
  • search_dictionary – (dict): search field and value

  • model – (sqalchemy ORM class): sqalchemy ORM

returns list: the query result in a list of ORM objects

row_exists(search_dictionary, model)

check if a specific row exist in a table

Parameters:
  • search_dictionary – (dict): field and value for the search

  • model – (sqalchemy ORM): sqalchemy ORM

Return boolean:

whether the row exists

update_row(row)

update one row of a database

Parameters:

row – a row of a database table.