|  | 
| def | __init__ (self, *args, **kwargs) | 
|  | 
| def | logical_not (self) | 
|  | 
| def | logical_or (cls, *rhs_iovsets) | 
|  | 
| def | logical_and (cls, *rhs_iovsets) | 
|  | 
| def | __or__ (self, rhs) | 
|  | 
| def | __and__ (self, rhs) | 
|  | 
| def | from_iovsets (cls, iovsets) | 
|  | 
| def | connect_adjacent (self) | 
|  | 
| def | pprint (self, where=stdout) | 
|  | 
| def | ordered (self) | 
|  | 
| def | to_file (self, filename) | 
|  | 
| def | from_file (cls, filename) | 
|  | 
| def | from_grl_string (cls, data) | 
|  | 
| def | from_grl (cls, filename) | 
|  | 
| def | to_grl_string (self, name="unknown", version="unknown") | 
|  | 
| def | to_grl (self, filename, name="unknown", version="unknown") | 
|  | 
| def | from_runs (cls, runs) | 
|  | 
| def | chans_iovsets (self) | 
|  | 
| def | empty (self, content=None) | 
|  | 
| def | empty_maker (self) | 
|  | 
| def | __reduce__ (self) | 
|  | 
| def | __hash__ (self) | 
|  | 
| def | __repr__ (self) | 
|  | 
| def | add (self, since, until, *args) | 
|  | 
| def | solidify (self, iov_type) | 
|  | 
| def | trim_iovs (self) | 
|  | 
| def | add_old (self, iov) | 
|  | 
| def | time_based (self) | 
|  | 
| def | lb_counts (self) | 
|  | 
| def | duration (self) | 
|  | 
| def | __getslice__ (self, *args) | 
|  | 
| def | runs (self) | 
|  | 
| def | by_run (self) | 
|  | 
| def | channels (self) | 
|  | 
| def | by_channel (self) | 
|  | 
| def | first (self) | 
|  | 
| def | last (self) | 
|  | 
| def | range_iov (self) | 
|  | 
| def | intersect_range (self, iov_range) | 
|  | 
| def | select_runs (self, *selected) | 
|  | 
| def | select_channels (self, *selected) | 
|  | 
| def | select (self, **what) | 
|  | 
Definition at line 22 of file iovset.py.
 
◆ __init__()
      
        
          | def python.sugar.iovset.IOVSet.__init__ | ( |  | self, | 
        
          |  |  | * | args, | 
        
          |  |  | ** | kwargs | 
        
          |  | ) |  |  | 
      
 
Definition at line 23 of file iovset.py.
   24         self.iov_type = kwargs.pop(
"iov_type", 
None)
 
   25         self.origin = kwargs.pop(
"origin", 
None)
 
   26         self.parent = kwargs.pop(
"parent", 
None)
 
   27         from sys 
import _getframe
 
   29         self.constructed_at = 
"%s:%i" % (f.f_code.co_filename, f.f_lineno)
 
   30         super(IOVSet, self).
__init__(*args, **kwargs)
 
   31         if self.iov_type 
is None and self:
 
   32             self.iov_type = 
type(self.first)
 
 
 
 
◆ __and__()
      
        
          | def python.sugar.iovset.IOVSet.__and__ | ( |  | self, | 
        
          |  |  |  | rhs | 
        
          |  | ) |  |  | 
      
 
Definition at line 72 of file iovset.py.
   72     def __and__(self, rhs):
 
   74         return self.logical_and(self, rhs)
 
 
 
◆ __getslice__()
      
        
          | def python.sugar.iovset.IOVSet.__getslice__ | ( |  | self, | 
        
          |  |  | * | args | 
        
          |  | ) |  |  | 
      
 
Slicing an IOVSet should return an IOVSet
 
Definition at line 268 of file iovset.py.
  268     def __getslice__(self, *args):
 
  270         Slicing an IOVSet should return an IOVSet 
  272         return self.__class__(super(IOVSet, self).__getslice__(*args))
 
 
 
◆ __hash__()
      
        
          | def python.sugar.iovset.IOVSet.__hash__ | ( |  | self | ) |  | 
      
 
 
◆ __or__()
      
        
          | def python.sugar.iovset.IOVSet.__or__ | ( |  | self, | 
        
          |  |  |  | rhs | 
        
          |  | ) |  |  | 
      
 
Definition at line 68 of file iovset.py.
   68     def __or__(self, rhs):
 
   70         return self.logical_or(self, rhs)
 
 
 
◆ __reduce__()
      
        
          | def python.sugar.iovset.IOVSet.__reduce__ | ( |  | self | ) |  | 
      
 
