Source code for larray.viewer


[docs]def view(obj=None, title='', depth=0): r""" Open a new viewer window. Arrays are loaded in readonly mode and their content cannot be modified. Parameters ---------- obj : np.ndarray, Array, Session, dict, str or Path, optional Object to visualize. If string or Path, array(s) will be loaded from the file given as argument. Defaults to the collection of all local variables where the function was called. title : str, optional Title for the current object. Defaults to the name of the first object found in the caller namespace which corresponds to `obj` (it will use a combination of the 3 first names if several names correspond to the same object). depth : int, optional Stack depth where to look for variables. Defaults to 0 (where this function was called). Examples -------- >>> a1 = ndtest(3) # doctest: +SKIP >>> a2 = ndtest(3) + 1 # doctest: +SKIP >>> # will open a viewer showing all the arrays available at this point >>> # (a1 and a2 in this case) >>> view() # doctest: +SKIP >>> # will open a viewer showing only a1 >>> view(a1) # doctest: +SKIP """ try: from larray_editor import view view(obj, title, depth + 1) except ImportError: raise Exception('view() is not available because the larray_editor package is not installed')
[docs]def edit(obj=None, title='', minvalue=None, maxvalue=None, readonly=False, depth=0): r""" Open a new editor window. Parameters ---------- obj : np.ndarray, Array, Session, dict, str, Path, REOPEN_LAST_FILE or None, optional Object to visualize. If string or Path, array(s) will be loaded from the file given as argument. Passing the constant REOPEN_LAST_FILE loads the last opened file. Defaults to None, which gathers all variables (global and local) where the function was called. title : str, optional Title for the current object. Defaults to the name of the first object found in the caller namespace which corresponds to `obj` (it will use a combination of the 3 first names if several names correspond to the same object). minvalue : scalar, optional Minimum value allowed. maxvalue : scalar, optional Maximum value allowed. readonly : bool, optional Whether editing array values is forbidden. Defaults to False. depth : int, optional Stack depth where to look for variables. Defaults to 0 (where this function was called). Examples -------- >>> a1 = ndtest(3) # doctest: +SKIP >>> a2 = ndtest(3) + 1 # doctest: +SKIP >>> # will open an editor with all the arrays available at this point >>> # (a1 and a2 in this case) >>> edit() # doctest: +SKIP >>> # will open an editor for a1 only >>> edit(a1) # doctest: +SKIP """ try: from larray_editor import edit edit(obj, title, minvalue, maxvalue, readonly, depth + 1) except ImportError: raise Exception('edit() is not available because the larray_editor package is not installed')
[docs]def debug(depth=0): r""" Open a new debug window. Parameters ---------- depth : int, optional Stack depth where to look for variables. Defaults to 0 (where this function was called). """ try: from larray_editor import debug debug(depth + 1) except ImportError: raise Exception('debug() is not available because the larray_editor package is not installed')
[docs]def compare(*args, depth=0, **kwargs): r""" Open a new comparator window, comparing arrays or sessions. Parameters ---------- *args : Arrays, Sessions, str or Path. Arrays or sessions to compare. Strings or Path will be loaded as Sessions from the corresponding files. title : str, optional Title for the window. Defaults to ''. names : list of str, optional Names for arrays or sessions being compared. Defaults to the name of the first objects found in the caller namespace which correspond to the passed objects. rtol : float or int, optional The relative tolerance parameter (see Notes). Defaults to 0. atol : float or int, optional The absolute tolerance parameter (see Notes). Defaults to 0. nans_equal : boolean, optional Whether to consider NaN values at the same positions in the two arrays as equal. By default, an array containing NaN values is never equal to another array, even if that other array also contains NaN values at the same positions. The reason is that a NaN value is different from *anything*, including itself. Defaults to True. depth : int, optional Stack depth where to look for variables. Defaults to 0 (where this function was called). Notes ----- For finite values, the following equation is used to test whether two values are equal: absolute(array1 - array2) <= (atol + rtol * absolute(array2)) Examples -------- >>> a1 = ndtest(3) # doctest: +SKIP >>> a2 = ndtest(3) + 1 # doctest: +SKIP >>> compare(a1, a2, title='first comparison') # doctest: +SKIP >>> compare(a1 + 1, a2, title='second comparison', names=['a1+1', 'a2']) # doctest: +SKIP """ try: from larray_editor import compare compare(*args, depth=depth + 1, **kwargs) except ImportError: raise Exception('compare() is not available because the larray_editor package is not installed')
[docs]def run_editor_on_exception(root_path=None, usercode_traceback=True, usercode_frame=True): r""" Run the editor when an unhandled exception (a fatal error) happens. Parameters ---------- root_path : str, optional Defaults to None (the directory of the main script). usercode_traceback : bool, optional Whether to show only the part of the traceback (error log) which corresponds to the user code. Otherwise, it will show the complete traceback, including code inside libraries. Defaults to True. usercode_frame : bool, optional Whether to start the debug window in the frame corresponding to the user code. This argument is ignored (it is always True) if usercode_traceback is True. Defaults to True. Notes ----- sets sys.excepthook """ try: from larray_editor import run_editor_on_exception run_editor_on_exception(root_path=root_path, usercode_traceback=usercode_traceback, usercode_frame=usercode_frame) except ImportError: raise Exception('run_editor_on_exception() is not available because the larray_editor package is not installed')