class_docstr: A renderable to inspect any Python Object.
  
  Args:
      obj (Any): An object to inspect.
      title (str, optional): Title to display over inspect result, or None use type. Defaults to None.
      help (bool, optional): Show full help text rather than just first paragraph. Defaults to False.
      methods (bool, optional): Enable inspection of callables. Defaults to False.
      docs (bool, optional): Also render doc strings. Defaults to True.
      private (bool, optional): Show private attributes (beginning with underscore). Defaults to False.
      dunder (bool, optional): Show attributes starting with double underscore. Defaults to False.
      sort (bool, optional): Sort attributes alphabetically. Defaults to True.
      all (bool, optional): Show all attributes. Defaults to False.
      value (bool, optional): Pretty print value of object. Defaults to True.
class_docstr_tok: ["A","renderable","to","inspect","any","Python","Object",".","Args",":","obj","(","Any",")",":","An","object","to","inspect",".","title","(","str",",","optional",")",":","Title","to","display","over","inspect","result",",","or","None","use","type",".","Defaults","to","None",".","help","(","bool",",","optional",")",":","Show","full","help","text","rather","than","just","first","paragraph",".","Defaults","to","False",".","methods","(","bool",",","optional",")",":","Enable","inspection","of","callables",".","Defaults","to","False",".","docs","(","bool",",","optional",")",":","Also","render","doc","strings",".","Defaults","to","True",".","private","(","bool",",","optional",")",":","Show","private","attributes","(","beginning","with","underscore",")",".","Defaults","to","False",".","dunder","(","bool",",","optional",")",":","Show","attributes","starting","with","double","underscore",".","Defaults","to","False",".","sort","(","bool",",","optional",")",":","Sort","attributes","alphabetically",".","Defaults","to","True",".","all","(","bool",",","optional",")",":","Show","all","attributes",".","Defaults","to","False",".","value","(","bool",",","optional",")",":","Pretty","print","value","of","object",".","Defaults","to","True","."]
docstr: Render object.
docstr_tok: ["Render","object","."]
code: def _render(self) -> Iterable[RenderableType]:
      """Render object."""
  
      def sort_items(item: Tuple[str, Any]) -> Tuple[bool, str]:
          key, (_error, value) = item
          return (callable(value), key.strip("_").lower())
  
      def safe_getattr(attr_name: str) -> Tuple[Any, Any]:
          """Get attribute or any exception."""
          try:
              return (None, getattr(obj, attr_name))
          except Exception as error:
              return (error, None)
  
      obj = self.obj
      keys = dir(obj)
      total_items = len(keys)
      if not self.dunder:
          keys = [key for key in keys if not key.startswith("__")]
      if not self.private:
          keys = [key for key in keys if not key.startswith("_")]
      not_shown_count = total_items - len(keys)
      items = [(key, safe_getattr(key)) for key in keys]
      if self.sort:
          items.sort(key=sort_items)
  
      items_table = Table.grid(padding=(0, 1), expand=False)
      items_table.add_column(justify="right")
      add_row = items_table.add_row
      highlighter = self.highlighter
  
      if callable(obj):
          signature = self._get_signature("", obj)
          if signature is not None:
              yield signature
              yield ""
  
      if self.docs:
          _doc = self._get_formatted_doc(obj)
          if _doc is not None:
              doc_text = Text(_doc, style="inspect.help")
              doc_text = highlighter(doc_text)
              yield doc_text
              yield ""
  
      if self.value and not (
          isclass(obj) or callable(obj) or ismodule(obj)
      ):
          yield Panel(
              Pretty(
                  obj, indent_guides=True, max_length=10, max_string=60
              ),
              border_style="inspect.value.border",
          )
          yield ""
  
      for key, (error, value) in items:
          key_text = Text.assemble(
              (
                  key,
                  "inspect.attr.dunder"
                  if key.startswith("__")
                  else "inspect.attr",
              ),
              (" =", "inspect.equals"),
          )
          if error is not None:
              warning = key_text.copy()
              warning.stylize("inspect.error")
              add_row(warning, highlighter(repr(error)))
              continue
  
          if callable(value):
              if not self.methods:
                  continue
  
              _signature_text = self._get_signature(key, value)
              if _signature_text is None:
                  add_row(
                      key_text, Pretty(value, highlighter=highlighter)
                  )
              else:
                  if self.docs:
                      docs = self._get_formatted_doc(value)
                      if docs is not None:
                          _signature_text.append(
                              "\n" if "\n" in docs else " "
                          )
                          doc = highlighter(docs)
                          doc.stylize("inspect.doc")
                          _signature_text.append(doc)
  
                  add_row(key_text, _signature_text)
          else:
              add_row(key_text, Pretty(value, highlighter=highlighter))
      if items_table.row_count:
          yield items_table
      elif not_shown_count:
          yield Text.from_markup(
              f"[b cyan]{not_shown_count}[/][i] attribute(s) not shown.[/i] "
              f"Run [b][magenta]inspect[/]([not b]inspect[/])[/b] for options."
          )
  
imports: from __future__ import absolute_import
  import inspect
  from inspect import cleandoc, getdoc, getfile, isclass, ismodule, signature
  from typing import Any, Collection, Iterable, Optional, Tuple, Type, Union
  from .console import Group, RenderableType
  from .control import escape_control_codes
  from .highlighter import ReprHighlighter
  from .jupyter import JupyterMixin
  from .panel import Panel
  from .pretty import Pretty
  from .table import Table
  from .text import Text, TextType
label_desc: Use image node_id 5 for calling the Inspect obj's underlying member method code with example usage: obj._render() and returns: callable,  key, None,  getattr, error,  None