BaseDB

class Data_Reduction.GAVRT.mysql.BaseDB(host=None, user=None, pw=None, name=None, port=3306)

Bases: object

This is a database superclass.

Public attributes::

db - the database connection object c - the database cursor host - database host port - port used to connect to the database pw - user’s password user - authorized db user

Methods::

connect - returns a connection to a database. check_db - reconnects to the database if a connection has been lost cursor -

Methods Summary

checkDB()

Reconnects to the database if the connection has been lost.

close()

Close a connection

commit()

Commits the most recent database transaction

connect()

Make a connection to the database.

cursor()

Creates a database cursor object; same as BaseDB.c but this is better because it handles disconnected a database

get(*args)

Executes a query of the database

getLastId(table)

ID of the last record

getLastRecord(table)

Returns the last record as a dictionary

getRecordById(table, rec_id)

Get the record with the given ID

get_as_dict(*args, **kwargs)

Executes a query of the database and returns the result as a dict

get_columns(table)

Returns information about the columns of a table

get_data_index()

get_public_tables()

List the table names in the database.

get_rows_by_date(table, columns, year, doy)

Gets data from a table

get_rows_by_time(table, columns, year, doy, utcs)

Queries a table for quantities in columns at designated times

insertRecord(table, rec)

Inserts a record into the database; handles a disconnected database

report_table(table, columns)

Reports on the columns in a table

send_query(query)

Send a MySQL query

updateValues(vald, table)

Add row with updated values

Methods Documentation

checkDB()

Reconnects to the database if the connection has been lost.

close()

Close a connection

commit()

Commits the most recent database transaction

connect()

Make a connection to the database. Creates a cursor object.

Automatically invoked when an instance is created; can be called again if the connection is closed but the database object persists.

cursor()

Creates a database cursor object; same as BaseDB.c but this is better because it handles disconnected a database

get(*args)

Executes a query of the database

:param args : query to be executed

Returns

record (dict)

getLastId(table)

ID of the last record

:param table : the name of the table :type table : str

Returns

ID (int)

getLastRecord(table)

Returns the last record as a dictionary

:param table : name of the table (string)

Returns

dict

getRecordById(table, rec_id)

Get the record with the given ID

:param table : table name :type table : str

:param id : row ID :type id : int

Returns

dict

get_as_dict(*args, **kwargs)

Executes a query of the database and returns the result as a dict

At present, only keyword {‘asfloat’: True} is recognized and is the default if not given. It will convert to float any values for which it is possible.

If the query returns multiple rows, each value associated with a keyword will be a list. If nothing was found, an empty dictionary is returned.

:param db : database connection object

Parameters

args – query to be executed

:param kwargs : a dictionary with keyword arguments.

@eturn: the record as a dictionary.

get_columns(table)

Returns information about the columns of a table

get_data_index()
get_public_tables()

List the table names in the database.

Returns

tuple of tuples of str

get_rows_by_date(table, columns, year, doy)

Gets data from a table

:param table : table name :type table : str

:param columns : list of columns to be selected :type columns : list of str

:type year : int

:param doy : day of year :type doy : int

Returns

dict of numpy arrays keyed on column name

get_rows_by_time(table, columns, year, doy, utcs)

Queries a table for quantities in columns at designated times

This loops over a list of UTs. For each, it takes the first row it finds matching the date and time. So it has an effective resolution of one second.

:param table : table name :type table : str

:param columns : list of columns to be selected :type columns : list of str

:type year : int

:param doy : day of year :type doy : int

:param utcs : times to be selected; first occurrence is used :type utcs : list of unixtimes (seconds since the epoch)

Returns

dict of numpy arrays keyed on column name

insertRecord(table, rec)

Inserts a record into the database; handles a disconnected database

:param table : table name :type table : str

:param rec : a dictionary with column names as keys.

Returns

record ID (int)

report_table(table, columns)

Reports on the columns in a table

Response has keys: Extra, Default, Field, Key, Null, Type

:param table : table name :type table : str

:param columns : list of column names :type columns : list of str

Returns

result of query

send_query(query)

Send a MySQL query

:param crsr : cursor object for a database

:param query : MySQL query :type query : str

Returns

str with query response

updateValues(vald, table)

Add row with updated values

Add a new row to table with same values as previous row, except for keys in vald, which are updated with provided values. This is useful for keeping logs.

:param vald : updated values :type vald : dict

:param table : table name :type table : str