astro.main.ObservingBlock (version @(#)$Revision: 1.29 $)
index
/astro-wise/AWEHOME/AWBASE/astro/main/ObservingBlock.py

ObservingBlockTemplate; classes describing these ESO structures.

 
Modules
       
datetime

 
Classes
       
common.database.DBMain.DBObject(__builtin__.object)
ObservingBlock
Template

 
class ObservingBlock(common.database.DBMain.DBObject)
    This class represents a set of data that belong together.
 
Note:
  Several (OmegaCAM/ESO) header items start with "OBS", but are not
  natural attributes of ObservingBlock, but instead of Template. These
  are OBS_STRTG, OBS_TPLNO.
 
 
Method resolution order:
ObservingBlock
common.database.DBMain.DBObject
__builtin__.object

Methods defined here:
copy(self)
query_identical(self)
Query the database for ObservingBlock objects with identical
properties and return them.
update_header(self, header)

Data descriptors defined here:
PI_COI_id
ESO internal PI-COI ID [None]
PI_COI_name
ESO internal PI-COI name [None]
dictionary_id
OBS Dictionary
group
Linked blocks
id
The identifier of the observing block [None]
name
The name of the observing block [None]
object_id
The object identifier
 
The object identifier is an attribute shared by all persistent
instances. It is the prime key, by which object identity is established
program_id
The program identifier [None]
start
The date/time when the observing block was started [None]
templates
Attribute to store the templates

Methods inherited from common.database.DBMain.DBObject:
__del__(self)
Destructor for the DBObject
 
This destructor is called by the garbage collector for the transient
part of the DBObject. When it is called it calls the gc_transient()
method of the DBProxy implementation. The implementation of the
gc_transient() method can then decide what to do with the persistent
counterpart.
E.g. the database can be synchronized with its transient counterpart.
Another possibility is that the gc_transient() implementation checks
whether any attributes of a read-only object have changed since an
object was fetched from the database. If there are differences an
exception can be raised.
__reduce__(self)
Method necessary to create picklable objects
 
This mehod return a tuple containg a function object used for
unpickling and a picklable state tuple, to be used as argument
to the unpickle function. If necessary this object is registered
in the pickle cache
as_dict(self, seqnr=1, dependency_name='', dictionary={}, allow_lazy_typed_list=False)
Method much like the info method, but returns a dictionary.
 
Dictionary looks like:
  {'<classname>.<property1_name>.<property2_name>': value,
   '<classname>.<property2_name>.<property3_name>': value}
 
Problem: infinite loops for cold/flat dependencies. It seems a maximum
recursion depth limits the problem.
commit(self)
Commits object including objects that are referenced and have been changed.
 
If this object refers to other persistent object a commit() ensures that
 
1. ALL changes to the object and referred objects are made persistent.
2. NONE of the changed object and referred objects are made persistent.
Under normal circumstances only the first thing should ever happen.
If the second case occurs it is almost certainly because of some bug in
the routine that implements the DBProxy interface.
get_creator(self)
Returns the name of the user who created this object.
get_persistent(self)
get_project(self)
Returns the name of the project to which this object belongs.
info(self, level=0, doc=False, _indent=0, _printclass=True)
Print the values of all persistent properties of the object.
 
level       : level of introspection
doc         : display docstrings for attributes
_indent     : internal parameter used for formatting
_printclass : internal parameter used for formatting
inverse_objects(self, max_results=100)
Iterate through and return all objects that use the current object
max_results     The maximum number of objects returned per query
inverse_query(self)
go through all inverse properties to see if this object is used
persists(self)
Returns whether an object is already made persistent or transient.
recommit(self)
Commits changes to an object, without following links.

Class methods inherited from common.database.DBMain.DBObject:
get_inverse_properties(cls, props=None) from common.database.DBMeta.DBObjectMeta
return all inverse properties 
that are all the properties that point to this class

Data descriptors inherited from common.database.DBMain.DBObject:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

Data and other attributes inherited from common.database.DBMain.DBObject:
__metaclass__ = <class 'common.database.DBMeta.DBObjectMeta'>
This is the metaclass for persistent classes
 
Provides:
  __new__ -- manages class construction
  __call__ -- manages object instantiation
database = <common.database.DBOracle.DBProxy instance at 0x2aaab892f518>
pickle_id = None

 
class Template(common.database.DBMain.DBObject)
    This class describes a single template within an observing block.
 
Notes:
  1) OBS_TPLNO is added as "index", it is not a property of
     ObservingBlock in an OOP sense, but of Template.
  2) OBS_STRTG is added as "strategy" for the same reasons as 1)
  3) DPR_CATG, DPR_TECH and DPR_TYPE are added here because this is their
     natural place, again from an OOP perspective. Also note that DPR_TECH
     has superceeded the OBSMODE header item.
 
 
