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