feast-dev / feast

The Open Source Feature Store for Machine Learning
https://feast.dev
Apache License 2.0
5.37k stars 954 forks source link

Google cloud datastore: Client.__init__() got an unexpected keyword argument 'database' #4314

Open jimcybersec opened 1 week ago

jimcybersec commented 1 week ago

Expected Behavior

Can read online features from a Google Cloud Datastore instance.

Current Behavior

In the Python SDK, FeatureStore class attempts to initialize a datastore Client by passing a 'database' argument. Feast's setup.py lower bounds google-cloud-datastore at 2.1.0 whereas the 'database' argument was not introduced to the datastore Client until version 2.16.0 of google-cloud-datastore: https://github.com/googleapis/python-datastore/blob/v2.16.0/google/cloud/datastore/client.py#L301

This results in error "Client.init() got an unexpected keyword argument 'database'" with google-cloud-datastore <2.16.0 installed.

Steps to reproduce

Attempt to read online features from a known Google Cloud Datastore instance with google-cloud-datastore <2.16.0 and Feast version 0.38. This problem appears to also exist in the latest Feast release.

Specifications

Possible Solution

Increase google-cloud-datastore lower bound in setup.py to >=2.16.0.

tokoko commented 1 week ago

2.16.0 has been out almost a year, so increasing a lower bound sounds good. @jimcybersec Would you like to submit a PR?

amirali-shfz commented 4 days ago

any workarounds meanwhile?

tokoko commented 3 days ago

@amirali-shfz forcing google-cloud-datastore version to be >=2.16.0 is the workaround. Are you unable to do that?

amirali-shfz commented 3 days ago

I ended up just downgrading to 0.37.1 lol