Make an IOVSet pickleable (beware limitations)
 
Definition at line 171 of file iovset.py.
  171     def __reduce__(self):
 
  173         Make an IOVSet pickleable (beware limitations) 
  175         types = 
set(
type(x) 
for x 
in self)
 
  179         assert len(types) == 1, (
 
  180             "Can only pickle IOVSets with only one type (got types=%r)" % types)
 
  182         iov_type = 
type(self.first)
 
  183         name = iov_type.__name__
 
  184         variables = iov_type._fields[2:]
 
  186         return restore_iovset, (
type(self), name, variables, map(tuple, self))
 
 
 
◆ __repr__()
      
        
          | def python.sugar.iovset.IOVSet.__repr__ | ( |  | self | ) |  | 
      
 
Definition at line 191 of file iovset.py.
  193             args = (len(self), self.duration, len(self.channels), 
 
  194                     (
"%.2f" % (self.duration / len(self.channels)))
 
  195                      if self.channels 
else "N/A")
 
  196             plurals = [
"" if x == 1 
else "s" for x 
in args]
 
  198             return (
"<%i IoV%s %.2f hour%s %i channel%s (avg=%s hr%s/c)>"  
  201         args = len(self), self.lb_counts, len(self.runs), len(self.channels)
 
  202         plurals = [
"" if x == 1 
else "s" for x 
in args]
 
  204         return "<%i IoV%s %i lb%s %i run%s %i channel%s>" % args
 
 
 
 
◆ add()
      
        
          | def python.sugar.iovset.IOVSet.add | ( |  | self, | 
        
          |  |  |  | since, | 
        
          |  |  |  | until, | 
        
          |  |  | * | args | 
        
          |  | ) |  |  | 
      
 
Definition at line 206 of file iovset.py.
  206     def add(self, since, until, *args):
 
  208         if self 
and self[-1][1] == since 
and self[-1][2:] == args:
 
  213             self.append([since, until] + args)
 
 
 
◆ add_old()
      
        
          | def python.sugar.iovset.IOVSet.add_old | ( |  | self, | 
        
          |  |  |  | iov | 
        
          |  | ) |  |  | 
      
 
Extends this result set by one iov. If it is adjacent (and equal)
to the previous IoV, then that IoV is extended instead.
This was deprecated because it is too slow compared to add() and solidify().
 
Definition at line 230 of file iovset.py.
  230     def add_old(self, iov):
 
  232         Extends this result set by one iov. If it is adjacent (and equal) 
  233         to the previous IoV, then that IoV is extended instead. 
  235         This was deprecated because it is too slow compared to add() and solidify(). 
  237         if self 
and self.last.connected_to(iov):
 
  238             self[-1] = self[-1].
merge(iov)
 
 
 
◆ by_channel()
      
        
          | def python.sugar.iovset.IOVSet.by_channel | ( |  | self | ) |  | 
      
 
Return a dictionary representing {channels : iovs with channelid}
 
Definition at line 301 of file iovset.py.
  301     def by_channel(self):
 
  303         Return a dictionary representing {channels : iovs with channelid} 
  306         from ..iov_arrangement 
import split_by_channel
 
 
 
◆ by_run()
      
        
          | def python.sugar.iovset.IOVSet.by_run | ( |  | self | ) |  | 
      
 
Return a dictionary representing {run : iovs in run}
 
Definition at line 282 of file iovset.py.
  284         Return a dictionary representing {run : iovs in run} 
  286         result = defaultdict(IOVSet)
 
  288             result[iov.run].
append(iov)
 
 
 
 
◆ channels()
      
        
          | def python.sugar.iovset.IOVSet.channels | ( |  | self | ) |  | 
      
 
The set of channels this IOVSet represents
 
Definition at line 292 of file iovset.py.
  294         The set of channels this IOVSet represents 
  296         if not self 
or not hasattr(self[0], 
"channel"): 
 
  298         return set(iov.channel 
for iov 
in self)
 
 
 
 
◆ chans_iovsets()
      
        
          | def python.sugar.iovset.IOVSet.chans_iovsets | ( |  | self | ) |  | 
      
 
Returns ([channel1, c2, c3, ...], [channel 1 iovs, c2iovs, c3iovs, ...])
 
Definition at line 144 of file iovset.py.
  144     def chans_iovsets(self):
 
  146         Returns ([channel1, c2, c3, ...], [channel 1 iovs, c2iovs, c3iovs, ...]) 
 
 
◆ connect_adjacent()
      
        
          | def python.sugar.iovset.IOVSet.connect_adjacent | ( |  | self | ) |  | 
      
 
Definition at line 91 of file iovset.py.
   91     def connect_adjacent(self):
 
   92         from ..iov_arrangement 
import connect_adjacent_iovs
 
 
 
◆ duration()
      
        
          | def python.sugar.iovset.IOVSet.duration | ( |  | self | ) |  | 
      
 
Duration of the sum of the time-based IoVs, in hours.
 
Definition at line 262 of file iovset.py.
  264         Duration of the sum of the time-based IoVs, in hours. 
  266         return self.lb_counts / 1e9 / 3600
 
 
 
 
◆ empty()
      
        
          | def python.sugar.iovset.IOVSet.empty | ( |  | self, | 
        
          |  |  |  | content = None | 
        
          |  | ) |  |  | 
      
 
Return an empty IOVSet, but keeping any metadata around. (Such as the
IOVType we were holding..)  
 
Definition at line 152 of file iovset.py.
  152     def empty(self, content=None):
 
  154         Return an empty IOVSet, but keeping any metadata around. (Such as the 
  155         IOVType we were holding..)   
  157         return self.empty_maker()([] 
if content 
is None else content)
 
 
 
◆ empty_maker()
      
        
          | def python.sugar.iovset.IOVSet.empty_maker | ( |  | self | ) |  | 
      
 
Indirection is used here in order to create new empty instances on
demand without keeping a reference to the original object alive.
 
Definition at line 159 of file iovset.py.
  159     def empty_maker(self):
 
  161         Indirection is used here in order to create new empty instances on 
  162         demand without keeping a reference to the original object alive. 
  164         iov_type = self.iov_type
 
  166         def empty(content=None):
 
  167             return type(self)([] 
if content 
is None else content, 
 
  168                                iov_type=iov_type, origin=origin, parent=self)
 
 
 
◆ first()
      
        
          | def python.sugar.iovset.IOVSet.first | ( |  | self | ) |  | 
      
 
Definition at line 310 of file iovset.py.
  311         "The first IoV in the set" 
  312         assert self, (
".first used in an empty IoV set. Is the range you are " 
  313                        "trying to query valid?")
 
 
 
 
◆ from_file()
      
        
          | def python.sugar.iovset.IOVSet.from_file | ( |  | cls, | 
        
          |  |  |  | filename | 
        
          |  | ) |  |  | 
      
 
Definition at line 114 of file iovset.py.
  114     def from_file(cls, filename):
 
  115         with open(filename, 
"rb") 
as fd:
 
  116             if filename.endswith(
".bz2"):
 
  117                 return loads(fd.read().
decode(
"bz2"))
 
 
 
◆ from_grl()
      
        
          | def python.sugar.iovset.IOVSet.from_grl | ( |  | cls, | 
        
          |  |  |  | filename | 
        
          |  | ) |  |  | 
      
 
Definition at line 126 of file iovset.py.
  126     def from_grl(cls, filename):
 
  127         with open(filename, 
"rb") 
as fd:
 
  128             return cls.from_grl_string(fd.read())
 
 
 
◆ from_grl_string()
      
        
          | def python.sugar.iovset.IOVSet.from_grl_string | ( |  | cls, | 
        
          |  |  |  | data | 
        
          |  | ) |  |  | 
      
 
Definition at line 121 of file iovset.py.
  121     def from_grl_string(cls, data):
 
  122         from ..grl 
import load_grl_string
 
 
 
◆ from_iovsets()
      
        
          | def python.sugar.iovset.IOVSet.from_iovsets | ( |  | cls, | 
        
          |  |  |  | iovsets | 
        
          |  | ) |  |  | 
      
 
Construct one IOVSet from many iovsets
 
Definition at line 77 of file iovset.py.
   77     def from_iovsets(cls, iovsets):
 
   79         Construct one IOVSet from many iovsets 
   81         iovsets = 
list(iovsets)
 
   84         types = 
set(iovset.iov_type 
for iovset 
in iovsets)
 
   85         assert len(types) == 1
 
   86         origins = [i.origin 
for i 
in iovsets]
 
   87         parents = [i.parent 
for i 
in iovsets]
 
   88         iov_gen = (iov 
for iovset 
in iovsets 
for iov 
in iovset)
 
   89         return cls(iov_gen, iov_type=types.pop(), origin=origins, parent=parents)
 
 
 
◆ from_runs()
      
        
          | def python.sugar.iovset.IOVSet.from_runs | ( |  | cls, | 
        
          |  |  |  | runs | 
        
          |  | ) |  |  | 
      
 
Definition at line 139 of file iovset.py.
  139     def from_runs(cls, runs):
 
 
 
◆ intersect_range()
      
        
          | def python.sugar.iovset.IOVSet.intersect_range | ( |  | self, | 
        
          |  |  |  | iov_range | 
        
          |  | ) |  |  | 
      
 
Returns a new IOVSet intersected with `iov_range` (since, until)
 
Definition at line 333 of file iovset.py.
  333     def intersect_range(self, iov_range):
 
  335         Returns a new IOVSet intersected with `iov_range` (since, until) 
  337         since, until = iov_range
 
  340         intersected = (iov.intersect(iov_range) 
for iov 
in self)
 
  341         return self.empty(iov 
for iov 
in intersected 
if iov)
 
 
 
◆ last()
      
        
          | def python.sugar.iovset.IOVSet.last | ( |  | self | ) |  | 
      
 
Definition at line 317 of file iovset.py.
  318         "The last IoV in the set" 
  319         assert self, (
".last used in an empty IoV set. Is the range you are " 
  320                        "trying to query valid?")
 
 
 
 
◆ lb_counts()
      
        
          | def python.sugar.iovset.IOVSet.lb_counts | ( |  | self | ) |  | 
      
 
Sum of the LB counts
 
Definition at line 255 of file iovset.py.
  259         return sum(iov.length 
for iov 
in self)
 
 
 
 
◆ logical_and()
      
        
          | def python.sugar.iovset.IOVSet.logical_and | ( |  | cls, | 
        
          |  |  | * | rhs_iovsets | 
        
          |  | ) |  |  | 
      
 
Gives the IOV ranges which are present in both this IOVSet and `rhs`
 
Definition at line 56 of file iovset.py.
   56     def logical_and(cls, *rhs_iovsets):
 
   58         Gives the IOV ranges which are present in both this IOVSet and `rhs` 
   61         from ..events 
import process_iovs
 
   65                 result.add(since, until)
 
   66         return result.solidify(RANGEIOV_VAL)
 
 
 
◆ logical_not()
      
        
          | def python.sugar.iovset.IOVSet.logical_not | ( |  | self | ) |  | 
      
 
Definition at line 34 of file iovset.py.
   34     def logical_not(self):
 
   35         from ..events 
import process_iovs
 
   40                    for since, until, (_, state) 
in events 
if not state)
 
 
 
