Provides some utilities functions used by the shennong library

Those fonctions are not designed to be used by the end-user.

shennong.utils.get_njobs(njobs=None, log=<Logger null (WARNING)>)[source]

Returns the number of parallel jobs to run

The returned number of jobs is adapted from the input njobs value, considering the number of CPU cores available on the machine.

  • njobs (int, optional) – The desired number of jobs to use, default to the number of cores available on the machine.

  • log (logging.Logger, optional) – A logger where to send messages, no logging by default.


njobs (int) – The returned value is min(njobs, ncpus).


ValueError – If njobs is not a strictly positive integer.


Converts lists in seq into numpy arrays


Converts numpy arrays in seq into lists

shennong.utils.dict_equal(dict1, dict2)[source]

Returns True if dict1 and dict2 are equals

The dictionnaries dict1 and dict2 can contain numpy arrays.

  • dict1 (dict) – The first dictionnary to compare

  • dict2 (dict) – The second dictionnary to compare


equal (bool) – True if dict1 == dict2, False otherwise

shennong.utils.list_files_with_extension(directory, extension, abspath=False, realpath=True, recursive=True)[source]

Return all files of given extension in directory hierarchy

  • directory (str) – The directory where to search for files

  • extension (str) – The extension of the targeted files (e.g. ‘.wav’)

  • abspath (bool, optional) – If True, return the absolute path to the file/link, default to False.

  • realpath (bool, optional) – If True, return resolved links, default to True.

  • recursive (bool, optional) – If True, list files in the whole subdirectories tree, if False just list the top-level directory, default to True.


files (list) – The files are returned in a sorted list with a path relative to ‘directory’, except if abspath or realpath is True

class shennong.utils.CatchExceptions(function)[source]

Bases: object

Decorator wrapping a function in a try/except block

When an exception occurs, display a user friendly message on standard output before exiting with error code 1.

The detected exceptions are ValueError, OSError, RuntimeError, AssertionError, KeyboardInterrupt and pkg_resources.DistributionNotFound.


function – The function to wrap in a try/except block

static exit(msg)[source]

Write msg on stderr and exit with error code 1