def PlistValueToPlainValue(plist):
  """Takes the plist contents generated by binplist and returns a plain dict.

  binplist uses rich types to express some of the plist types. We need to
  convert them to types that RDFValueArray will be able to transport.

  Args:
    plist: A plist to convert.

  Returns:
    A simple python type.
  """

  if isinstance(plist, dict):
    ret_value = dict()
    for key, value in iteritems(plist):
      ret_value[key] = PlistValueToPlainValue(value)
    return ret_value
  elif isinstance(plist, list):
    return [PlistValueToPlainValue(value) for value in plist]
  elif isinstance(plist, datetime.datetime):
    return (calendar.timegm(plist.utctimetuple()) * 1000000) + plist.microsecond
  return plist
def PlistValueToPlainValue ( plist ) : if isinstance ( plist , dict ) : ret_value = dict ( ) for key , value in iteritems ( plist ) : ret_value [ key ] = PlistValueToPlainValue ( value ) return ret_value elif isinstance ( plist , list ) : return [ PlistValueToPlainValue ( value ) for value in plist ] elif isinstance ( plist , datetime . datetime ) : return ( calendar . timegm ( plist . utctimetuple ( ) ) * 1000000 ) + plist . microsecond return plist
Takes the plist contents generated by binplist and returns a plain dict.

  binplist uses rich types to express some of the plist types. We need to
  convert them to types that RDFValueArray will be able to transport.

  Args:
    plist: A plist to convert.

  Returns:
    A simple python type.