def compute_up(expr, data, **kwargs): attr = expr.attr if attr == 'date': return sa.func.date(data).label(expr._name) elif attr == 'dayofyear': attr = 'doy' return sa.extract(attr, data).cast(dshape_to_alchemy(expr.schema)).label( expr._name, )
def test_dshape_to_alchemy(): assert dshape_to_alchemy('string') == sa.Text assert isinstance(dshape_to_alchemy('string[40]'), sa.String) assert not isinstance(dshape_to_alchemy('string["ascii"]'), sa.Unicode) assert isinstance(dshape_to_alchemy('string[40, "U8"]'), sa.Unicode) assert dshape_to_alchemy('string[40]').length == 40 assert dshape_to_alchemy('float32') == sa.REAL assert dshape_to_alchemy('float64') == sa.FLOAT
def compute_up(expr, data, **kwargs): column = first(data.inner_columns) cast = sa.cast(column, dshape_to_alchemy(expr.to)).label(expr._name) return reconstruct_select([cast], data)
def compute_up(expr, data, **kwargs): return sa.cast(data, dshape_to_alchemy(expr.to)).label(expr._name)
def get_unsafe_inner_columns(b, expr): return [sa.literal(b, dshape_to_alchemy(expr.dshape)).label(expr._name)]
def make_sqlalchemy_table(expr): return sa.Table(expr._name, sa.MetaData(), *dshape_to_alchemy(expr.dshape))
def make_sqlalchemy_table(expr): name = expr._name columns = dshape_to_alchemy(expr.dshape) return sa.Table(name, sa.MetaData(), *columns)