code: def _parse_local_location(loc):
      '''Parse a local caveat location as generated by LocalThirdPartyCaveat.
  
      This is of the form:
  
          local <version> <pubkey>
  
      where <version> is the bakery version of the client that we're
      adding the local caveat for.
  
      It returns None if the location does not represent a local
      caveat location.
      @return a ThirdPartyInfo.
      '''
      if not (loc.startswith('local ')):
          return None
      v = VERSION_1
      fields = loc.split()
      fields = fields[1:]  # Skip 'local'
      if len(fields) == 2:
          try:
              v = int(fields[0])
          except ValueError:
              return None
          fields = fields[1:]
      if len(fields) == 1:
          key = PublicKey.deserialize(fields[0])
          return ThirdPartyInfo(public_key=key, version=v)
      return Nonf _parse_local_location(loc):
      '''Parse a local caveat location as generated by LocalThirdPartyCaveat.
  
      This is of the form:
  
          local <version> <pubkey>
  
      where <version> is the bakery version of the client that we're
      adding the local caveat for.
  
      It returns None if the location does not represent a local
      caveat location.
      @return a ThirdPartyInfo.
      '''
      if not (loc.startswith('local ')):
          return None
      v = VERSION_1
      fields = loc.split()
      fields = fields[1:]  # Skip 'local'
      if len(fields) == 2:
          try:
              v = int(fields[0])
          except ValueError:
              return None
          fields = fields[1:]
      if len(fields) == 1:
          key = PublicKey.deserialize(fields[0])
          return ThirdPartyInfo(public_key=key, version=v)
      return None
docs: Parse a local caveat location as generated by LocalThirdPartyCaveat.
  
      This is of the form:
  
          local <version> <pubkey>
  
      where <version> is the bakery version of the client that we're
      adding the local caveat for.
  
      It returns None if the location does not represent a local
      caveat location.
      @return a ThirdPartyInfo.