code: def set_layer(self, layer, keywords=None):
          
          self.layer = layer
          if keywords is not None:
              self.metadata = keywords
          else:
              # Check if it has keywords
              if not hasattr(layer, 'keywords'):
                  message = 'Layer {layer_name} does not have keywords.'.format(
                      layer_name=layer.name())
                  raise KeywordNotFoundError(message)
              self.metadata = layer.keywords
          self.populate_parameter()
docs: Set layer and update UI accordingly.
  
          :param layer: A vector layer that has been already patched with
              metadata.
          :type layer: QgsVectorLayer
  
          :param keywords: Custom keyword for the layer.
          :type keywords: dict, None