Push label data to a LabelView (or any PushSource-backed FeatureView).
(request: PushRequest)
| 90 | |
| 91 | @rest_app.post("/push") |
| 92 | def push_labels(request: PushRequest): |
| 93 | """Push label data to a LabelView (or any PushSource-backed FeatureView).""" |
| 94 | try: |
| 95 | df = pd.DataFrame(request.df) |
| 96 | if "event_timestamp" in df.columns: |
| 97 | df["event_timestamp"] = pd.to_datetime( |
| 98 | df["event_timestamp"], utc=True |
| 99 | ).dt.tz_localize(None) |
| 100 | to = request.to or "online" |
| 101 | if to == "online_and_offline": |
| 102 | store.push( |
| 103 | request.push_source_name, |
| 104 | df, |
| 105 | to=feast.data_source.PushMode.ONLINE_AND_OFFLINE, |
| 106 | ) |
| 107 | elif to == "offline": |
| 108 | store.push( |
| 109 | request.push_source_name, df, to=feast.data_source.PushMode.OFFLINE |
| 110 | ) |
| 111 | else: |
| 112 | store.push( |
| 113 | request.push_source_name, df, to=feast.data_source.PushMode.ONLINE |
| 114 | ) |
| 115 | return {"status": "ok"} |
| 116 | except Exception: |
| 117 | logger.exception("Push failed") |
| 118 | return _safe_error_response("Push") |
| 119 | |
| 120 | class GetOnlineFeaturesRequest(BaseModel): |
| 121 | feature_view: str |
nothing calls this directly
no test coverage detected