import sys from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sfa.util.config import Config from sfa.util.sfalogging import logger from sqlalchemy import Column, Integer, String from sqlalchemy import Table, Column, MetaData from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.dialects import postgresql from sqlalchemy import MetaData, Table from sqlalchemy.exc import NoSuchTableError from sqlalchemy import String #Dict holding the columns names of the table as keys #and their type, used for creation of the table slice_table = {'record_id_user':'integer PRIMARY KEY references X ON DELETE \ CASCADE ON UPDATE CASCADE','oar_job_id':'integer DEFAULT -1', \ 'record_id_slice':'integer', 'slice_hrn':'text NOT NULL'} #Dict with all the specific senslab tables tablenames_dict = {'slice_senslab': slice_table} ############################## SlabBase = declarative_base() class SliceSenslab (SlabBase): __tablename__ = 'slice_senslab' #record_id_user = Column(Integer, primary_key=True) slice_hrn = Column(String, primary_key=True) peer_authority = Column(String, nullable = True) record_id_slice = Column(Integer) record_id_user = Column(Integer) #oar_job_id = Column( Integer,default = -1) #node_list = Column(postgresql.ARRAY(String), nullable =True) def __init__ (self, slice_hrn =None, record_id_slice=None, \ record_id_user= None,peer_authority=None): """ Defines a row of the slice_senslab table """ if record_id_slice: self.record_id_slice = record_id_slice if slice_hrn: self.slice_hrn = slice_hrn if record_id_user: self.record_id_user= record_id_user if peer_authority: self.peer_authority = peer_authority def __repr__(self): """Prints the SQLAlchemy record to the format defined by the function. """ result="