Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.stsci.edu/spst/UnixTransition/doc/cdbs.py
Дата изменения: Fri Feb 28 14:46:08 2014
Дата индексирования: Sat Mar 1 12:22:26 2014
Кодировка:
#!/usr/bin/env python
# Module cdbs.py
#
# Report for reference files.
#
# Translated from Ron Downes' SQR by Don Chance
#
# Modification history:
# 08-22-2013 drc Initial translation.
#
import stpydb
import time_util

REFFILE_DB = 'reffile_ops_rep'

def get_ref_file_data(detector, file_type='DRK'):
if detector == 'STIS':
l = []
db = stpydb.stpydb(dbmsName=REFFILE_DB)
r = [{}]
db.query("select distinct file_name, useafter_date, opus_load_date, reference_file_type")
db.query("from stis_file")
db.query("where reference_file_type='%s'" % file_type)
db.query("and reject_flag='N'")
db.query("and useafter_date > '01-Jan-2001'")
db.query("and opus_load_date > '01-Jan-2002'")
db.executeAll(r)
for row in r:
row['useafter_date'] = time_util.spss_time(row['useafter_date'])
row['opus_load_date'] = time_util.spss_time(row['opus_load_date'])
l.append(row)
return l
elif detector == 'ACS':
l = []
db = stpydb.stpydb(dbmsName=REFFILE_DB)
r = [{}]
db.query("select distinct file_name, useafter_date, opus_load_date, reference_file_type")
db.query("from acs_file")
db.query("where reference_file_type='%s'" % file_type)
db.query("and reject_flag='N'")
db.query("and useafter_date > '07-Mar-2002'")
if file_type == 'BIA':
db.query("and ((opus_load_date < '28-Mar-2003') or (opus_load_date > '30-Mar-2003'))")
else:
db.query("and ((opus_load_date <= '27-Mar-2003') or (opus_load_date >= '29-Mar-2003'))")
db.query("and ((opus_load_date <= '07-Feb-2003') or (opus_load_date >= '09-Feb-2003'))")
db.query("and ((opus_load_date <= '24-Feb-2003') or (opus_load_date >= '26-Feb-2003'))")
db.query("and ((opus_load_date <= '21-Jan-2003') or (opus_load_date >= '23-Jan-2003'))")
db.query("and ((opus_load_date <= '20-Jan-2003') or (opus_load_date >= '31-Jan-2003'))")


db.executeAll(r)
for row in r:
row['useafter_date'] = time_util.spss_time(row['useafter_date'])
row['opus_load_date'] = time_util.spss_time(row['opus_load_date'])
l.append(row)
return l
else:
l = []
db = stpydb.stpydb(dbmsName=REFFILE_DB)
r = [{}]
db.query("select distinct file_name, useafter_date, opus_load_date, reference_file_type")
db.query("from wfc3_file")
db.query("where reference_file_type='%s'" % file_type)
db.query("and reject_flag='N'")
db.query("and useafter_date > '01-Jan-2008'")
db.query("and opus_load_date > '01-Jan-2009'")
db.executeAll(r)
for row in r:
row['useafter_date'] = time_util.spss_time(row['useafter_date'])
row['opus_load_date'] = time_util.spss_time(row['opus_load_date'])
l.append(row)
return l

def days_to_bin(days):
if days < 20:
return ' <20'
elif 20 <= days < 30:
return ' 020-029'
elif 30 <= days < 40:
return ' 030-039'
elif 40 <= days < 50:
return ' 040-049'
elif 50 <= days < 60:
return ' 050-059'
elif 60 <= days < 70:
return ' 060-069'
elif 70 <= days < 80:
return ' 070-079'
elif 80 <= days < 90:
return ' 080-089'
elif 90 <= days < 100:
return ' 090-099'
else:
return '100-1000'

def dates_to_days(t1, t2):
#return int(float(t2-t1)/86400.)
return int(float(t2)/86400.) - int(float(t1)/86400.)

def run():
"""Output a report on reference files.

"""
outfile = "cdbs.rpt"
now = time_util.spss_time()
outfileId = open(outfile, 'w')

outfileId.write('Filename Type USEAFTER OPUS_Load_Date Difference Year Bin Detector Report_Date\n')
for detector in ['STIS', 'ACS', 'WFC3']:
for file_type in ['DRK', 'BIA']:
ref_file_data = get_ref_file_data(detector, file_type)
for line in ref_file_data:
days = dates_to_days(line['useafter_date'], line['opus_load_date'])
outfileId.write('%9s %3s %11s %11s %4i %4s %8s %6s %s\n' % (line['file_name'][:9],
file_type,
line['useafter_date'].strftime('%b %d %Y'),
line['opus_load_date'].strftime('%b %d %Y'),
days,
line['opus_load_date'].strftime('%Y'),
days_to_bin(days),
detector,
now.strftime('%d-%b-%Y')))

print "Output sent to file", outfile


if __name__ == '__main__':
run()