# HG changeset patch # User Nicolas Saunier # Date 1383253174 14400 # Node ID 334e1151828b89c05c9ef4dff07a2d37e53107c2 # Parent a31dde19caa8049aecfed0ce54cb65c6b510038a corrected creation and connection to database + helper function to generate sites and camera views diff -r a31dde19caa8 -r 334e1151828b python/metadata.py --- 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?