◆ logical_or()
      
        
          | def python.sugar.iovset.IOVSet.logical_or | ( |  | cls, | 
        
          |  |  | * | rhs_iovsets | 
        
          |  | ) |  |  | 
      
 
Gives the IOV ranges which are present in both this IOVSet and `rhs`
 
Definition at line 43 of file iovset.py.
   43     def logical_or(cls, *rhs_iovsets):
 
   45         Gives the IOV ranges which are present in both this IOVSet and `rhs` 
   48         from ..events 
import process_iovs
 
   52                 result.add(since, until)
 
   53         return result.solidify(RANGEIOV_VAL)
 
 
 
◆ ordered()
      
        
          | def python.sugar.iovset.IOVSet.ordered | ( |  | self | ) |  | 
      
 
Definition at line 99 of file iovset.py.
  102             if iov.since > iov.until:
 
  104             if prev_until 
is not None and iov.since < prev_until:
 
  106             prev_until = iov.until
 
 
 
 
◆ pprint()
      
        
          | def python.sugar.iovset.IOVSet.pprint | ( |  | self, | 
        
          |  |  |  | where = stdout | 
        
          |  | ) |  |  | 
      
 
Definition at line 95 of file iovset.py.
   95     def pprint(self, where=stdout):
 
 
 
◆ range_iov()
      
        
          | def python.sugar.iovset.IOVSet.range_iov | ( |  | self | ) |  | 
      
 
