code: def host_axes_class_factory(axes_class=None):
      if axes_class is None:
          axes_class = Axes
  
      new_class = _host_axes_classes.get(axes_class)
      if new_class is None:
  
          def _get_base_axes(self):
              return axes_class
  
          def _get_base_axes_attr(self, attrname):
              return getattr(axes_class, attrname)
  
          new_class = type(
              str("%sHostAxes" % (axes_class.__name__)),
              (HostAxesBase, axes_class),
              {
                  "_get_base_axes_attr": _get_base_axes_attr,
                  "_get_base_axes": _get_base_axes,
              },
          )
  
          _host_axes_classes[axes_class] = new_class
  
      return new_class
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import six
  from matplotlib import artist, collections, transforms, rcParams
  from matplotlib.axes import subplot_class_factory
  from matplotlib.transforms import Bbox
  from .mpl_axes import Axes
  import numpy
label_desc: Use image node_id 4 for calling a global function with example usage: host_axes_class_factory(axes_class) and returns: new_class, axes_class, getattr