def Help(obj=None): '''Usage: help(obj)''' # yes: lowercase!!! out = [] if obj is None: default_help() return try: out.append("<h2>{}</h2>".format(obj.__name__)) if hasattr(obj, "__doc__"): doc = "<pre>{}</pre>".format(str(obj.__doc__)) out.append(doc) else: out.append("<p>No docstring found.</p>") except Exception as e: window.console.log("exception in Help", e.__name__) for attr in dir(obj): if attr == "__class__": continue try: if hasattr(getattr(obj, attr), "__doc__"): if getattr(obj, attr).__doc__: out.append("<h3>{}</h3>".format(attr)) doc = "<pre>{}</pre>".format(getattr(obj, attr).__doc__) out.append(doc) except AttributeError: pass if not out: raise AttributeError("This object has no docstring.") else: window.print_html("".join(out))
def Help(obj=None): '''Usage: help(obj)''' # yes: lowercase!!! if obj is None: print(Help.__doc__) return out = [] try: out.append("<h2>{}</h2>".format(obj.__name__)) if hasattr(obj, "__doc__"): doc = "<p>{}</p>".format(str(obj.__doc__)) out.append(doc.replace("\n", "<br>")) else: out.append("<p>No docstring found.</p>") except Exception as e: window.console.log("exception in Help", e.__name__) for attr in dir(obj): if attr == "__class__": continue if hasattr(getattr(obj, attr), "__doc__"): if getattr(obj, attr).__doc__: out.append("<h3>{}</h3>".format(attr)) doc = "<p>{}</p>".format(getattr(obj, attr).__doc__) out.append(doc.replace("\n", "<br>")) if not out: raise AttributeError("This object has no docstring.") else: window.print_html("".join(out))
def __help(obj=None): """Usage: help(obj)""" # yes: without the double underscore!! out = [] if obj is None: __default_help() return try: out.append("<h2>{}</h2>".format(obj.__name__)) if hasattr(obj, "__doc__"): doc = "<pre>{}</pre>".format(str(obj.__doc__)) out.append(doc) else: out.append("<p>No docstring found.</p>") except Exception as e: window.console.log("exception in __help", e.__name__) for attr in dir(obj): if attr == "__class__" or attr.startswith("__"): continue try: if hasattr(getattr(obj, attr), "__doc__"): if getattr(obj, attr).__doc__: out.append("<h3>{}</h3>".format(attr)) doc = "<pre>{}</pre>".format(getattr(obj, attr).__doc__) out.append(doc) except AttributeError: pass if not out: raise AttributeError("This object has no docstring.") else: window.print_html("".join(out), True)
def dir_py(obj, exclude=None): '''Prints all "public" attributes of an object, one per line, identifying which ones are callable by appending parentheses to their name.''' out = [] for attr in dir(obj): try: if exclude: if attr in exclude: continue if not attr.startswith("__"): if callable(getattr(obj, attr)): out.append(attr + "()") else: out.append(attr) except AttributeError: # javascript extension, as in supplant() pass # string prototype extension, can cause problems window.print_html(html_escape("\n".join(out)).replace("\n", "<br>"), True)
def dir_py(obj, exclude=None): '''Prints all "public" attributes of an object, one per line, identifying which ones are callable by appending parentheses to their name.''' out = [] for attr in dir(obj): try: if exclude: if attr in exclude: continue if not attr.startswith("__"): if callable(getattr(obj, attr)): out.append(attr + "()") else: out.append(attr) except AttributeError: # javascript extension, as in supplant() pass # string prototype extension, can cause problems window.print_html(html_escape("\n".join(out)).replace("\n", "<br>"))