Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # autogenerated by sqlautocode, with manual modifications
- import sqlalchemy as sa
- from sqlalchemy import orm
- from sqlalchemy import Column, Float, String, Boolean, ForeignKey, Integer, DateTime
- from sqlalchemy.types import TIMESTAMP
- from sqlalchemy.ext.declarative import declarative_base
- from sqlalchemy import schema, types
- from sqlalchemy.orm import relation, synonym
- from skynet.db.sa import session as sess
- DeclarativeBase = declarative_base()
- class Site(DeclarativeBase):
- __tablename__ = 'sites'
- c_name = Column('c_Name', String, primary_key=True)
- c_latitude = Column('c_Latitude', Float)
- c_longitude = Column('c_Longitude', Float)
- telescopes = relation("Telescope", backref="site")
- class Telescope(DeclarativeBase):
- __tablename__ = 'telescopes'
- c_name = Column('c_Name', String, primary_key=True)
- c_filters = Column('c_Filters', String)
- c_siteName = Column('c_SiteName', String, ForeignKey('sites.c_Name'))
- @property
- def filters(self):
- tempResults = self.c_filters.split(',')
- results = []
- for tempResult in tempResults:
- if tempResult.strip() != '':
- results.append(tempResult)
- return results
- class TeleStatus(DeclarativeBase):
- __tablename__ = 'tele_status'
- c_name = Column('c_Name', String, ForeignKey('telescopes.c_Name'),primary_key=True)
- c_connection = Column('c_Connection', Boolean)
- c_cameraStatus = Column('c_CameraStatus', String)
- c_domeStatus = Column('c_DomeStatus',String)
- c_mountStatus = Column('c_MountStatus',String)
- c_weather = Column('c_Weather',String)
- c_ra = Column('c_RA',Float)
- c_dec = Column('c_Dec',Float)
- c_expId = Column('c_ExpID', Integer, ForeignKey('exps.c_ExpID'))
- c_obsId = Column('c_ObsID', Integer, ForeignKey('obs.c_ObsID'))
- telescope = relation("Telescope", backref="status")
- exp = relation("Exp")
- obs = relation("Obs")
- class ExpBackup(DeclarativeBase):
- __tablename__ = 'exp_backups'
- # Column definitions
- backupId = Column('c_BackupID', Integer(), primary_key=True, nullable=False)
- expId = Column('c_ExpID', Integer(), nullable=False)
- diskId = Column('c_DiskID', Integer(), nullable=False)
- originalMd5 = Column('c_OriginalMD5', String(32), nullable=False)
- compressedMd5 = Column('c_CompressedMD5', String(32), nullable=False)
- originalSize = Column('c_OriginalSize', Integer(), nullable=False)
- compressedSize = Column('c_CompressedSize', Integer(), nullable=False)
- compressionRatio = Column('c_CompressionRatio', Float())
- lastChecked = Column('c_LastChecked', DateTime(), nullable=False)
- class Exp(DeclarativeBase):
- __tablename__ = 'exps'
- # Column definitions
- c_expId = Column('c_ExpID', Integer(), primary_key=True, nullable=False)
- c_obsId = Column('c_ObsID', Integer(), ForeignKey('obs.c_ObsID'), nullable=False)
- c_expNum = Column('c_ExpNum', Integer(), nullable=False)
- c_expLength = Column('c_ExpTime', Float(precision=None, asdecimal=True), nullable=False)
- c_filter = Column('c_Filter', String(length=100, convert_unicode=False, assert_unicode=None))
- c_state = Column('c_State', Integer(), nullable=False)
- c_type = Column('c_Type', Integer(), nullable=False)
- c_timeIn = Column('c_TimeIn', TIMESTAMP(timezone=False), nullable=False)
- c_path = Column('c_Path', String(length=100, convert_unicode=False, assert_unicode=None), nullable=False)
- c_numFileError = Column('c_NumFileError', String(length=100, convert_unicode=False, assert_unicode=None), nullable=False)
- c_priority = Column('c_Priority', Integer(), nullable=False)
- c_telescope = Column('c_Telescope', String(length=100, convert_unicode=False, assert_unicode=None), nullable=False)
- c_blockId = Column('c_BlockID', Integer(), nullable=False)
- c_startAfter = Column('c_StartAfter', DateTime(timezone=False))
- c_endBefore = Column('c_EndBefore', DateTime(timezone=False))
- c_timeTaken = Column('c_TimeTaken', DateTime(timezone=False))
- c_timeSubmitted = Column('c_TimeSubmitted', DateTime(timezone=False))
- c_timeArchived = Column('c_TimeArchived', DateTime(timezone=False))
- c_backupId = Column('c_BackupID', Integer(), ForeignKey('exp_backups.c_BackupID'))
- c_backupFailures = Column('c_BackupFailures', Integer())
- c_isCompressed = Column('c_IsCompressed', Boolean())
- # Relation definitions
- backup = relation("ExpBackup", backref="exp", uselist=False)
- c_primaryId = synonym('c_expId')
- validImageCriteria = (c_state == 2)
- def filename(self, format=None):
- expstr = "%03d" % self.c_expNum
- filename = "%s_%d_%s_%s.fits" % (self.obs.c_name,self.c_obsId,self.c_filter,expstr)
- return filename
- def relativePath(self, format=None):
- filename = self.filename(format);
- return os.path.join(self.obs.c_owner,str(self.c_obsId),filename)
- def absolutePath(self, format=None):
- return os.path.join(config.ROOT_DATA_PATH,self.relativePath(format))
- class Obs(DeclarativeBase):
- __tablename__ = 'obs'
- # column definitions
- c_currentTelescope = Column(u'c_CurrentTelescope', String(length=100, convert_unicode=False, assert_unicode=None), nullable=False)
- c_dec = Column(u'c_DEC', Float(precision=None, asdecimal=True), nullable=False)
- c_grbId = Column(u'c_GRB_ID', Integer(), nullable=False)
- c_maxAir = Column(u'c_MaxAir', Float(precision=None, asdecimal=True), nullable=False)
- c_maxSun = Column(u'c_MaxSun', Float(precision=None, asdecimal=True), nullable=False)
- c_mode = Column(u'c_Mode', Integer(), nullable=False)
- c_name = Column(u'c_Name', String(length=100, convert_unicode=False, assert_unicode=None), nullable=False)
- c_objectDist = Column(u'c_ObjectDist', Float(precision=None, asdecimal=False))
- c_objectName = Column(u'c_ObjectName', String(length=45, convert_unicode=False, assert_unicode=None), nullable=False)
- c_objectType = Column(u'c_ObjectType', Integer(), nullable=False)
- c_obsID = Column(u'c_ObsID', Integer(), primary_key=True, nullable=False)
- c_owner = Column(u'c_Owner', String(length=100, convert_unicode=False, assert_unicode=None), nullable=False)
- c_priority = Column(u'c_Priority', Integer(), nullable=False)
- c_ra = Column(u'c_RA', Float(precision=None, asdecimal=True), nullable=False)
- c_Tate = Column(u'c_State', Integer(), nullable=False)
- c_telescopes = Column(u'c_Telescopes', String(length=255, convert_unicode=False, assert_unicode=None), nullable=False)
- c_timeID = Column(u'c_TimeID', Integer(), nullable=False)
- c_timeIn = Column(u'c_TimeIn', TIMESTAMP(timezone=False), nullable=False)
- c_type = Column(u'c_Type', Integer(), nullable=False)
- c_user = Column(u'c_User', String(length=100, convert_unicode=False, assert_unicode=None), nullable=False)
- # relation definitions
- exps = relation(Exp, backref="obs")
- class Group(DeclarativeBase):
- __tablename__ = 'groups'
- #column definitions
- c_ID = Column('c_ID', String(length=100, convert_unicode=False, assert_unicode=None), primary_key=True, nullable=False)
- c_priority = Column(u'c_priority', Integer(), nullable=False)
- #relation definitions
- class User(DeclarativeBase):
- __tablename__ = 'users'
- #column definitions
- c_username = Column('c_userID', String, primary_key=True)
- c_password = Column(u'c_password', String)
- c_password_md5 = Column('c_password_md5', String)
- c_name = Column('c_name', String)
- #relation definitions
- class MasterCalibration(DeclarativeBase):
- __tablename__ = 'master_calibrations'
- #column definitions
- c_average = Column('average', Float(precision=None, asdecimal=True), nullable=False)
- c_combine_method = Column('combine_method', String(length=6, convert_unicode=False, assert_unicode=None), nullable=False)
- c_date = Column('date', DateTime(timezone=False), nullable=False)
- c_exp_length = Column('exp_length', Float(precision=None, asdecimal=True))
- c_filter = Column('filter', String(length=45, convert_unicode=False, assert_unicode=None))
- c_id = Column('id', Integer(), primary_key=True, nullable=False)
- c_image_type = Column('image_type', String(length=4, convert_unicode=False, assert_unicode=None), nullable=False)
- c_reject_method = Column('reject_method', String(length=9, convert_unicode=False, assert_unicode=None), nullable=False)
- c_scale_method = Column('scale_method', String(length=4, convert_unicode=False, assert_unicode=None), nullable=False)
- c_start_date = Column('start_date', DateTime(timezone=False), nullable=False)
- c_stdev = Column('stdev', Float(precision=None, asdecimal=True), nullable=False)
- c_stop_date = Column('stop_date', String(length=45, convert_unicode=False, assert_unicode=None), nullable=False)
- c_telescope = Column('telescope', String(length=100, convert_unicode=False, assert_unicode=None), nullable=False)
- #relation definitions
- c_primaryId = synonym('c_id')
- validImageCriteria = None
- def filename(self, format=None):
- expstr = "%03d" % self.c_id
- filename = "%s_m%s_%03d.fits" % ( self.c_telescope, self.c_image_type, self.c_id )
- return filename
- def relativePath(self, format=None):
- filename = self.filename(format);
- return os.path.join('',filename)
- def absolutePath(self, format=None):
- return os.path.join(config.ROOT_DATA_PATH,self.relativePath(format))
- typesToModel = {"r": Exp, "m": MasterCalibration}
- class ImageId():
- def __init__(self, value):
- if len(value) <= 1:
- raise InvalidImageId("%s is not a valid image id. Must be at least 2 characters" % value)
- self.type = typesToModel.get(value[0],None)
- if self.type is None:
- raise InvalidImageId("Unrecognized image type code for image: %s" % value)
- try:
- self.id = int(value[1:])
- except ValueError, e:
- raise InvalidImageId("Invalid integer value after image type code for image id: %s" % value)
- def get(self):
- sess.query(self.type).get(self.id)
- class InvalidImageId(Exception):
- def __init__(self, value):
- self.value = value
- def __str__(self):
- return repr(self.value)
- def normalizeImageId(imageId):
- """
- Given a string image id or an ImageId object, return an ImageId object.
- @raise InvalidImageId: if a bad parameter was given
- """
- imageIdObj = None
- if isinstance(imageId, str):
- return ImageId(imageId) # May throw InvalidImageId
- elif isinstance(imageId, ImageId):
- return imageId
- else:
- msg = "can't convert %s to image id" % repr(type(imageId))
- raise InvalidImageId(msg)
- def normalizeImageIdList(imageIds):
- """
- Given a list of image id strings or ImageId objects, return a list
- of valid ImageId objects, and a list of exceptions for invalid items
- For example:
- (imageIdObjs, errors) = normalizeImageIdList([ImageId("r1234"), "w2345"])
- """
- imageIdObjs = []
- errors = []
- for imageId in imageIds:
- try:
- imageIdObj = normalizeImageId(imageId)
- imageIdObjs.append(imageIdObj)
- except InvalidImageId, ex:
- errors.append(ex)
- return (imageIdObjs, errors)
- def modelObjsFromImageIds(imageIds):
- (imageIds, errors) = normalizeImageIdList(imageIds)
- modelObjs = []
- imageGroups = {}
- for imageId in imageIds:
- if imageId.type not in imageGroups:
- imageGroups[imageId.type] = []
- imageGroups[imageId.type].append(imageId)
- for modelClass in imageGroups:
- modelIds = imageGroups[modelClass]
- rawIds = [modelId.id for modelId in modelIds]
- q = sess.query(modelClass).filter(modelClass.validImageCriteria)
- q = q.filter(modelClass.c_primaryId.in_(rawIds))
- modelObjs.extend(q.all())
- return modelObjs
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement