#!/usr/bin/env python
import DatabaseManager as dbm
import datetime
localhost = {'user': 'andrew',
'password': 'password123',
'host': 'localhost',
'port': '3306',
'raise_on_warnings': True}
zeropi = {'user': 'andrew',
'password': 'password123',
'host': 'zeropi',
'port': '3306',
'raise_on_warnings': True}
pibow = {'user': 'andrew',
'password': 'password123',
'host': 'pibow',
'port': '3306',
'raise_on_warnings': True}
car = dbm.table(
(
("friendlyID", " varchar(100) NOT NULL", "%s"),
("Make", " varchar(100) NOT NULL", "%s"),
("Model", " varchar(100) NOT NULL", "%s"),
("salePriceEst", " int(20)", "%s"),
("Registration", " varchar(100)", "%s"),
("purchaseEventID", " int(20)", "%s"),
("saleEventID", " int(20)", "%s"),
("boot_width_mm", " int(20)", "%s"),
("boot_length_mm", " int(20)", "%s"),
("boot_height_mm", " int(20)", "%s"),
("fuel_tank", " int(20)", "%s"),
("fuel", " varchar(100)", "%s"),
("fuel_consumption", " varchar(100)", "%s"),
("gearchange", " varchar(100)", "%s"),
("maximum_speed", " int(20)", "%s"),
("engine_size", " int(20)", "%s"),
("cylinders", " int(20)", "%s"),
("power_bhp", " int(20)", "%s"),
("power_RPM", " int(20)", "%s"),
("Torque_Nm", " int(20)", "%s"),
("Torque_RPM", " int(20)", "%s")
)
)
eventType = dbm.table((("label", " varchar(50) NOT NULL", "%s"), ("eventTypeID", " int(20)", "%s")))
Readings = dbm.table((("readingId", " int(11) NOT NULL", "%s"),
("readingDate", " Date NOT NULL", "%s"),
("readingType", " smallint NOT NULL", "%s"),
("readingValue", " float NOT NULL", "%s")))
genericEvents = dbm.table((("eventID", " int(11) NOT NULL", "%s"),
("Date", " Date NOT NULL", "%s"),
("Mileage", " int(20)", "%s"),
("Cost", " float NOT NULL", "%s"),
("Type", " varchar(100)", "%s"),
("Comment", " varchar(512)", "%s"),
("Car", " varchar(100)", "%s")))
refuelEvents = dbm.table((("refuelEventID", " int(11) NOT NULL", "%s"),
("eventID", " int(11) NOT NULL", "%s"),
("Litres_to_fill", " float NOT NULL", "%s"),
("Computer_Reading", " float", "%s"),
("previousEventID", " int(11)", "%s")))
recordings = dbm.table((("destinationFile", " varchar(250) NOT NULL", "%s"),
("sourceFile", " varchar(250) NOT NULL", "%s"),
("Date", " Date NOT NULL", "%s")))
singleTable = {'wholeTable': 'SELECT * FROM {}',
'recent10': 'SELECT * FROM {} ORDER BY {} ASC LIMIT 1'}
readQueries = {'allEvents' : 'SELECT * FROM genericEvents',
'refuelEvents' : 'SELECT * FROM genericEvents INNER JOIN refuelEvents ON genericEvents.eventID = refuelEvents.eventID',
'latestID' : 'SELECT {} FROM {} ORDER BY {} DESC LIMIT 1',
'types' : 'SELECT * FROM eventType',
'previousRefuelEventID' : 'SELECT refuelEvents.eventID FROM genericEvents INNER JOIN refuelEvents ON refuelEvents.eventID=genericEvents.eventID WHERE genericEvents.Car="{}" ORDER BY genericEvents.Date DESC LIMIT 1'}
[docs]def entity(entityName):
"""Provides the set of data identified by the entity name received. Entities currently available are: tables; servers; files; sql.
:param entityName: The name of the entity to be returned.
:type entityName: str
:return: The data set identified by the entity name received.
:rtype: dict"""
__value = {"tables" : {"car" : car,
"eventType" : eventType,
"genericEvents" : genericEvents,
"refuelEvents" : refuelEvents,
"Readings" : Readings,
"recordings" : recordings},
"servers" : {"localhost" : localhost, "pibow" : pibow, "zeropi" : zeropi},
"files" : {"car" : "/mnt/harddrive1/pibow/02-Finances/Cars_Database/table_data/car_table.csv",
"eventType" : "/mnt/harddrive1/pibow/02-Finances/Cars_Database/table_data/eventType_table.csv",
"genericEvents" : "/mnt/harddrive1/pibow/02-Finances/Cars_Database/table_data/genericEvents_table.csv",
"refuelEvents" : "/mnt/harddrive1/pibow/02-Finances/Cars_Database/table_data/refuelEvents_table.csv"},
"sql" : {"read" : singleTable,
"carQuery" : readQueries}}
return __value[entityName]
[docs]def dataBaseName():
"""Provides a name for a new database derived from today's date
:return: Suggested database name.
:rtype: str"""
x = datetime.datetime.now()
y = str(x.strftime("%Y"))
d = str(x.strftime("%j"))
tag = y + d
return "testVersion" + tag