Example #1
0
def _(dtype: ParamDType.Multicolumn, value: List[str],
      input_metadata: TableMetadata) -> str:
    if dtype.tab_parameter:
        raise RuntimeError("Unsupported: fetch multicolumn with tab_parameter")

    error_agg = PromptErrorAggregator()
    requested_colnames = set(value)

    valid_colnames = []
    # ignore colnames not in valid_columns
    # iterate in table order
    for column in input_metadata.columns:
        if column.name not in requested_colnames:
            continue

        if dtype.column_types and column.type.name not in dtype.column_types:
            if "text" in dtype.column_types:
                found_type = None
            else:
                found_type = column.type.name
            error_agg.add(
                PromptingError.WrongColumnType([column.name], found_type,
                                               dtype.column_types))
        else:
            valid_colnames.append(column.name)

    error_agg.raise_if_nonempty()

    return valid_colnames
Example #2
0
def _(dtype: ParamDType.Multicolumn, value: List[str],
      input_shape: TableShape) -> str:
    if dtype.tab_parameter:
        raise RuntimeError('Unsupported: fetch multicolumn with tab_parameter')

    if input_shape is None:
        return []

    error_agg = PromptErrorAggregator()
    requested_colnames = set(value)

    valid_colnames = []
    # ignore colnames not in valid_columns
    # iterate in table order
    for column in input_shape.columns:
        if column.name not in requested_colnames:
            continue

        if dtype.column_types and column.type.name not in dtype.column_types:
            error_agg.add(
                PromptingError.WrongColumnType([column.name], column.type.name,
                                               dtype.column_types))
        else:
            valid_colnames.append(column.name)

    error_agg.raise_if_nonempty()

    return valid_colnames
Example #3
0
def clean_value_list(dtype: ParamDType.List, value: List[Any],
                     input_metadata: TableMetadata) -> List[Any]:
    inner_clean = partial(clean_value, dtype.inner_dtype)
    ret = []
    error_agg = PromptErrorAggregator()
    for v in value:
        try:
            ret.append(inner_clean(v, input_metadata))
        except PromptingError as err:
            error_agg.extend(err.errors)
    error_agg.raise_if_nonempty()
    return ret
Example #4
0
def _(dtype: ParamDType.Dict, value: Dict[str, Any],
      input_metadata: TableMetadata) -> Dict[str, Any]:
    ret = {}
    error_agg = PromptErrorAggregator()

    for k, v in value.items():
        try:
            ret[k] = clean_value(dtype.properties[k], v, input_metadata)
        except PromptingError as err:
            error_agg.extend(err.errors)

    error_agg.raise_if_nonempty()
    return ret