Skip to content
Snippets Groups Projects
Commit 23660f6c authored by Markus Willman's avatar Markus Willman
Browse files

move current time function to database module, making it self-contained

parent 3f8954a5
Branches
No related tags found
No related merge requests found
......@@ -4,11 +4,28 @@
import sys
from peewee import Model, CharField, IntegerField, DateTimeField, PostgresqlDatabase, CompositeKey
from web.faces import getCurrentTime
from datetime import datetime
from dateutil.tz import tzlocal
# leading underscore, denoting module private variable, may exclude this variable from wildcard imports on some versions of python
# Leading underscore, denoting module private variable, may exclude this variable from wildcard imports on some versions of python
_database = PostgresqlDatabase('stop', user='stop', password='PT52lRecp4NBKQrZT9', host='database')
# Helper functions
def truncateString(str, size):
strLen = len(str)
if size <= 3 or strLen <= 3:
return str
return (str[:(size-3)] + '...') if strLen > size else str
# NOTE: most docker images run in UTC by default
def currentTime(format = None):
ts = datetime.now(tzlocal())
if not format:
return ts
return ts.strftime(format)
# PostgreSQL table classes:
class UnknownField(object):
def __init__(self, *_, **__): pass
......@@ -20,7 +37,7 @@ class BaseModel(Model):
class GenderStats(BaseModel):
rowid = IntegerField()
t = CharField(column_name='t_id', max_length=10)
t_ts = DateTimeField(default=getCurrentTime)
t_ts = DateTimeField(default=currentTime)
gender_text = CharField(null=True, max_length=100)
class Meta:
......@@ -30,12 +47,6 @@ class GenderStats(BaseModel):
)
primary_key = CompositeKey('rowid', 't', 't_ts')
def truncateString(str, size):
if size <= 3:
return str
return (str[:(size-3)] + '...') if len(str) > size else str
def connect():
if _database.is_closed():
_database.connect()
......@@ -50,7 +61,7 @@ def addStats(data, stopCode = None):
with _database.atomic():
i = 0
ts = getCurrentTime() # only one value for current time per request
ts = currentTime() # only one value for current time per request
for face in data:
if not face['gender']:
face['gender'] = 'unknown'
......
......@@ -7,22 +7,13 @@ from flask_request_id import RequestID
from web.emotion_gender_processor import EGProcessor
from web import database
from flask import g
from datetime import datetime
from dateutil.tz import tzlocal
dirname = os.path.normpath(os.path.join(os.getcwd(), 'results'))
if not os.path.exists(dirname):
os.mkdir(dirname)
logging.basicConfig(filename = os.path.join(dirname, 'debug.log'), level = logging.DEBUG)
# NOTE: most docker images run in UTC by default
def getCurrentTime(format = None):
ts = datetime.now(tzlocal())
if not format:
return ts
return ts.strftime(format)
# logging.basicConfig(filename = os.path.join(dirname, 'debug.log'), level = logging.DEBUG)
logging.basicConfig(filename = os.path.join(dirname, 'error.log'), level = logging.ERROR)
# File removal after processing (match with legal documentation about storage)
class FileCleaner(object):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment