code: def definition(keyword, key=None):
      
  
      for item in dir(definitions):
          if not item.startswith("__"):
              var = getattr(definitions, item)
              if isinstance(var, dict):
                  if var.get('key') == keyword or var.get(key) == keyword:
                      return var
      return None
docs: Given a keyword and a key (optional), try to get a definition
      dict for it.
  
      .. versionadded:: 3.2
  
      Definition dicts are defined in keywords.py. We try to return
      one if present, otherwise we return none. Using this method you
      can present rich metadata to the user e.g.
  
      keyword = 'layer_purpose'
      kio = safe.utilities.keyword_io.Keyword_IO()
      definition = kio.definition(keyword)
      print definition
  
      :param keyword: A keyword key.
      :type keyword: str
  
      :param key: A specific key for a deeper search
      :type key: str
  
      :returns: A dictionary containing the matched key definition
          from definitions, otherwise None if no match was found.
      :rtype: dict, None