code: def _pop_colors_and_alpha(glyphclass, kwargs, prefix="", default_alpha=1.0):
      
      result = dict()
  
      # TODO: The need to do this and the complexity of managing this kind of
      # thing throughout the codebase really suggests that we need to have
      # a real stylesheet class, where defaults and Types can declaratively
      # substitute for this kind of imperative logic.
      color = kwargs.pop(prefix + "color", get_default_color())
      for argname in ("fill_color", "line_color"):
          if argname not in glyphclass.properties():
              continue
          result[argname] = kwargs.pop(prefix + argname, color)
  
      # NOTE: text fill color should really always default to black, hard coding
      # this here now until the stylesheet solution exists
      if "text_color" in glyphclass.properties():
          result["text_color"] = kwargs.pop(prefix + "text_color", "black")
  
      alpha = kwargs.pop(prefix + "alpha", default_alpha)
      for argname in ("fill_alpha", "line_alpha", "text_alpha"):
          if argname not in glyphclass.properties():
              continue
          result[argname] = kwargs.pop(prefix + argname, alpha)
  
      return result
docs: Given a kwargs dict, a prefix, and a default value, looks for different
      color and alpha fields of the given prefix, and fills in the default value
      if it doesn't exist.