MCPcopy Index your code
hub / github.com/feast-dev/feast / ApplyFeatureView

Method ApplyFeatureView

sdk/python/feast/registry_server.py:349–414  ·  view source on GitHub ↗
(
        self, request: RegistryServer_pb2.ApplyFeatureViewRequest, context
    )

Source from the content-addressed store, hash-verified

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 (

Callers

nothing calls this directly

Calls 3

from_protoMethod · 0.45
apply_feature_viewMethod · 0.45

Tested by

no test coverage detected