Loading [MathJax]/jax/input/TeX/config.js
 |
ATLAS Offline Software
|
|
def | get_package_version (package_name, default_prefix="DataQuality") |
|
def | kgrind_profile (filename="profile.kgrind") |
|
def | daemonize (function, delay, error_args=None, **kwargs) |
|
def | send_error_email (exception_info, from_, subject, body) |
|
def | all_equal (*inputs) |
|
def | all_permutations (input_list) |
|
def | flattened (l) |
|
def | _flatten (l, fn, val=[]) |
|
def | silence (log_level=None, logger=None) |
|
def | timer (name) |
|
def | interleave (*args) |
|
def | date_to_nanounix (date_string) |
|
def | nanounix_to_date (nanounix) |
|
◆ _flatten()
def python.general._flatten |
( |
|
l, |
|
|
|
fn, |
|
|
|
val = [] |
|
) |
| |
|
private |
◆ all_equal()
def python.general.all_equal |
( |
* |
inputs | ) |
|
Returns true if all input arguments are equal (must be hashable)
Definition at line 107 of file general.py.
109 Returns true if all input arguments are equal (must be hashable)
111 return len(
set(inputs)) == 1
◆ all_permutations()
def python.general.all_permutations |
( |
|
input_list | ) |
|
Generate all permutations of `input_list`
Definition at line 113 of file general.py.
115 Generate all permutations of `input_list`
117 if len(input_list) <= 1:
121 for i
in range(len(perm)+1):
122 yield perm[:i] + input_list[0:1] + perm[i:]
◆ daemonize()
def python.general.daemonize |
( |
|
function, |
|
|
|
delay, |
|
|
|
error_args = None , |
|
|
** |
kwargs |
|
) |
| |
Run a daemon which executes `function` every `delay` seconds.
Definition at line 44 of file general.py.
44 def daemonize(function, delay, error_args=None, **kwargs):
46 Run a daemon which executes `function` every `delay` seconds.
48 from time
import sleep
51 log.info(
"Sleeping for %i seconds..", delay)
54 log.info(
"Current time: %s", strftime(
"%d/%m/%Y %H:%M:%S"))
58 if error_args
is not None:
◆ date_to_nanounix()
def python.general.date_to_nanounix |
( |
|
date_string | ) |
|
Returns number of nanoseconds between unix epoch and date in the form
'dd/mm/yyyy'
Definition at line 173 of file general.py.
175 Returns number of nanoseconds between unix epoch and date in the form
178 return int(mktime(strptime(date_string,
"%d/%m/%Y")) * 1e9)
◆ flattened()
def python.general.flattened |
( |
|
l | ) |
|
Definition at line 126 of file general.py.
128 while type(result)
is list
and len(result)
and callable(result[0]):
131 result = result[0]([])
◆ get_package_version()
def python.general.get_package_version |
( |
|
package_name, |
|
|
|
default_prefix = "DataQuality" |
|
) |
| |
Returns package version as determined from "cmt show versions"
Definition at line 15 of file general.py.
17 Returns package version as determined from "cmt show versions"
19 if "/" not in package_name
and default_prefix:
20 package_name =
"/".
join([default_prefix, package_name])
21 output =
getoutput(
"cmt show versions %s" % package_name).
split(
"\n")
22 output =
list(map(str.strip, output))
◆ interleave()
def python.general.interleave |
( |
* |
args | ) |
|
Definition at line 170 of file general.py.
171 return [item
for items
in zip(*args)
for item
in items]
◆ kgrind_profile()
def python.general.kgrind_profile |
( |
|
filename = "profile.kgrind" | ) |
|
Generate kcachegrind profile information for a call.
Example use:
with kgrind_profile() as p:
p.run("main()")
Definition at line 26 of file general.py.
28 Generate kcachegrind profile information for a call.
32 with kgrind_profile() as p:
35 from cProfile
import Profile
40 from .ext.lsprofcalltree
import KCacheGrind
41 with open(filename,
"w")
as fd:
42 KCacheGrind(p).output(fd)
◆ nanounix_to_date()
def python.general.nanounix_to_date |
( |
|
nanounix | ) |
|
Returns a string representation of `nanounix` nanoseconds
since the unix epoch
Definition at line 180 of file general.py.
182 Returns a string representation of `nanounix` nanoseconds
185 sub_second =
"%03i" % ((nanounix %
int(1e9)) / 1e6)
187 return strftime(
"%Y%m%d:%H%M%S.", gmtime(nanounix / 1e9)) + sub_second
189 return "[BadTime: %s]" %
int(nanounix)
◆ send_error_email()
def python.general.send_error_email |
( |
|
exception_info, |
|
|
|
from_, |
|
|
|
subject, |
|
|
|
body |
|
) |
| |
Send an error email containing `exception_info`
TODO: Doesn't contain complete information
Definition at line 63 of file general.py.
65 Send an error email containing `exception_info`
66 TODO: Doesn't contain complete information
71 from email.mime.text
import MIMEText
72 from getpass
import getuser
73 from socket
import gethostname
75 exceptionType, exceptionValue, exceptionTraceback = exception_info
77 user, host = getuser(), gethostname()
79 extra_info = [
"Was running as user '%s' on machine '%s'" % (user, host),
83 msg = MIMEText(
"\n\n".
join(body + extra_info +
84 traceback.format_tb(exceptionTraceback)))
86 msg[
'Subject'] = subject
91 "Peter Onyisi <peter.onyisi@cern.ch>"
97 msg[
'To'] =
", ".
join(to)
102 s.sendmail(from_, to, msg.as_string())
105 log.error(
"Error email sent.")
◆ silence()
def python.general.silence |
( |
|
log_level = None , |
|
|
|
logger = None |
|
) |
| |
Turn down the logging verbosity temporarily
Definition at line 142 of file general.py.
142 def silence(log_level=None, logger=None):
144 Turn down the logging verbosity temporarily
146 if log_level
is None:
147 log_level = log.WARNING
150 logger = log.getLogger()
152 orig_level = logger.level
153 logger.setLevel(log_level)
158 logger.setLevel(orig_level)
◆ timer()
def python.general.timer |
( |
|
name | ) |
|
Definition at line 161 of file general.py.
162 "A context manager which spits out how long the block took to execute"
168 log.debug(
"Took %.2f to %s", end - start, name)
◆ log
def get_package_version(package_name, default_prefix="DataQuality")
def kgrind_profile(filename="profile.kgrind")
def _flatten(l, fn, val=[])
def silence(log_level=None, logger=None)
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.
std::string join(const std::vector< std::string > &v, const char c=',')
def daemonize(function, delay, error_args=None, **kwargs)
def nanounix_to_date(nanounix)
def date_to_nanounix(date_string)
def all_permutations(input_list)
def send_error_email(exception_info, from_, subject, body)