Skip to content

Commit

Permalink
Updates to how we order by date because postgres and sqlite are not c…
Browse files Browse the repository at this point in the history
…ompatible with direct date differences.
  • Loading branch information
cmccully committed Jan 13, 2025
1 parent 8fe8f7e commit 2b81b60
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions banzai/dbs.py
Original file line number Diff line number Diff line change
Expand Up @@ -361,19 +361,21 @@ def get_master_cal_record(image, calibration_type, master_selection_criteria, db

calibration_image = None
with get_session(db_address=db_address) as db_session:
order_func = func.abs(func.julianday(CalibrationImage.dateobs) - func.julianday(image.dateobs))
if prefer_same_block_cals:
block_criteria = CalibrationImage.blockid == image.blockid
image_filter = db_session.query(CalibrationImage).filter(calibration_criteria & block_criteria)
calibration_image = image_filter.order_by(func.abs(CalibrationImage.dateobs - image.dateobs)).first()
calibration_image = image_filter.order_by(order_func).first()
if calibration_image is None and prefer_same_proposal_cals:
proposal_criteria = CalibrationImage.proposal == image.proposal
image_filter = db_session.query(CalibrationImage).filter(calibration_criteria & proposal_criteria)
calibration_image = image_filter.order_by(func.abs(CalibrationImage.dateobs - image.dateobs)).first()
calibration_image = image_filter.order_by(order_func).first()
if check_public_cals:
calibration_criteria &= CalibrationImage.public_date <= datetime.datetime.now(datetime.UTC)
if calibration_image is None:
image_filter = db_session.query(CalibrationImage).filter(calibration_criteria)
calibration_image = image_filter.order_by(func.abs(CalibrationImage.dateobs - image.dateobs)).first()
calibration_image = image_filter.order_by(order_func).first()

return calibration_image


Expand Down

0 comments on commit 2b81b60

Please sign in to comment.