code: def _parse_project_urls(data: List[str]) -> Dict[str, str]:
      """Parse a list of label/URL string pairings separated by a comma."""
      urls = {}
      for pair in data:
          # Our logic is slightly tricky here as we want to try and do
          # *something* reasonable with malformed data.
          #
          # The main thing that we have to worry about, is data that does
          # not have a ',' at all to split the label from the Value. There
          # isn't a singular right answer here, and we will fail validation
          # later on (if the caller is validating) so it doesn't *really*
          # matter, but since the missing value has to be an empty str
          # and our return value is dict[str, str], if we let the key
          # be the missing value, then they'd have multiple '' values that
          # overwrite each other in a accumulating dict.
          #
          # The other potentional issue is that it's possible to have the
          # same label multiple times in the metadata, with no solid "right"
          # answer with what to do in that case. As such, we'll do the only
          # thing we can, which is treat the field as unparseable and add it
          # to our list of unparsed fields.
          parts = [p.strip() for p in pair.split(",", 1)]
          parts.extend(
              [""] * (max(0, 2 - len(parts)))
          )  # Ensure 2 items
  
          # TODO: The spec doesn't say anything about if the keys should be
          #       considered case sensitive or not... logically they should
          #       be case-preserving and case-insensitive, but doing that
          #       would open up more cases where we might have duplicate
          #       entries.
          label, url = parts
          if label in urls:
              # The label already exists in our set of urls, so this field
              # is unparseable, and we can just add the whole thing to our
              # unparseable data and stop processing it.
              raise KeyError("duplicate labels in project urls")
          urls[label] = url
  
      return urls
  
imports: import email.feedparser
  import email.header
  import email.message
  import email.parser
  import email.policy
  import sys
  import typing
  from typing import Any, Callable, Dict, Generic, List, Optional, Tuple, Type, Union, cast
  from .None import requirements, specifiers, utils, version
label_desc: Use image node_id 2 for calling a global function with example usage: _parse_project_urls(data) and returns: urls