def from_segment_list_dict(cls, description, segmentlistdict,
                               ifo_list=None, valid_segment=None,
                               file_exists=False, seg_summ_dict=None,
                               **kwargs):
        """ Initialize a SegFile object from a segmentlistdict.

        Parameters
        ------------
        description : string (required)
            See File.__init__
        segmentlistdict : ligo.segments.segmentslistdict
            See SegFile.__init__
        ifo_list : string or list (optional)
            See File.__init__, if not given a list of all ifos in the
            segmentlistdict object will be used
        valid_segment : ligo.segments.segment or ligo.segments.segmentlist
            See File.__init__, if not given the extent of all segments in the
            segmentlistdict is used.
        file_exists : boolean (default = False)
            If provided and set to True it is assumed that this file already
            exists on disk and so there is no need to write again.
        seg_summ_dict : ligo.segments.segmentslistdict
            Optional. See SegFile.__init__.
        """
        if ifo_list is None:
            ifo_set = set([i.split(':')[0] for i in segmentlistdict.keys()])
            ifo_list = list(ifo_set)
            ifo_list.sort()
        if valid_segment is None:
            if seg_summ_dict and \
                    numpy.any([len(v) for _, v in seg_summ_dict.items()]):
                # Only come here if seg_summ_dict is supplied and it is
                # not empty.
                valid_segment = seg_summ_dict.extent_all()
            else:
                try:
                    valid_segment = segmentlistdict.extent_all()
                except:
                    # Numpty probably didn't supply a glue.segmentlistdict
                    segmentlistdict=segments.segmentlistdict(segmentlistdict)
                    try:
                        valid_segment = segmentlistdict.extent_all()
                    except ValueError:
                        # No segment_summary and segment list is empty
                        # Setting valid segment now is hard!
                        warn_msg = "No information with which to set valid "
                        warn_msg += "segment."
                        logging.warn(warn_msg)
                        valid_segment = segments.segment([0,1])
        instnc = cls(ifo_list, description, valid_segment,
                     segment_dict=segmentlistdict, seg_summ_dict=seg_summ_dict,
                     **kwargs)
        if not file_exists:
            instnc.to_segment_xml()
        else:
            instnc.PFN(urlparse.urljoin('file:',
                       urllib.pathname2url(
                       instnc.storage_path)), site='local')
        return instnc
def from_segment_list_dict ( cls , description , segmentlistdict , ifo_list = None , valid_segment = None , file_exists = False , seg_summ_dict = None , ** kwargs ) : if ifo_list is None : ifo_set = set ( [ i . split ( ':' ) [ 0 ] for i in segmentlistdict . keys ( ) ] ) ifo_list = list ( ifo_set ) ifo_list . sort ( ) if valid_segment is None : if seg_summ_dict and numpy . any ( [ len ( v ) for _ , v in seg_summ_dict . items ( ) ] ) : valid_segment = seg_summ_dict . extent_all ( ) else : try : valid_segment = segmentlistdict . extent_all ( ) except : segmentlistdict = segments . segmentlistdict ( segmentlistdict ) try : valid_segment = segmentlistdict . extent_all ( ) except ValueError : warn_msg = "No information with which to set valid " warn_msg += "segment." logging . warn ( warn_msg ) valid_segment = segments . segment ( [ 0 , 1 ] ) instnc = cls ( ifo_list , description , valid_segment , segment_dict = segmentlistdict , seg_summ_dict = seg_summ_dict , ** kwargs ) if not file_exists : instnc . to_segment_xml ( ) else : instnc . PFN ( urlparse . urljoin ( 'file:' , urllib . pathname2url ( instnc . storage_path ) ) , site = 'local' ) return instnc
Initialize a SegFile object from a segmentlistdict.

        Parameters
        ------------
        description : string (required)
            See File.__init__
        segmentlistdict : ligo.segments.segmentslistdict
            See SegFile.__init__
        ifo_list : string or list (optional)
            See File.__init__, if not given a list of all ifos in the
            segmentlistdict object will be used
        valid_segment : ligo.segments.segment or ligo.segments.segmentlist
            See File.__init__, if not given the extent of all segments in the
            segmentlistdict is used.
        file_exists : boolean (default = False)
            If provided and set to True it is assumed that this file already
            exists on disk and so there is no need to write again.
        seg_summ_dict : ligo.segments.segmentslistdict
            Optional. See SegFile.__init__.