def MstFreqDateAndMstFreqStateInRgDates(dateOmap, date1, date2): """ Para un rango de fechas retorna la fecha con mas accidentes y el estado con mas accidentes Args: dateOmap: Order map organizado por fechas date1: datetime de la fecha de la primera fecha date2: datetime de la fecha de la segunda fecha Returns: dobleentry con un entry con la fecha el numero de accidentes en esa fecha y un entry con el estado el numero de accidentes en ese estado """ frequency_fun = Aux.FrequencyInMapAndFrequentKeyForOmp('StateIndex') freqAndFrequencyForm = { 'KeyFrequent': MakeMaxFormat(False), 'map': MakeMapFormat(40) } stateFrequencyAndMfDate = Op.operationRangeOmp(dateOmap, date1, date2, frequency_fun, freqAndFrequencyForm) mostFrequentState = Op.operationSetMap(stateFrequencyAndMfDate['map'], Aux.FrequentMp, MakeMaxFormat(False)) mostFreqDateAndMostFreqState = { 'mstDate': stateFrequencyAndMfDate['KeyFrequent'], 'mstState': mostFrequentState } return mostFreqDateAndMostFreqState
def weekdayFrequencyListInArea(zoneOmap, cPoint, dist): """ Para un area definida por una latitud una longitud y una distancia devuelve una lista de la cantidad de accidentes por severidad y el total de accidentes Args: Returns: Entry con la lista y el total """ cir_fun = Aux.frequencyInMapForOmpInCircle(cPoint, dist, 'weekdayIndex') point1, point2 = (cPoint[0] - dist, cPoint[1]), (cPoint[0] + dist, cPoint[1]) weekdayFrequency = Op.operationRangeOmp(zoneOmap, point1, point2, cir_fun, MakeMapFormat(3, ints=True)) weekdayListAndTotal = Op.operationSetMap(weekdayFrequency, Aux.makeListAndTotalMp, MakeListFormat()) weekdayFromIntToStr(weekdayListAndTotal['list']) return weekdayListAndTotal
def severityFrequencyListInRgHours(timeOmap, time1, time2): """ Para un rango de horas devuelve una lista de la cantidad de accidentes por severidad y el total de accidentes Args: timeOmap: Order map organizado por horas time1: time de la hora 1 time2: time de la hora 2 Returns: Entry con la lista y el total """ frequency_fun = Aux.frequencyInMapForOmp('SeverityIndex') severityFrequency = Op.operationRangeOmp(timeOmap, time1, time2, frequency_fun, MakeMapFormat(2, ints=True)) severityListAndTotal = Op.operationSetMap(severityFrequency, Aux.makeListAndTotalMp, MakeListFormat()) AddPercents(severityListAndTotal) return severityListAndTotal
def mstFreqSeverityInRgDates(dateOmap, date1, date2): """ Para un rango de fechas calcula la severidad mas frecuente y el total de accidentes Args: dateOmap: Order map organizado por fechas date1: datetime de la fecha de la primera fecha date2: datetime de la fecha de la segunda fecha Returns: entry con la fecha el numero de accidentes en esa fecha, y total """ frequency_fun = Aux.frequencyInMapForOmp('SeverityIndex') severityFrequency = Op.operationRangeOmp(dateOmap, date1, date2, frequency_fun, MakeMapFormat(2, ints=True)) mstFreqSeverity = Op.operationSetMap(severityFrequency, Aux.TotalAndFrequentMp, MakeMaxFormat(True)) return mstFreqSeverity
def mstFreqDateBfADate(dateOmap, before_date): """ Para una serie de fechas antes de la fecha indicada, se calcula la que tiene mayor cantidad de accidentes y el total de accidentes en la serie de fechas Args: dateOmap: Order map organizado por fechas before_date: datetime de la fecha Returns: entry con la fecha el numero de accidentes en esa fecha, y total """ mstFreqDate = Op.operationBeforeOmp(dateOmap, before_date, Aux.TotalAndFrequentOmp, MakeMaxFormat(True)) return mstFreqDate
def getDateInfo(dateOmap, date): """ Para una fecha devuelve una lista de la cantidad de accidentes por severidad y el total de accidentes Args: dateOmap: Order map organizado por fechas date: datetime de la fecha Returns: Entry con la lista y el total """ dateRoot = om.get(dateOmap, date) if dateRoot is None: return None dateEntry = dateRoot['value'] severityList = Op.operationSetMap(dateEntry['SeverityIndex'], Aux.makeListMp, newList('ARRAY_LIST')) severityListAndTotal = { 'list': severityList, 'total': dateEntry['numAccidents'] } return severityListAndTotal
from dotenv import load_dotenv import os from App import Operations from App.Operations.User import User load_dotenv() app_name = os.getenv("APP_NAME") Operations.info(name="Tom Mboya") user = User(name="Chris Muga", age=25) users = user.fetch() user.print_names(users)