Skip to content

Commit

Permalink
Generalize database setup.
Browse files Browse the repository at this point in the history
The new code does not depend on AssociationDBSqliteTask, except
through duck-typing, making it easier to add new DB implementations
in the future.
  • Loading branch information
kfindeisen committed Oct 20, 2017
1 parent 03c7658 commit f008720
Showing 1 changed file with 8 additions and 11 deletions.
19 changes: 8 additions & 11 deletions python/lsst/ap/pipe/ap_pipe.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,7 @@
from lsst.utils import getPackageDir
from lsst.ip.diffim.getTemplate import GetCalexpAsTemplateTask
from lsst.pipe.tasks.imageDifference import ImageDifferenceConfig, ImageDifferenceTask
from lsst.ap.association import AssociationDBSqliteConfig, AssociationDBSqliteTask, \
AssociationConfig, AssociationTask
from lsst.ap.association import AssociationDBSqliteTask, AssociationConfig, AssociationTask
import lsst.daf.persistence as dafPersist

# Names of directories containing data products in dataset_root
Expand Down Expand Up @@ -635,21 +634,19 @@ def doDiffIm(processed_repo, dataId, template, diffim_repo):
return diffim_metadata


def _makeAssociationDb(dbFile):
def _setupDatabase(configurable):
'''
Sets up an association database at the given location.
Sets up a database according to a configuration.
Takes no action if the database already exists.
Parameters
----------
dbFile: `str`
File on disk containing an sqlite3 database for storing and loading
DIASources and DIAObjects.
configurable: `lsst.pex.config.ConfigurableInstance`
A ConfigurableInstance with a database-managing class in its `target`
field. The `target`'s API must expose a `create_tables` method.
'''
config = AssociationDBSqliteConfig()
config.db_name = dbFile
db = AssociationDBSqliteTask(config=config)
db = configurable.apply()
try:
db.create_tables()
finally:
Expand Down Expand Up @@ -709,7 +706,7 @@ def doAssociation(diffim_repo, dataId, db_repo):

butler = dafPersist.Butler(inputs=diffim_repo)

_makeAssociationDb(config.level1_db.db_name)
_setupDatabase(config.level1_db)

associationTask = AssociationTask(config=config)
try:
Expand Down

0 comments on commit f008720

Please sign in to comment.