Returns an IoV object which represents the maximum range contained by
the IoVs.
 
Definition at line 324 of file iovset.py.
  326         Returns an IoV object which represents the maximum range contained by 
  329         since = 
min(i.since 
for i 
in self)
 
  330         until = 
max(i.until 
for i 
in self)
 
 
 
 
◆ runs()
      
        
          | def python.sugar.iovset.IOVSet.runs | ( |  | self | ) |  | 
      
 
The set of runs present in this IOVSet
 
Definition at line 275 of file iovset.py.
  277         The set of runs present in this IOVSet 
  279         return set(iov.since.run 
for iov 
in self)
 
 
 
 
◆ select()
      
        
          | def python.sugar.iovset.IOVSet.select | ( |  | self, | 
        
          |  |  | ** | what | 
        
          |  | ) |  |  | 
      
 
Definition at line 358 of file iovset.py.
  360             return all(getattr(iov, key) == value 
 
  361                        for key, value 
in what.iteritems())
 
  363         return self.empty(iov 
for iov 
in self 
if selected(iov))
 
 
 
 
◆ select_channels()
      
        
          | def python.sugar.iovset.IOVSet.select_channels | ( |  | self, | 
        
          |  |  | * | selected | 
        
          |  | ) |  |  | 
      
 
Pick IoVs which are in the set of channels `selected`
 
