 |
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 106 of file general.py.
108 Returns true if all input arguments are equal (must be hashable)
110 return len(
set(inputs)) == 1
◆ all_permutations()
def python.general.all_permutations |
( |
|
input_list | ) |
|
Generate all permutations of `input_list`
Definition at line 112 of file general.py.
114 Generate all permutations of `input_list`
116 if len(input_list) <= 1:
120 for i
in range(len(perm)+1):
121 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 43 of file general.py.
43 def daemonize(function, delay, error_args=None, **kwargs):
45 Run a daemon which executes `function` every `delay` seconds.
47 from time
import sleep
50 log.info(
"Sleeping for %i seconds..", delay)
53 log.info(
"Current time: %s", strftime(
"%d/%m/%Y %H:%M:%S"))
57 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 172 of file general.py.
174 Returns number of nanoseconds between unix epoch and date in the form
177 return int(mktime(strptime(date_string,
"%d/%m/%Y")) * 1e9)
◆ flattened()
def python.general.flattened |
( |
|
l | ) |
|
Definition at line 125 of file general.py.
127 while type(result)
is list
and len(result)
and callable(result[0]):
130 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 14 of file general.py.
16 Returns package version as determined from "cmt show versions"
18 if "/" not in package_name
and default_prefix:
19 package_name =
"/".
join([default_prefix, package_name])
20 output =
getoutput(
"cmt show versions %s" % package_name).
split(
"\n")
21 output =
list(map(str.strip, output))
◆ interleave()
def python.general.interleave |
( |
* |
args | ) |
|
Definition at line 169 of file general.py.
170 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 25 of file general.py.
27 Generate kcachegrind profile information for a call.
31 with kgrind_profile() as p:
34 from cProfile
import Profile
39 from .ext.lsprofcalltree
import KCacheGrind
40 with open(filename,
"w")
as fd:
41 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 179 of file general.py.
181 Returns a string representation of `nanounix` nanoseconds
184 sub_second =
"%03i" % ((nanounix %
int(1e9)) / 1e6)
186 return strftime(
"%Y%m%d:%H%M%S.", gmtime(nanounix / 1e9)) + sub_second
188 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 62 of file general.py.
64 Send an error email containing `exception_info`
65 TODO: Doesn't contain complete information
70 from email.mime.text
import MIMEText
71 from getpass
import getuser
72 from socket
import gethostname
74 exceptionType, exceptionValue, exceptionTraceback = exception_info
76 user, host = getuser(), gethostname()
78 extra_info = [
"Was running as user '%s' on machine '%s'" % (user, host),
82 msg = MIMEText(
"\n\n".
join(body + extra_info +
83 traceback.format_tb(exceptionTraceback)))
85 msg[
'Subject'] = subject
90 "Peter Onyisi <peter.onyisi@cern.ch>"
96 msg[
'To'] =
", ".
join(to)
101 s.sendmail(from_, to, msg.as_string())
104 log.error(
"Error email sent.")
◆ silence()
def python.general.silence |
( |
|
log_level = None , |
|
|
|
logger = None |
|
) |
| |
Turn down the logging verbosity temporarily
Definition at line 141 of file general.py.
141 def silence(log_level=None, logger=None):
143 Turn down the logging verbosity temporarily
145 if log_level
is None:
146 log_level = log.WARNING
149 logger = log.getLogger()
151 orig_level = logger.level
152 logger.setLevel(log_level)
157 logger.setLevel(orig_level)
◆ timer()
def python.general.timer |
( |
|
name | ) |
|
Definition at line 160 of file general.py.
161 "A context manager which spits out how long the block took to execute"
167 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 time(flags, cells_name, *args, **kw)
def send_error_email(exception_info, from_, subject, body)