code: def register_axis(key=None):
      
      def wrap(axis):
          name = key if key is not None else axis.__module__ + axis.__name__
          BaseAxis.axis_types[name] = axis
          return axis
      return wrap
docs: Returns a decorator registering an axis class in the axis type registry.
  
      If no key is provided, the class name is used as a key. A key is provided
      for each core bqplot axis so that the frontend can use this key regardless
      of the kernel language.