|
| 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.