def get_velox_type()

in torcharrow/velox_rt/typing.py [0:0]


def get_velox_type(dtype: DType):
    underlying_dtype = get_underlying_dtype(dtype)
    if underlying_dtype == int64:
        return velox.VeloxType_BIGINT()
    elif underlying_dtype == int32:
        return velox.VeloxType_INTEGER()
    elif underlying_dtype == int16:
        return velox.VeloxType_SMALLINT()
    elif underlying_dtype == int8:
        return velox.VeloxType_TINYINT()
    elif underlying_dtype == float32:
        return velox.VeloxType_REAL()
    elif underlying_dtype == float64:
        return velox.VeloxType_DOUBLE()
    elif underlying_dtype == string:
        return velox.VeloxType_VARCHAR()
    elif underlying_dtype == boolean:
        return velox.VeloxType_BOOLEAN()
    elif isinstance(underlying_dtype, List_):
        return velox.VeloxArrayType(get_velox_type(underlying_dtype.item_dtype))
    elif isinstance(underlying_dtype, Map):
        return velox.VeloxMapType(
            get_velox_type(underlying_dtype.key_dtype),
            get_velox_type(underlying_dtype.item_dtype),
        )
    elif isinstance(underlying_dtype, Struct):
        return velox.VeloxRowType(
            [f.name for f in underlying_dtype.fields],
            [get_velox_type(f.dtype) for f in underlying_dtype.fields],
        )
    else:
        raise NotImplementedError(str(underlying_dtype))