1818
1919from feast .errors import (
2020 FeastFeatureServerTypeInvalidError ,
21- FeastFeatureServerTypeSetError ,
2221 FeastOfflineStoreInvalidName ,
2322 FeastOnlineStoreInvalidName ,
24- FeastProviderNotSetError ,
2523 FeastRegistryNotSetError ,
2624 FeastRegistryTypeInvalidError ,
2725)
8583 "local" : "feast.infra.feature_servers.local_process.config.LocalFeatureServerConfig" ,
8684}
8785
88- FEATURE_SERVER_TYPE_FOR_PROVIDER = {
89- "local" : "local" ,
90- }
91-
9286
9387class FeastBaseModel (BaseModel ):
9488 """Feast Pydantic Configuration Class"""
@@ -138,7 +132,7 @@ class RepoConfig(FeastBaseModel):
138132 provider account, as long as they have different project ids.
139133 """
140134
141- provider : StrictStr
135+ provider : StrictStr = "local"
142136 """ str: local or gcp or aws """
143137
144138 registry_config : Any = Field (alias = "registry" , default = "data/registry.db" )
@@ -191,30 +185,10 @@ def __init__(self, **data: Any):
191185 self .registry_config = data ["registry" ]
192186
193187 self ._offline_store = None
194- if "offline_store" in data :
195- self .offline_config = data ["offline_store" ]
196- else :
197- if data ["provider" ] == "local" :
198- self .offline_config = "file"
199- elif data ["provider" ] == "gcp" :
200- self .offline_config = "bigquery"
201- elif data ["provider" ] == "aws" :
202- self .offline_config = "redshift"
203- elif data ["provider" ] == "azure" :
204- self .offline_config = "mssql"
188+ self .offline_config = data .get ("offline_store" , "file" )
205189
206190 self ._online_store = None
207- if "online_store" in data :
208- self .online_config = data ["online_store" ]
209- else :
210- if data ["provider" ] == "local" :
211- self .online_config = "sqlite"
212- elif data ["provider" ] == "gcp" :
213- self .online_config = "datastore"
214- elif data ["provider" ] == "aws" :
215- self .online_config = "dynamodb"
216- elif data ["provider" ] == "rockset" :
217- self .online_config = "rockset"
191+ self .online_config = data .get ("online_store" , "sqlite" )
218192
219193 self ._batch_engine = None
220194 if "batch_engine" in data :
@@ -325,20 +299,11 @@ def _validate_online_store_config(cls, values: Any) -> Any:
325299 values ["online_store" ] = None
326300 return values
327301
328- # Make sure that the provider configuration is set. We need it to set the defaults
329- if "provider" not in values :
330- raise FeastProviderNotSetError ()
331-
332302 # Set the default type
333303 # This is only direct reference to a provider or online store that we should have
334304 # for backwards compatibility.
335305 if "type" not in values ["online_store" ]:
336- if values ["provider" ] == "local" :
337- values ["online_store" ]["type" ] = "sqlite"
338- elif values ["provider" ] == "gcp" :
339- values ["online_store" ]["type" ] = "datastore"
340- elif values ["provider" ] == "aws" :
341- values ["online_store" ]["type" ] = "dynamodb"
306+ values ["online_store" ]["type" ] = "sqlite"
342307
343308 online_store_type = values ["online_store" ]["type" ]
344309
@@ -361,20 +326,9 @@ def _validate_offline_store_config(cls, values: Any) -> Any:
361326 if not isinstance (values ["offline_store" ], Dict ):
362327 return values
363328
364- # Make sure that the provider configuration is set. We need it to set the defaults
365- if "provider" not in values :
366- raise FeastProviderNotSetError ()
367-
368329 # Set the default type
369330 if "type" not in values ["offline_store" ]:
370- if values ["provider" ] == "local" :
371- values ["offline_store" ]["type" ] = "file"
372- elif values ["provider" ] == "gcp" :
373- values ["offline_store" ]["type" ] = "bigquery"
374- elif values ["provider" ] == "aws" :
375- values ["offline_store" ]["type" ] = "redshift"
376- if values ["provider" ] == "azure" :
377- values ["offline_store" ]["type" ] = "mssql"
331+ values ["offline_store" ]["type" ] = "file"
378332
379333 offline_store_type = values ["offline_store" ]["type" ]
380334
@@ -398,15 +352,7 @@ def _validate_feature_server_config(cls, values: Any) -> Any:
398352 if not isinstance (values ["feature_server" ], Dict ):
399353 return values
400354
401- # Make sure that the provider configuration is set. We need it to set the defaults
402- if "provider" not in values :
403- raise FeastProviderNotSetError ()
404-
405- default_type = FEATURE_SERVER_TYPE_FOR_PROVIDER .get (values ["provider" ])
406- defined_type = values ["feature_server" ].get ("type" , default_type )
407- # Make sure that the type is either not set, or set correctly, since it's defined by the provider
408- if defined_type not in (default_type , "local" ):
409- raise FeastFeatureServerTypeSetError (defined_type )
355+ defined_type = values ["feature_server" ].get ("type" , "local" )
410356 values ["feature_server" ]["type" ] = defined_type
411357
412358 # Validate the dict to ensure one of the union types match
0 commit comments