OpenQuake Utilities¶
The Utils
Sub-package¶
Utility functions that are of interest to and shared by the entire OpenQuake python code base.
version
¶
Utility functions related to OpenQuake version information.
-
openquake.engine.utils.version.
info
(version_data)[source]¶ Return a string with the OpenQuake version infomation.
Version info data set to -1 will be ignored and assumed to have value zero. Release dates that lie more than 30 days in the future are ignored.
Parameters: version_data – A 4-tuple of integers that are the major, minor and sprint number respectively. The last datum is the number of seconds since epoch and represents the release date. Returns: A string with human readable OpenQuake version information.
config
¶
Various utility functions concerned with configuration.
-
openquake.engine.utils.config.
OQ_CONFIG_FILE_VAR
= 'OQ_CONFIG_FILE'¶ Environment variable name for specifying a custom openquake.cfg. The file name doesn’t matter.
-
openquake.engine.utils.config.
abort_if_no_config_available
()[source]¶ Call sys.exit() if no openquake configuration file is readable.
-
openquake.engine.utils.config.
context
(*args, **kwds)[source]¶ Context manager used to change the parameters of a configuration section on the fly. For use in the tests.
-
openquake.engine.utils.config.
flag_set
(section, setting)[source]¶ True if the given boolean setting is enabled in openquake.cfg
Parameters: - section (string) – name of the configuration file section
- setting (string) – name of the configuration file setting
Returns: True if the setting is enabled in openquake.cfg, False otherwise
-
openquake.engine.utils.config.
get
(section, key)[source]¶ The configuration value for the given section and key or None.
tasks
¶
Various utility functions related to splitting work into tasks and/or managing these.
Utility functions related to splitting work into tasks.
-
class
openquake.engine.utils.tasks.
OqTaskManager
(oqtask, name=None)[source]¶ Bases:
openquake.commonlib.parallel.TaskManager
A celery-based task manager. The usage is:
oqm = OqTaskManager(do_something, logs.LOG.progress) oqm.send(arg1, arg2) oqm.send(arg3, arg4) print oqm.aggregate_results(agg, acc)
Progress report is built-in.
-
aggregate_result_set
(agg, acc)[source]¶ Loop on a set of celery AsyncResults and update the accumulator by using the aggregation function.
Parameters: - agg – the aggregation function, (acc, val) -> new acc
- acc – the initial value of the accumulator
Returns: the final value of the accumulator
-
static
progress
(msg, *args, **kwargs)¶ Log the message using the progress reporting logging level.
args
andkwargs
are the same aslogging.Logger.debug()
, except that this method has an additional possible keyword:indent
.Normally, progress messages are logged with a ‘** ‘ prefix. If
indent
is True, messages will be logged with a ‘** >’ prefix.If
indent
is not specified, it will default to False.
-
-
openquake.engine.utils.tasks.
oqtask
(task_func)[source]¶ Task function decorator which sets up logging and catches (and logs) any errors which occur inside the task. Also checks to make sure the job is actually still running. If it is not running, the task doesn’t get executed, so we don’t do useless computation.
Parameters: task_func – the function to decorate