4.6.1. basf2.utils - Helper functions for printing basf2 objects

This modules contains some utility functions used by basf2, mainly for printing things.


Returns width of terminal in characters, or 80 if unknown.

basf2.utils.is_mod_function(mod, func)[source]

Return true if func is a function and defined in the module mod


Returns list of function names defined in the given Python module.


Given a list of 2-tuples, print a nicely formatted description list. Rows with only one entry are interpreted as sub-headings

basf2.utils.pretty_print_module(module, module_name, replacements=None)[source]

Pretty print the contents of a python module. It will print all the functions defined in the given module to the console

  • module – instance of the module or name with which it can be found in sys.modules

  • module_name – readable module name

  • replacements (dict) – dictionary containing text replacements: Every occurrence of any key in the function signature will be replaced by its value

basf2.utils.pretty_print_table(table, column_widths, first_row_is_heading=True, transform=None, min_flexible_width=10, *, hline_formatter=None)[source]

Pretty print a given table, by using available terminal size and word wrapping fields as needed.

  • table – A 2d list of table fields. Each row must have the same length.

  • column_width

    list of column widths, needs to be of same length as rows in ‘table’. Available fields are


    as needed, up to n characters, word wrap if longer


    as long as needed, no wrapping


    n characters (fixed)


    use all available space, good for description fields. If more than one column has a * they all get equal width


    use all available space but at least the actual width. Only useful to make the table span the full width of the terminal

    The column width can also start with >, < or ^ in which case it will be right, left or center aligned.

  • first_row_is_heading – header specifies if we should take the first row as table header and offset it a bit

  • transform

    either None or a callback function which takes three arguments

    1. the elements of the row as a list

    2. second the width of each column (without separator)

    3. the preformatted text line.

    It should return a string representing the final line to be printed.

  • min_flexible_width – the minimum amount of characters for every column marked with *

  • hline_formatter

    A callable function to format horizontal lines (above and below the table header). Should be a callback with one parameter for the total width of the table in characters and return a string that is the horizontal line. If None is returned no line is printed.

    If argument is not given or given as None the default of printing ‘-’ signs are printed over the whole table width is used.

Changed in version after: release 5 Added support for column alignment

basf2.utils.print_all_modules(moduleList, package='')[source]

Loop over the list of available modules, register them and print their information

basf2.utils.print_params(module, print_values=True, shared_lib_path=None)[source]

This function prints parameter information

  • module – Print the parameter information of this module

  • print_values – Set it to True to print the current values of the parameters

  • shared_lib_path – The path of the shared library from which the module was loaded

basf2.utils.print_path(path, defaults=False, description=False, indentation=0, title=True)[source]

This function prints the modules in the given path and the module parameters. Parameters that are not set by the user are suppressed by default.

  • defaults – Set it to True to print also the parameters with default values

  • description – Set to True to print the descriptions of modules and parameters

  • indentation – an internal parameter to indent the whole output (needed for outputting sub-paths)

  • title – show the title string or not (defaults to True)