Ejemplo n.º 1
0
        def _write_hook(_, data):
            if data[-1] == '\n':
                data = data[:-1]
            else:
                self.log.warning('Unexpected line from copy without end of line.')

            vals = data.split('\t')
            obf_vals = []
            for field, value in zip(column_list, vals):
                obf_col = obf_col_map.get(field, {})
                action = obf_col.get('action', actions.HASH)

                if action == actions.KEEP:
                    obf_vals.append(value)
                    continue
                str_val = skytools.unescape_copy(value)
                if str_val is None:
                    obf_vals.append(value)
                    continue
                if action == actions.HASH:
                    obf_val = hash_function(str_val)
                    obf_vals.append('%d' % obf_val)
                elif action == actions.JSON:
                    obf_val = self.obf_json(str_val, obf_col)
                    obf_vals.append(skytools.quote_copy(obf_val))
                else:
                    raise ValueError('Invalid value for action: %s' % action)
            obf_data = '\t'.join(obf_vals) + '\n'
            return obf_data
Ejemplo n.º 2
0
def _gen_list_copy(tbl, row, fields, qfields):
    tmp = []
    for i in range(len(fields)):
        try:
            v = row[i]
        except IndexError:
            v = None
        tmp.append(skytools.quote_copy(v))
    return "\t".join(tmp)
Ejemplo n.º 3
0
def _gen_list_copy(tbl, row, fields, qfields):
    tmp = []
    for i in range(len(fields)):
        try:
            v = row[i]
        except IndexError:
            v = None
        tmp.append(skytools.quote_copy(v))
    return "\t".join(tmp)
Ejemplo n.º 4
0
def _gen_dict_copy(tbl, row, fields, qfields):
    tmp = []
    for f in fields:
        v = row.get(f)
        tmp.append(skytools.quote_copy(v))
    return "\t".join(tmp)
Ejemplo n.º 5
0
def _gen_dict_copy(tbl, row, fields, qfields):
    tmp = []
    for f in fields:
        v = row.get(f)
        tmp.append(skytools.quote_copy(v))
    return "\t".join(tmp)
Ejemplo n.º 6
0
def obf_vals_to_data(obf_vals):
    """Converts obfuscated values back to copy data
    """
    vals = [skytools.quote_copy(value) for value in obf_vals]
    obf_data = '\t'.join(vals) + '\n'
    return obf_data