コード例 #1
0
async def get_table(
        dataset: DatasetName,
        table: TableName,
        session_id: Optional[str] = "",
        filters: List[str] = Query(default=[]),
        token: Optional[str] = Security(oauth),
        blob_settings: BlobSettings = Depends(get_blob_settings),
):
    await log_dep(token, session_id)
    """Get Geo:N:G data from a given dataset and table"""
    try:
        geong_data = get_dataframe_from_blob(
            dataset,
            table,
            await oauth.obo(token),
            blob_settings,
        )
    except ResourceNotFoundError:
        raise HTTPException(status_code=500)
    return models.filter_data(geong_data,
                              as_dict(filters)).to_dict(orient="split")
コード例 #2
0
def read_filtered(dataset, table, **filters):
    """Read filtered data from the API, convert to pandas dataframe"""
    unfiltered = read_all(dataset=dataset, table=table)
    return models.filter_data(unfiltered, filters)
コード例 #3
0
def test_filter_select_one_row_multiple_keys(data_multiple):
    result = filter_data(data_multiple, {"key0": "val00", "key1": "val10"})
    assert (result.to_numpy() == np.array([["val00", "val10"]])).all()
コード例 #4
0
def test_filter_non_overlapping_selection_is_empty(data_multiple):
    result = filter_data(data_multiple, {"key0": "val00", "key1": "val11"})
    assert result.empty
コード例 #5
0
def test_filter_unknown_key(single_column_row):
    with pytest.raises(KeyError):
        filter_data(single_column_row, {"unknown_key": ""})
コード例 #6
0
def test_filter_no_match(single_column_row):
    result = filter_data(single_column_row, {"key": "missing_value"})
    assert result.empty
コード例 #7
0
def test_filter_match_single_element(single_column_row):
    result = filter_data(single_column_row, {"key": "val"})
    assert result.compare(single_column_row).empty
コード例 #8
0
def test_no_filter(single_column_row):
    result = filter_data(single_column_row, {})
    assert result.compare(single_column_row).empty
コード例 #9
0
def read_filtered(reader, dataset, table, **filters):
    """Mock for calling read_filtered() without contacting the API"""
    unfiltered = read_all(reader, dataset=dataset, table=table)
    return models.filter_data(unfiltered, filters)