Method resolution order:
Template
common.database.DBMain.DBObject
__builtin__.object

Methods defined here:
copy(self)
query_identical(self)
Query the database for Template objects that have identical
persistent properties and return them.
update_header(self, header)

Data descriptors defined here:
category
Observation category [None]
dictionary_id
Data dictionary for TPL [None]
exposures
Number of exposures within the template [None]
filter
Information about the filter [None]
id
Template signature ID [None]
index
Template index within the observing block [None]
name
Template name [None]
object_id
The object identifier
 
The object identifier is an attribute shared by all persistent
instances. It is the prime key, by which object identity is established
obs_id
The (ESO) identifier of the observing block [None]
obs_start
The date/time when the observing block was started [None]
observing_block
Attribute to store the ObservingBlock
sequencer
ESO Sequencer script [None]
start
The date/time when the template was started [None]
strategy
Observing strategy [None]
technique
Observation technique [None]
type
Observation type [None]
version
The version of the template

Methods inherited from common.database.DBMain.DBObject:
__del__(self)
Destructor for the DBObject
 
This destructor is called by the garbage collector for the transient
part of the DBObject. When it is called it calls the gc_transient()
method of the DBProxy implementation. The implementation of the
gc_transient() method can then decide what to do with the persistent
counterpart.
E.g. the database can be synchronized with its transient counterpart.
Another possibility is that the gc_transient() implementation checks
whether any attributes of a read-only object have changed since an
object was fetched from the database. If there are differences an
exception can be raised.
__reduce__(self)
Method necessary to create picklable objects
 
This mehod return a tuple containg a function object used for
unpickling and a picklable state tuple, to be used as argument
to the unpickle function. If necessary this object is registered
in the pickle cache
as_dict(self, seqnr=1, dependency_name='', dictionary={}, allow_lazy_typed_list=False)
Method much like the info method, but returns a dictionary.
 
Dictionary looks like:
  {'<classname>.<property1_name>.<property2_name>': value,
   '<classname>.<property2_name>.<property3_name>': value}
 
Problem: infinite loops for cold/flat dependencies. It seems a maximum
recursion depth limits the problem.
commit(self)
Commits object including objects that are referenced and have been changed.
 
If this object refers to other persistent object a commit() ensures that
 
1. ALL changes to the object and referred objects are made persistent.
2. NONE of the changed object and referred objects are made persistent.
Under normal circumstances only the first thing should ever happen.
If the second case occurs it is almost certainly because of some bug in
the routine that implements the DBProxy interface.
get_creator(self)
Returns the name of the user who created this object.
get_persistent(self)
get_project(self)
Returns the name of the project to which this object belongs.
info(self, level=0, doc=False, _indent=0, _printclass=True)
Print the values of all persistent properties of the object.
 
level       : level of introspection
doc         : display docstrings for attributes
_indent     : internal parameter used for formatting
_printclass : internal parameter used for formatting
inverse_objects(self, max_results=100)
Iterate through and return all objects that use the current object
max_results     The maximum number of objects returned per query
inverse_query(self)
go through all inverse properties to see if this object is used
persists(self)
Returns whether an object is already made persistent or transient.
recommit(self)
Commits changes to an object, without following links.

Class methods inherited from common.database.DBMain.DBObject:
get_inverse_properties(cls, props=None) from common.database.DBMeta.DBObjectMeta
return all inverse properties 
that are all the properties that point to this class

Data descriptors inherited from common.database.DBMain.DBObject:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

Data and other attributes inherited from common.database.DBMain.DBObject:
__metaclass__ = <class 'common.database.DBMeta.DBObjectMeta'>
This is the metaclass for persistent classes
 
Provides:
  __new__ -- manages class construction
  __call__ -- manages object instantiation
database = <common.database.DBOracle.DBProxy instance at 0x2aaab892f518>
pickle_id = None

 
Data
        __version__ = '@(#)$Revision: 1.29 $'