code: def register_scale(key=None):
      
      def wrap(scale):
          label = key if key is not None else scale.__module__ + scale.__name__
          Scale.scale_types[label] = scale
          return scale
      return wrap
docs: Returns a decorator to register a scale type in the scale type
      registry.
  
      If no key is provided, the class name is used as a key. A key is
      provided for each core bqplot scale type so that the frontend can use
      this key regardless of the kernal language.