(
self, request: RegistryServer_pb2.ApplyFeatureViewRequest, context
)
| 347 | ) |
| 348 | |
| 349 | def ApplyFeatureView( |
| 350 | self, request: RegistryServer_pb2.ApplyFeatureViewRequest, context |
| 351 | ): |
| 352 | from feast.labeling.label_view import LabelView |
| 353 | |
| 354 | feature_view_type = request.WhichOneof("base_feature_view") |
| 355 | feature_view_meta: BaseFeatureView |
| 356 | |
| 357 | if feature_view_type == "feature_view": |
| 358 | feature_view_meta = FeatureView.from_proto( |
| 359 | request.feature_view, skip_udf=True |
| 360 | ) |
| 361 | elif feature_view_type == "on_demand_feature_view": |
| 362 | feature_view_meta = OnDemandFeatureView.from_proto( |
| 363 | request.on_demand_feature_view, skip_udf=True |
| 364 | ) |
| 365 | elif feature_view_type == "stream_feature_view": |
| 366 | feature_view_meta = StreamFeatureView.from_proto( |
| 367 | request.stream_feature_view, skip_udf=True |
| 368 | ) |
| 369 | elif feature_view_type == "label_view": |
| 370 | feature_view_meta = LabelView.from_proto(request.label_view) |
| 371 | else: |
| 372 | raise ValueError(f"Unexpected feature view type: {feature_view_type}") |
| 373 | |
| 374 | getter: Callable |
| 375 | if isinstance(feature_view_meta, StreamFeatureView): |
| 376 | getter = self.proxied_registry.get_stream_feature_view |
| 377 | elif isinstance(feature_view_meta, FeatureView): |
| 378 | getter = self.proxied_registry.get_feature_view |
| 379 | elif isinstance(feature_view_meta, OnDemandFeatureView): |
| 380 | getter = self.proxied_registry.get_on_demand_feature_view |
| 381 | elif isinstance(feature_view_meta, LabelView): |
| 382 | getter = self.proxied_registry.get_label_view |
| 383 | else: |
| 384 | getter = self.proxied_registry.get_feature_view |
| 385 | |
| 386 | assert_permissions_to_update( |
| 387 | resource=cast(FeastObject, feature_view_meta), |
| 388 | getter=cast(Callable, getter), |
| 389 | project=request.project, |
| 390 | ) |
| 391 | |
| 392 | feature_view: BaseFeatureView |
| 393 | if feature_view_type == "feature_view": |
| 394 | feature_view = FeatureView.from_proto(request.feature_view) |
| 395 | elif feature_view_type == "on_demand_feature_view": |
| 396 | feature_view = OnDemandFeatureView.from_proto( |
| 397 | request.on_demand_feature_view |
| 398 | ) |
| 399 | elif feature_view_type == "stream_feature_view": |
| 400 | feature_view = StreamFeatureView.from_proto(request.stream_feature_view) |
| 401 | elif feature_view_type == "label_view": |
| 402 | feature_view = LabelView.from_proto(request.label_view) |
| 403 | else: |
| 404 | raise ValueError(f"Unexpected feature view type: {feature_view_type}") |
| 405 | |
| 406 | ( |
nothing calls this directly
no test coverage detected