(
registry,
project,
features: Union[List[str], "FeatureService"],
full_feature_names: bool,
)
| 1308 | |
| 1309 | |
| 1310 | def _get_online_request_context( |
| 1311 | registry, |
| 1312 | project, |
| 1313 | features: Union[List[str], "FeatureService"], |
| 1314 | full_feature_names: bool, |
| 1315 | ): |
| 1316 | from feast.feature_view import DUMMY_ENTITY_NAME |
| 1317 | |
| 1318 | _feature_refs = _get_features(registry, project, features, allow_cache=True) |
| 1319 | |
| 1320 | ( |
| 1321 | requested_feature_views, |
| 1322 | requested_on_demand_feature_views, |
| 1323 | ) = _get_feature_views_to_use( |
| 1324 | registry=registry, |
| 1325 | project=project, |
| 1326 | features=features, |
| 1327 | allow_cache=True, |
| 1328 | hide_dummy_entity=False, |
| 1329 | ) |
| 1330 | |
| 1331 | ( |
| 1332 | entity_name_to_join_key_map, |
| 1333 | entity_type_map, |
| 1334 | join_keys_set, |
| 1335 | ) = _get_entity_maps(registry, project, requested_feature_views) |
| 1336 | |
| 1337 | _validate_feature_refs(_feature_refs, full_feature_names) |
| 1338 | ( |
| 1339 | grouped_refs, |
| 1340 | grouped_odfv_refs, |
| 1341 | ) = _group_feature_refs( |
| 1342 | _feature_refs, |
| 1343 | requested_feature_views, |
| 1344 | requested_on_demand_feature_views, |
| 1345 | ) |
| 1346 | |
| 1347 | # Build expected result names, including version tag when present so |
| 1348 | # multi-version queries (e.g. fv@v1:feat, fv@v2:feat) match the response. |
| 1349 | requested_result_row_names = set() |
| 1350 | for feat_ref in _feature_refs: |
| 1351 | fv_name, version_num, feature_name = _parse_feature_ref(feat_ref) |
| 1352 | if full_feature_names: |
| 1353 | if version_num is not None: |
| 1354 | requested_result_row_names.add( |
| 1355 | f"{fv_name}@v{version_num}__{feature_name}" |
| 1356 | ) |
| 1357 | else: |
| 1358 | requested_result_row_names.add(f"{fv_name}__{feature_name}") |
| 1359 | else: |
| 1360 | requested_result_row_names.add(feature_name) |
| 1361 | |
| 1362 | feature_views = list(view for view, _ in grouped_refs) |
| 1363 | |
| 1364 | needed_request_data = get_needed_request_data(grouped_odfv_refs) |
| 1365 | |
| 1366 | entityless_case = DUMMY_ENTITY_NAME in [ |
| 1367 | entity_name |
no test coverage detected