Example #1
0
    def test_to_object_array_tuples(self):
        r = (5, 6)
        values = [r]
        result = lib.to_object_array_tuples(values)

        try:
            # make sure record array works
            from collections import namedtuple
            record = namedtuple('record', 'x y')
            r = record(5, 6)
            values = [r]
            result = lib.to_object_array_tuples(values)  # noqa
        except ImportError:
            pass
Example #2
0
    def test_to_object_array_tuples(self):
        r = (5, 6)
        values = [r]
        result = lib.to_object_array_tuples(values)

        try:
            # make sure record array works
            from collections import namedtuple
            record = namedtuple('record', 'x y')
            r = record(5, 6)
            values = [r]
            result = lib.to_object_array_tuples(values)  # noqa
        except ImportError:
            pass
Example #3
0
def _wrap_result(data,
                 column_names,
                 table=None,
                 index_col=None,
                 coerce_float=True,
                 column_dtypes=None,
                 parse_dates=None):
    """Wrap result set of query in a afw table """

    result_size = len(data)
    # Turn into columns first

    from pandas import lib
    data = list(lib.to_object_array_tuples(data).T)
    arrays = [lib.maybe_convert_objects(arr, try_float=True) for arr in data]

    _harmonize_columns(arrays, column_names, table, column_dtypes, parse_dates)
    schema = afw_table.Schema()

    # build schema
    for i, column_name in enumerate(column_names):
        column_type = arrays[i].dtype
        schema.addField(column_name, type=column_type.type)

    catalog = afw_table.BaseCatalog(schema)

    # Preallocate rows based on first column length
    catalog.preallocate(result_size)
    for i in range(result_size):
        record = catalog.addNew()
        for column_i in range(len(column_names)):
            record.set(column_names[column_i], arrays[column_i][i])
    return catalog