Definition at line 351 of file iovset.py.
  351     def select_channels(self, *selected):
 
  353         Pick IoVs which are in the set of channels `selected` 
  355         selected = 
set(selected)
 
  356         return self.empty(iov 
for iov 
in self 
if iov.channel 
in selected)
 
 
 
◆ select_runs()
      
        
          | def python.sugar.iovset.IOVSet.select_runs | ( |  | self, | 
        
          |  |  | * | selected | 
        
          |  | ) |  |  | 
      
 
Pick IoVs which are in the set of runs `selected`
 
Definition at line 343 of file iovset.py.
  343     def select_runs(self, *selected):
 
  345         Pick IoVs which are in the set of runs `selected` 
  347         selected = 
set(selected)
 
  348         return self.empty(iov 
for iov 
in self
 
  349                           if any(run 
in selected 
for run 
in iov.runs))
 
 
 
◆ solidify()
      
        
          | def python.sugar.iovset.IOVSet.solidify | ( |  | self, | 
        
          |  |  |  | iov_type | 
        
          |  | ) |  |  | 
      
 
Because mutating lists is faster, once building an IOVSet is complete,
it should be 'solidified' into the desired IOV type
 
Definition at line 215 of file iovset.py.
  215     def solidify(self, iov_type):
 
  217         Because mutating lists is faster, once building an IOVSet is complete, 
  218         it should be 'solidified' into the desired IOV type 
  221         return IOVSet(map(iov_type._make, self))
 
 
 
◆ time_based()
      
        
          | def python.sugar.iovset.IOVSet.time_based | ( |  | self | ) |  | 
      
 
Looks at the first IoV to see if it is time based
 
Definition at line 243 of file iovset.py.
  243     def time_based(self):
 
  245         Looks at the first IoV to see if it is time based 
  250             return self.first.is_time_based
 
  251         except AttributeError:
 
 
 
◆ to_file()
      
        
          | def python.sugar.iovset.IOVSet.to_file | ( |  | self, | 
        
          |  |  |  | filename | 
        
          |  | ) |  |  | 
      
 
Definition at line 109 of file iovset.py.
  109     def to_file(self, filename):
 
  110         with open(filename, 
"wb") 
as fd:
 
 
 
◆ to_grl()
      
        
          | def python.sugar.iovset.IOVSet.to_grl | ( |  | self, | 
        
          |  |  |  | filename, | 
        
          |  |  |  | name = "unknown", | 
        
          |  |  |  | version = "unknown" | 
        
          |  | ) |  |  | 
      
 
Definition at line 134 of file iovset.py.
  134     def to_grl(self, filename, name="unknown", version="unknown"):
 
  135         with open(filename, 
"w") 
as fd:
 
  136             fd.write(self.to_grl_string(name, version))
 
 
 
◆ to_grl_string()
      
        
          | def python.sugar.iovset.IOVSet.to_grl_string | ( |  | self, | 
        
          |  |  |  | name = "unknown", | 
        
          |  |  |  | version = "unknown" | 
        
          |  | ) |  |  | 
      
 
Definition at line 130 of file iovset.py.
  130     def to_grl_string(self, name="unknown", version="unknown"):
 
  131         from ..grl 
import make_grl
 
  132         return make_grl(self, name, version)
 
 
 
◆ trim_iovs()
      
        
          | def python.sugar.iovset.IOVSet.trim_iovs | ( |  | self | ) |  | 
      
 
Ensure all IoVs start on lumiblock 1.
 
Definition at line 224 of file iovset.py.
  226         Ensure all IoVs start on lumiblock 1. 
  228         return self.empty(iov.trimmed 
for iov 
in self)
 
 
 
 
◆ constructed_at
      
        
          | python.sugar.iovset.IOVSet.constructed_at | 
      
 
 
◆ iov_type
      
        
          | python.sugar.iovset.IOVSet.iov_type | 
      
 
 
◆ origin
      
        
          | python.sugar.iovset.IOVSet.origin | 
      
 
 
◆ parent
      
        
          | python.sugar.iovset.IOVSet.parent | 
      
 
 
The documentation for this class was generated from the following file:
 
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.