def parse_raw_obj(obj_info):
 raw_obj_name = obj_info['name'].encode('utf-8')
 (policy_index, obj_name) = raw_obj_name.split(':', 1)
 q_policy_index = int(policy_index)
 (account, container, obj) = split_path(obj_name, 3, 3, rest_with_last=True)
 try:
  q_op = {'application/x-put': 'PUT', 'application/x-delete': 'DELETE'}[obj_info['content_type']]
 except KeyError:
  raise ValueError(('invalid operation type %r' % obj_info.get('content_type', None)))
 return {'q_policy_index': q_policy_index, 'account': account, 'container': container, 'obj': obj, 'q_op': q_op, 'q_ts': decode_timestamps(obj_info['hash'])[0], 'q_record': last_modified_date_to_timestamp(obj_info['last_modified']), 'path': ('/%s/%s/%s' % (account, container, obj))}

def parse_raw_obj ( obj_info ) : raw_obj_name = obj_info [ 'name' ] . encode ( 'utf-8' ) ( policy_index , obj_name ) = raw_obj_name . split ( ':' , 1 ) q_policy_index = int ( policy_index ) ( account , container , obj ) = split_path ( obj_name , 3 , 3 , rest_with_last = True ) try : q_op = { 'application/x-put' : 'PUT' , 'application/x-delete' : 'DELETE' } [ obj_info [ 'content_type' ] ] except KeyError : raise ValueError ( ( 'invalid operation type %r' % obj_info . get ( 'content_type' , None ) ) ) return { 'q_policy_index' : q_policy_index , 'account' : account , 'container' : container , 'obj' : obj , 'q_op' : q_op , 'q_ts' : decode_timestamps ( obj_info [ 'hash' ] ) [ 0 ] , 'q_record' : last_modified_date_to_timestamp ( obj_info [ 'last_modified' ] ) , 'path' : ( '/%s/%s/%s' % ( account , container , obj ) ) }
translate a reconciler container listing entry to a dictionary containing the parts of the misplaced object queue entry .