Advertisement
Guest User

Untitled

a guest
May 2nd, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 11.97 KB | None | 0 0
  1. # autogenerated by sqlautocode, with manual modifications
  2.  
  3. import sqlalchemy as sa
  4. from sqlalchemy import orm
  5. from sqlalchemy import Column, Float, String, Boolean, ForeignKey, Integer, DateTime
  6. from sqlalchemy.types import TIMESTAMP
  7. from sqlalchemy.ext.declarative import declarative_base
  8. from sqlalchemy import schema, types
  9. from sqlalchemy.orm import relation
  10.  
  11. DeclarativeBase = declarative_base()
  12.  
  13. class Site(DeclarativeBase):
  14.     __tablename__ = 'sites'
  15.  
  16.     c_name = Column('c_Name', String, primary_key=True)    
  17.     c_latitude = Column('c_Latitude', Float)
  18.     c_longitude = Column('c_Longitude', Float)
  19.  
  20.     telescopes = relation("Telescope", backref="site")
  21.    
  22. class Telescope(DeclarativeBase):
  23.     __tablename__ = 'telescopes'
  24.    
  25.     c_name = Column('c_Name', String, primary_key=True)
  26.     c_filters = Column('c_Filters', String)
  27.     c_siteName = Column('c_SiteName', String, ForeignKey('sites.c_Name'))
  28.    
  29.     @property
  30.     def filters(self):
  31.         tempResults = self.c_filters.split(',')
  32.         results = []
  33.         for tempResult in tempResults:
  34.             if tempResult.strip() != '':
  35.                 results.append(tempResult)
  36.                
  37.         return results
  38.        
  39. class TeleStatus(DeclarativeBase):
  40.     __tablename__ = 'tele_status'
  41.    
  42.     c_name = Column('c_Name', String, ForeignKey('telescopes.c_Name'),primary_key=True)
  43.     c_connection = Column('c_Connection', Boolean)
  44.     c_cameraStatus = Column('c_CameraStatus', String)
  45.     c_domeStatus = Column('c_DomeStatus',String)
  46.     c_mountStatus = Column('c_MountStatus',String)
  47.     c_weather = Column('c_Weather',String)
  48.     c_ra = Column('c_RA',Float)
  49.     c_dec = Column('c_Dec',Float)
  50.     c_expId = Column('c_ExpID', Integer, ForeignKey('exps.c_ExpID'))
  51.     c_obsId = Column('c_ObsID', Integer, ForeignKey('obs.c_ObsID'))
  52.     telescope = relation("Telescope", backref="status")
  53.     exp = relation("Exp")
  54.     obs = relation("Obs")
  55.  
  56. class ExpBackup(DeclarativeBase):
  57.     __tablename__ = 'exp_backups'
  58.  
  59.     # Column definitions
  60.     backupId = Column('c_BackupID', Integer(), primary_key=True, nullable=False)
  61.     expId = Column('c_ExpID', Integer(), nullable=False)
  62.     diskId = Column('c_DiskID', Integer(), nullable=False)
  63.     originalMd5 = Column('c_OriginalMD5', String(32), nullable=False)
  64.     compressedMd5 = Column('c_CompressedMD5', String(32), nullable=False)
  65.     originalSize = Column('c_OriginalSize', Integer(), nullable=False)
  66.     compressedSize = Column('c_CompressedSize', Integer(), nullable=False)
  67.     compressionRatio = Column('c_CompressionRatio', Float())
  68.     lastChecked = Column('c_LastChecked', DateTime(), nullable=False)
  69.    
  70. class Exp(DeclarativeBase):
  71.     __tablename__ = 'exps'
  72.  
  73.     # Column definitions
  74.     c_expId = Column('c_ExpID', Integer(), primary_key=True, nullable=False)
  75.     c_obsId = Column('c_ObsID', Integer(), ForeignKey('obs.c_ObsID'), nullable=False)
  76.     c_expNum = Column('c_ExpNum', Integer(), nullable=False)
  77.     c_expLength = Column('c_ExpTime', Float(precision=None, asdecimal=True), nullable=False)
  78.     c_filter = Column('c_Filter', String(length=100, convert_unicode=False, assert_unicode=None))
  79.     c_state = Column('c_State', Integer(), nullable=False)
  80.     c_type = Column('c_Type', Integer(), nullable=False)
  81.     c_timeIn = Column('c_TimeIn', TIMESTAMP(timezone=False), nullable=False)
  82.     c_path = Column('c_Path', String(length=100, convert_unicode=False, assert_unicode=None), nullable=False)
  83.     c_numFileError = Column('c_NumFileError', String(length=100, convert_unicode=False, assert_unicode=None), nullable=False)
  84.     c_priority = Column('c_Priority', Integer(), nullable=False)
  85.     c_telescope = Column('c_Telescope', String(length=100, convert_unicode=False, assert_unicode=None), nullable=False)
  86.     c_blockId = Column('c_BlockID', Integer(), nullable=False)
  87.     c_startAfter = Column('c_StartAfter', DateTime(timezone=False))
  88.     c_endBefore = Column('c_EndBefore', DateTime(timezone=False))
  89.     c_timeTaken = Column('c_TimeTaken', DateTime(timezone=False))
  90.     c_timeSubmitted = Column('c_TimeSubmitted', DateTime(timezone=False))
  91.     c_timeArchived = Column('c_TimeArchived', DateTime(timezone=False))
  92.     c_backupId = Column('c_BackupID', Integer(), ForeignKey('exp_backups.c_BackupID'))
  93.     c_backupFailures = Column('c_BackupFailures', Integer())
  94.     c_isCompressed = Column('c_IsCompressed', Boolean())
  95.  
  96.     # Relation definitions
  97.     backup = relation("ExpBackup", backref="exp", uselist=False)
  98.  
  99.     @property
  100.     def c_primaryId():
  101.         return c_expId
  102.  
  103.     def filename(self, format=None):
  104.         expstr = "%03d" % self.c_expNum
  105.         filename =  "%s_%d_%s_%s.fits" % (self.obs.c_name,self.c_obsId,self.c_filter,expstr)
  106.         return filename
  107.    
  108.     def relativePath(self, format=None):
  109.         filename = self.filename(format);
  110.         return os.path.join(self.obs.c_owner,str(self.c_obsId),filename)
  111.        
  112.     def absolutePath(self, format=None):
  113.         return os.path.join(config.ROOT_DATA_PATH,self.relativePath(format))
  114.        
  115.        
  116.    
  117.    
  118. class Obs(DeclarativeBase):
  119.     __tablename__ = 'obs'
  120.  
  121.     # column definitions
  122.     c_currentTelescope = Column(u'c_CurrentTelescope', String(length=100, convert_unicode=False, assert_unicode=None), nullable=False)
  123.     c_dec = Column(u'c_DEC', Float(precision=None, asdecimal=True), nullable=False)
  124.     c_grbId = Column(u'c_GRB_ID', Integer(), nullable=False)
  125.     c_maxAir = Column(u'c_MaxAir', Float(precision=None, asdecimal=True), nullable=False)
  126.     c_maxSun = Column(u'c_MaxSun', Float(precision=None, asdecimal=True), nullable=False)
  127.     c_mode = Column(u'c_Mode', Integer(), nullable=False)
  128.     c_name = Column(u'c_Name', String(length=100, convert_unicode=False, assert_unicode=None), nullable=False)
  129.     c_objectDist = Column(u'c_ObjectDist', Float(precision=None, asdecimal=False))
  130.     c_objectName = Column(u'c_ObjectName', String(length=45, convert_unicode=False, assert_unicode=None), nullable=False)
  131.     c_objectType = Column(u'c_ObjectType', Integer(), nullable=False)
  132.     c_obsID = Column(u'c_ObsID', Integer(), primary_key=True, nullable=False)
  133.     c_owner = Column(u'c_Owner', String(length=100, convert_unicode=False, assert_unicode=None), nullable=False)
  134.     c_priority = Column(u'c_Priority', Integer(), nullable=False)
  135.     c_ra = Column(u'c_RA', Float(precision=None, asdecimal=True), nullable=False)
  136.     c_Tate = Column(u'c_State', Integer(), nullable=False)
  137.     c_telescopes = Column(u'c_Telescopes', String(length=255, convert_unicode=False, assert_unicode=None), nullable=False)
  138.     c_timeID = Column(u'c_TimeID', Integer(), nullable=False)
  139.     c_timeIn = Column(u'c_TimeIn', TIMESTAMP(timezone=False), nullable=False)
  140.     c_type = Column(u'c_Type', Integer(), nullable=False)
  141.     c_user = Column(u'c_User', String(length=100, convert_unicode=False, assert_unicode=None), nullable=False)
  142.  
  143.     # relation definitions
  144.     exps = relation(Exp, backref="obs")
  145.  
  146.    
  147.    
  148.  
  149. class Group(DeclarativeBase):
  150.     __tablename__ = 'groups'
  151.  
  152.     #column definitions
  153.     c_ID = Column('c_ID', String(length=100, convert_unicode=False, assert_unicode=None), primary_key=True, nullable=False)
  154.     c_priority = Column(u'c_priority', Integer(), nullable=False)
  155.  
  156.     #relation definitions
  157.    
  158. class User(DeclarativeBase):
  159.     __tablename__ = 'users'
  160.  
  161.     #column definitions
  162.     c_username = Column('c_userID', String, primary_key=True)
  163.     c_password = Column(u'c_password', String)
  164.     c_password_md5 = Column('c_password_md5', String)
  165.     c_name = Column('c_name', String)
  166.  
  167.     #relation definitions
  168.    
  169. class MasterCalibration(DeclarativeBase):
  170.     __tablename__ = 'master_calibrations'
  171.  
  172.     #column definitions
  173.     c_average = Column('average', Float(precision=None, asdecimal=True), nullable=False)
  174.     c_combine_method = Column('combine_method', String(length=6, convert_unicode=False, assert_unicode=None), nullable=False)
  175.     c_date = Column('date', DateTime(timezone=False), nullable=False)
  176.     c_exp_length = Column('exp_length', Float(precision=None, asdecimal=True))
  177.     c_filter = Column('filter', String(length=45, convert_unicode=False, assert_unicode=None))
  178.     c_id = Column('id', Integer(), primary_key=True, nullable=False)
  179.     c_image_type = Column('image_type', String(length=4, convert_unicode=False, assert_unicode=None), nullable=False)
  180.     c_reject_method = Column('reject_method', String(length=9, convert_unicode=False, assert_unicode=None), nullable=False)
  181.     c_scale_method = Column('scale_method', String(length=4, convert_unicode=False, assert_unicode=None), nullable=False)
  182.     c_start_date = Column('start_date', DateTime(timezone=False), nullable=False)
  183.     c_stdev = Column('stdev', Float(precision=None, asdecimal=True), nullable=False)
  184.     c_stop_date = Column('stop_date', String(length=45, convert_unicode=False, assert_unicode=None), nullable=False)
  185.     c_telescope = Column('telescope', String(length=100, convert_unicode=False, assert_unicode=None), nullable=False)
  186.  
  187.     #relation definitions
  188.  
  189.     @property
  190.     def c_primaryId():
  191.         return c_id
  192.        
  193.     def filename(self, format=None):
  194.         expstr = "%03d" % self.c_id
  195.         filename =  "%s_m%s_%03d.fits" % ( self.c_telescope, self.c_image_type, self.c_id )
  196.         return filename
  197.    
  198.     def relativePath(self, format=None):
  199.         filename = self.filename(format);
  200.         return os.path.join('',filename)
  201.        
  202.     def absolutePath(self, format=None):
  203.         return os.path.join(config.ROOT_DATA_PATH,self.relativePath(format))
  204.        
  205.        
  206. class ImageId():
  207.     def __init__(self, value):
  208.         if len(value) <= 1:
  209.             raise InvalidImageId("%s is not a valid image id. Must be at least 2 characters" % value)
  210.        
  211.         self.type = typesToModel.get(value[0],None)
  212.        
  213.         if self.type is None:
  214.             raise InvalidImageId("Unrecognized image type code for image: %s" % value)
  215.        
  216.         try:
  217.             self.id = int(value[1:])
  218.         except ValueError, e:
  219.             raise InvalidImageId("Invalid integer value after image type code for image id: %s" % value)
  220.            
  221.     def get(self):
  222.         sess.query(self.type).get(self.id)
  223.        
  224. class InvalidImageId(Exception):
  225.     def __init__(self, value):
  226.         self.value = value
  227.     def __str__(self):
  228.         return repr(self.value)
  229.        
  230. def normalizeImageId(imageId):
  231.     """
  232.    Given a string image id or an ImageId object, return an ImageId object.
  233.  
  234.    @raise InvalidImageId: if a bad parameter was given
  235.    """
  236.  
  237.     imageIdObj = None
  238.  
  239.     if isinstance(imageId, str):
  240.         return ImageId(imageId) # May throw InvalidImageId
  241.     elif isinstance(imageId, ImageId):
  242.         return imageId
  243.     else:
  244.         msg = "can't convert %s to image id" % repr(type(imageId))
  245.         raise InvalidImageId(msg)
  246.  
  247. def normalizeImageIdList(imageIds):
  248.     """
  249.    Given a list of image id strings or ImageId objects, return a list
  250.    of valid ImageId objects, and a list of exceptions for invalid items
  251.  
  252.    For example:
  253.    (imageIdObjs, errors) = normalizeImageIdList([ImageId("r1234"), "w2345"])
  254.    """
  255.  
  256.     imageIdObjs = []
  257.     errors = []
  258.  
  259.     for imageId in imageIds:
  260.         try:
  261.             imageIdObj = normalizeImageId(imageId)
  262.             imageIdObjs.append(imageIdObj)
  263.         except InvalidImageId, ex:
  264.             errors.append(ex)
  265.  
  266.     return (imageIdObjs, errors)
  267.  
  268.        
  269. def modelObjsFromImageIds(imageIds):
  270.     (imageIds, errors) = normalizeImageIdList(imageIds)
  271.  
  272.     modelObjs = []
  273.  
  274.     imageGroups = {}
  275.  
  276.     for imageId in imageIds:
  277.         if imageId.type not in imageGroups:
  278.             imageGroups[imageId.type] = []
  279.         imageGroups[imageId.type].append(imageId)
  280.  
  281.     for modelClass in imageGroups:
  282.         modelIds = imageGroups[modelClass]
  283.         rawIds = [modelId.id for modelId in modelIds]
  284.  
  285.         q = sess.query(modelClass).filter(modelClass.validImageCriteria)
  286.         q = q.filter(modelClass.c_primaryId.in_(rawIds))
  287.         modelObjs.extend(q.all())
  288.  
  289.     return modelObjs
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement