Source code for larray.viewer

from __future__ import absolute_import, division, print_function


[docs]def view(obj=None, title='', depth=0): r""" Opens a new viewer window. Arrays are loaded in readonly mode and their content cannot be modified. Parameters ---------- obj : np.ndarray, Array, Session, dict or str, optional Object to visualize. If string, 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""" Opens a new editor window. Parameters ---------- obj : np.ndarray, Array, Session, dict, str or REOPEN_LAST_FILE, optional Object to visualize. If string, array(s) will be loaded from the file given as argument. Passing the constant REOPEN_LAST_FILE loads the last opened file. 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). minvalue : scalar, optional Minimum value allowed. maxvalue : scalar, optional Maximum value allowed. readonly : bool, optional Whether or not 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""" Opens 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, **kwargs): r""" Opens a new comparator window, comparing arrays or sessions. Parameters ---------- *args : Arrays or Sessions Arrays or sessions to compare. 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. depth : int, optional Stack depth where to look for variables. Defaults to 0 (where this function was called). display_caller_info: bool, optional Whether or not to display the filename and line number where the Editor has been called. Defaults to True. 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 or not 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. 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 depth = kwargs.pop('depth', 0) 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""" Runs 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 or not 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 or not 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')