Skip to content

Commit

Permalink
Re #4048 Minor cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
mdoucet committed Nov 8, 2011
1 parent 1f8a1cf commit 356d3e8
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,13 @@
HAS_MANTID = False

class DataSet(object):
def __init__(self, run_number, title, run_start, duration, ssd):
TABLE_NAME = "dataset"
def __init__(self, run_number, title, run_start, duration, sdd):
self.run_number = run_number
self.title = title
self.run_start = run_start
self.duration = duration
self.ssd = ssd
self.sdd = sdd

@classmethod
def header(cls):
Expand Down Expand Up @@ -55,19 +56,19 @@ def __str__(self):
"""
Pretty print the current data set attributes
"""
return "%-6s %-60s %-16s %-7g %-10.0f" % (self.run_number, self.title, self.run_start, self.duration, self.ssd)
return "%-6s %-60s %-16s %-7g %-10.0f" % (self.run_number, self.title, self.run_start, self.duration, self.sdd)

def as_list(self):
"""
Return a list of data set attributes
"""
return (self.run_number, self.title, self.run_start, self.duration, self.ssd)
return (self.run_number, self.title, self.run_start, self.duration, self.sdd)

def as_string_list(self):
"""
Return a list of data set attributes as strings
"""
return (str(self.run_number), self.title, self.run_start, "%-g"%self.duration, "%-10.0f"%self.ssd)
return (str(self.run_number), self.title, self.run_start, "%-g"%self.duration, "%-10.0f"%self.sdd)

@classmethod
def find(cls, file_path, cursor, process_files=True):
Expand All @@ -79,7 +80,7 @@ def find(cls, file_path, cursor, process_files=True):
return None

t = (run,)
cursor.execute('select * from dataset where run=?', t)
cursor.execute('select * from %s where run=?'% cls.TABLE_NAME, t)
rows = cursor.fetchall()

if len(rows) == 0:
Expand All @@ -93,7 +94,20 @@ def find(cls, file_path, cursor, process_files=True):
return None
else:
row = rows[0]
return DataSet(row[0], row[1], row[2], row[3], row[4])
return DataSet(row[1], row[2], row[3], row[4], row[5])

@classmethod
def create_table(cls, cursor):
cursor.execute("""create table if not exists %s (
id integer primary key,
run text unique,
title text,
start text,
duration real, sdd real)""" % cls.TABLE_NAME)

def insert_in_db(self, cursor):
t = (self.run_number, self.title, self.run_start, self.duration, self.sdd)
cursor.execute('insert into %s(run, title, start, duration,sdd) values (?,?,?,?,?)'%self.TABLE_NAME, t)

class DataCatalog(object):
"""
Expand All @@ -102,7 +116,7 @@ class DataCatalog(object):
extension = "nxs"
data_set_cls = DataSet

def __init__(self, replace_db=False):
def __init__(self, replace_db=True):
## List of data sets
self.catalog = []

Expand All @@ -123,20 +137,15 @@ def _create_db(self, db_path, replace_db):
"""
Create the database if we need to
"""
self.db_exists = False
if os.path.isfile(db_path):
if replace_db:
os.remove(db_path)
else:
self.db_exists = True

self.db = sqlite3.connect(db_path)
cursor = self.db.cursor()

if not self.db_exists:
cursor.execute("""create table dataset (run text, title text, start text, duration real, ssd real)""")
self.db.commit()
cursor.close()
self.data_set_cls.create_table(cursor)
self.db.commit()
cursor.close()

def __str__(self):
"""
Expand Down Expand Up @@ -205,6 +214,4 @@ def list_data_sets(self, data_dir=None, call_back=None, process_files=True):
if HAS_MANTID:
mtd.sendLogMessage("DataCatalog: Error working with the local data catalog\n%s" % sys.exc_value)
else:
raise

self.db_exists = True
raise
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,17 @@
HAS_MANTID = False

class EQSANSDataSet(BaseDataSet):
def __init__(self, run_number, title, run_start, duration, ssd):
super(EQSANSDataSet, self).__init__(run_number, title, run_start, duration, ssd)
TABLE_NAME="eqsans_dataset"
def __init__(self, run_number, title, run_start, duration, sdd):
super(EQSANSDataSet, self).__init__(run_number, title, run_start, duration, sdd)

@classmethod
def load_meta_data(cls, file_path, outputWorkspace):
if HAS_MANTID:
try:
mantidsimple.LoadEventNexus(file_path, OutputWorkspace=outputWorkspace, MetaDataOnly=True)
return True
except:
return False
try:
mantidsimple.LoadEventNexus(file_path, OutputWorkspace=outputWorkspace, MetaDataOnly=True)
return True
except:
return False

@classmethod
def handle(cls, file_path):
Expand Down Expand Up @@ -68,10 +68,10 @@ def read_series(prop):
duration = 0

sdd = read_series("detectorZ")

t = (runno, title, run_start, duration, sdd)
cursor.execute('insert into dataset values (?,?,?,?,?)', t)
return EQSANSDataSet(runno, title, run_start, duration, sdd)
d = EQSANSDataSet(runno, title, run_start, duration, sdd)
d.insert_in_db(cursor)
return d


class DataCatalog(BaseCatalog):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@
HAS_MANTID = False

class HFIRDataSet(BaseDataSet):
def __init__(self, run_number, title, run_start, duration, ssd):
super(HFIRDataSet, self).__init__(run_number, title, run_start, duration, ssd)
TABLE_NAME="hfir_dataset"
def __init__(self, run_number, title, run_start, duration, sdd):
super(HFIRDataSet, self).__init__(run_number, title, run_start, duration, sdd)

@classmethod
def load_meta_data(cls, file_path, outputWorkspace):
Expand All @@ -26,8 +27,6 @@ def load_meta_data(cls, file_path, outputWorkspace):
return True
except:
return False
import sys
print sys.exc_value

@classmethod
def handle(cls, file_path):
Expand Down Expand Up @@ -65,9 +64,9 @@ def read_series(prop):

sdd = float(read_prop("sample-detector-distance"))

t = (run, title, run_start, duration, sdd)
cursor.execute('insert into dataset values (?,?,?,?,?)', t)
return HFIRDataSet(run, title, run_start, duration, sdd)
d = HFIRDataSet(run, title, run_start, duration, sdd)
d.insert_in_db(cursor)
return d


class DataCatalog(BaseCatalog):
Expand Down

0 comments on commit 356d3e8

Please sign in to comment.