changeset 426:334e1151828b

corrected creation and connection to database + helper function to generate sites and camera views
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Thu, 31 Oct 2013 16:59:34 -0400
parents a31dde19caa8
children 70accfa6692f
files python/metadata.py
diffstat 1 files changed, 26 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/python/metadata.py	Thu Oct 31 15:39:09 2013 -0400
+++ b/python/metadata.py	Thu Oct 31 16:59:34 2013 -0400
@@ -3,8 +3,8 @@
 from datetime import datetime
 from os import path
 
-from sqlalchemy import Column, Integer, Float, DateTime, String, ForeignKey
-from sqlalchemy.orm import relationship, backref
+from sqlalchemy import create_engine, Column, Integer, Float, DateTime, String, ForeignKey
+from sqlalchemy.orm import relationship, backref, sessionmaker
 from sqlalchemy.ext.declarative import declarative_base
 
 from utils import datetimeFormat
@@ -116,11 +116,33 @@
 # eg bounding box depends on camera view, tracking configuration depends on camera view 
 # results: sqlite
 
-def createDatabases(engine):
+def createDatabase(filename):
+    'creates a session to query the filename'
+    engine = create_engine('sqlite:///'+filename)
     Base.metadata.create_all(engine)
+    Session = sessionmaker(bind=engine)
+    return Session()
 
-def connectDatabaser(filename):
+def connectDatabase(filename):
     'creates a session to query the filename'
     engine = create_engine('sqlite:///'+filename)
     Session = sessionmaker(bind=engine)
     return Session()
+
+def initializeSites(session, directoryName):
+    '''Initializes default site objects and Camera Views
+    
+    eg somedirectory/montreal/ contains intersection1, intersection2, etc.
+    The site names would be somedirectory/montreal/intersection1, somedirectory/montreal/intersection2, etc.'''
+    from os import listdir, path
+    sites = []
+    cameraViews = []
+    names = listdir(directoryName)
+    for name in names:
+        if path.isdir(directoryName+'/'+name):
+            sites.append(Site(directoryName+'/'+name, None))
+            cameraViews.append(CameraView(-1, None, None, sites[-1], None))
+    session.add_all(sites)
+    session.add_all(cameraViews)
+    session.commit()
+# TODO crawler for video files?