LSSTApplications  10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Public Member Functions | Public Attributes | List of all members
lsst.pipe.tasks.ingest.RegistryContext Class Reference
Inheritance diagram for lsst.pipe.tasks.ingest.RegistryContext:

Public Member Functions

def __init__
 
def __enter__
 
def __exit__
 

Public Attributes

 registryName
 
 permissions
 
 updateName
 
 conn
 

Detailed Description

Context manager to provide a registry

An existing registry is copied, so that it may continue
to be used while we add to this new registry.  Finally,
the new registry is moved into the right place.

Definition at line 186 of file ingest.py.

Constructor & Destructor Documentation

def lsst.pipe.tasks.ingest.RegistryContext.__init__ (   self,
  registryName,
  createTableFunc,
  forceCreateTables,
  permissions 
)
Construct a context manager

@param registryName: Name of registry file
@param createTableFunc: Function to create tables

Definition at line 193 of file ingest.py.

194  def __init__(self, registryName, createTableFunc, forceCreateTables, permissions):
195  """Construct a context manager
196 
197  @param registryName: Name of registry file
198  @param createTableFunc: Function to create tables
199  """
200  self.registryName = registryName
201  self.permissions = permissions
202 
203  updateFile = tempfile.NamedTemporaryFile(prefix=registryName, dir=os.path.dirname(self.registryName),
204  delete=False)
205  self.updateName = updateFile.name
206 
207  haveTable = False
208  if os.path.exists(registryName):
209  assertCanCopy(registryName, self.updateName)
210  os.chmod(self.updateName, os.stat(registryName).st_mode)
211  shutil.copyfile(registryName, self.updateName)
212  haveTable = True
214  self.conn = sqlite3.connect(self.updateName)
215  if not haveTable or forceCreateTables:
216  createTableFunc(self.conn)
217  os.chmod(self.updateName, self.permissions)

Member Function Documentation

def lsst.pipe.tasks.ingest.RegistryContext.__enter__ (   self)
Provide the 'as' value

Definition at line 218 of file ingest.py.

219  def __enter__(self):
220  """Provide the 'as' value"""
221  return self.conn
def lsst.pipe.tasks.ingest.RegistryContext.__exit__ (   self,
  excType,
  excValue,
  traceback 
)

Definition at line 222 of file ingest.py.

223  def __exit__(self, excType, excValue, traceback):
224  self.conn.commit()
225  self.conn.close()
226  if excType is None:
228  if os.path.exists(self.registryName):
229  os.unlink(self.registryName)
230  os.rename(self.updateName, self.registryName)
231  os.chmod(self.registryName, self.permissions)
232  return False # Don't suppress any exceptions

Member Data Documentation

lsst.pipe.tasks.ingest.RegistryContext.conn

Definition at line 213 of file ingest.py.

lsst.pipe.tasks.ingest.RegistryContext.permissions

Definition at line 200 of file ingest.py.

lsst.pipe.tasks.ingest.RegistryContext.registryName

Definition at line 199 of file ingest.py.

lsst.pipe.tasks.ingest.RegistryContext.updateName

Definition at line 204 of file ingest.py.


The documentation for this class was generated from the following file: