class_docstr: Internal base class.
  
  Concrete subclasses must implement plotting methods (e.g. `line`, `scatter`, `image`).
  A plotting method must call `self` which will effectively create a HoloViewsConverter
  and call it to return a HoloViews object.
  
  Concrete subclasses are meant to be mounted onto a datastructure property, e.g.:
  
  ```
  _patch_plot = lambda self: hvPlotTabular(self)
  _patch_plot.__doc__ = hvPlotTabular.__call__.__doc__
  plot_prop = property(_patch_plot)
  setattr(pd.DataFrame, 'hvplot', plot_prop)
  ```
class_docstr_tok: ["Internal","base","class",".","Concrete","subclasses","must","implement","plotting","methods","(","e.g",".","`","line","`",",","`","scatter","`",",","`","image","`",")",".","A","plotting","method","must","call","`","self","`","which","will","effectively","create","a","HoloViewsConverter","and","call","it","to","return","a","HoloViews","object",".","Concrete","subclasses","are","meant","to","be","mounted","onto","a","datastructure","property",",","e.g",".",":","``","`","_patch_plot","=","lambda","self",":","hvPlotTabular","(","self",")","_patch_plot.__doc__","=","hvPlotTabular.__call__.__doc__","plot_prop","=","property","(","_patch_plot",")","setattr","(","pd.DataFrame",",","'hvplot","'",",","plot_prop",")","``","`"]
docstr: List default attributes and custom defined plots.
docstr_tok: ["List","default","attributes","and","custom","defined","plots","."]
code: def __dir__(self):
      """
      List default attributes and custom defined plots.
      """
      dirs = super().__dir__()
      return sorted(list(dirs) + list(self._plots))
  
imports: import itertools
  from collections import defaultdict
  import param
  from ..converter import HoloViewsConverter
  from ..util import is_list_like, process_dynamic_args
label_desc: Use image node_id 4 for calling the hvPlotBase obj's underlying member method code with example usage: obj.__dir__() and returns: sorted