Exemple #1
0
def csv_convert_list_vals(val, delimiter=LIST_DELIMITER_CSV, list_brackets='[]'):
    '''
    Convert values for writing (to csv)
    NOTE: python 2 csv.writer does not support Unicode: all values must be 
    converted to 8-bit bytestrings to write.
    '''
    delimiter = delimiter + ' '
    if isinstance(val, (list,tuple)):
        if list_brackets:
            return ( list_brackets[0] 
                + delimiter.join([
                    smart_text(to_simple(x)).encode('utf-8') for x in val]) 
                + list_brackets[1] )
        else: 
            return delimiter.join([
                smart_text(to_simple(x)).encode('utf-8') for x in val]) 
    elif val != None:
        if type(val) == bool:
            if val:
                return 'TRUE'
            else:
                return 'FALSE'
        else:
            x = force_text(to_simple(val))
            # MUST encode for csv (understands bytes only)
            y = x.encode('utf-8')
            return y
    else:
        return None
Exemple #2
0
def csv_convert_list_vals(val,
                          delimiter=LIST_DELIMITER_CSV,
                          list_brackets='[]'):
    '''
    Convert values for writing (to csv)
    NOTE: python 2 csv.writer does not support Unicode: all values must be 
    converted to 8-bit bytestrings to write.
    '''
    delimiter = delimiter + ' '
    if isinstance(val, (list, tuple)):
        if list_brackets:
            return (list_brackets[0] + delimiter.join(
                [smart_text(to_simple(x)).encode('utf-8')
                 for x in val]) + list_brackets[1])
        else:
            return delimiter.join(
                [smart_text(to_simple(x)).encode('utf-8') for x in val])
    elif val != None:
        if type(val) == bool:
            if val:
                return 'TRUE'
            else:
                return 'FALSE'
        else:
            x = force_text(to_simple(val))
            # MUST encode for csv (understands bytes only)
            y = x.encode('utf-8')
            return y
    else:
        return None
Exemple #3
0
def csv_convert(val, delimiter=LIST_DELIMITER_CSV, list_brackets='[]'):
    delimiter = delimiter + ' '
    if isinstance(val, (list,tuple)):
        if list_brackets:
            return ( list_brackets[0] 
                + delimiter.join([smart_text(to_simple(x)) for x in val]) 
                + list_brackets[1] )
        else: 
            return delimiter.join([smart_text(to_simple(x)) for x in val]) 
    elif val != None:
        if type(val) == bool:
            if val:
                return 'TRUE'
            else:
                return 'FALSE'
        else:
            return force_text(to_simple(val))
    else:
        return None
Exemple #4
0
    def to_sdf(self, data, options=None):

        data = to_simple(data)

        if 'objects' in data:
            data = data['objects']
        if len(data) == 0:
            return data

        output = cStringIO.StringIO()
        sdfutils.to_sdf(data, output)
        return output.getvalue()
Exemple #5
0
    def to_sdf(self, data, options=None):
        
        data = to_simple(data)

        if 'objects' in data:
            data = data['objects']
        if len(data) == 0:
            return data
        
        output = cStringIO.StringIO()
        sdfutils.to_sdf(data,output)
        return output.getvalue()
Exemple #6
0
    def to_csv(self, data, root='objects', options=None):

        data = to_simple(data)

        raw_data = cStringIO.StringIO()
        writer = csv.writer(raw_data) 

        if 'error' in data:
            for row in dict_to_rows(data['error']):
                writer.writerow(row)
            # writer.writerow(['error'])
            # writer.writerow([data['error']])
            # logger.warn(str(('error', data)))
            return raw_data.getvalue()
            
        if 'objects' in data:
            data = data['objects']

        if len(data) == 0:
            return data

        if isinstance(data, dict):
            # usually, this happens when the data is actually an error message;
            # but also, it could be just one item being returned
            data = dict_to_rows(data)
            for item in data:
                writer.writerow(item)
        else:
            i = 0
            keys = None
            for item in data:
                if i == 0:
                    keys = item.keys()
                    writer.writerow([smart_text(key) for key in keys])
                i += 1
                writer.writerow([csvutils.csv_convert(val) for val in item.values()])

        return raw_data.getvalue()