algolia / algoliasearch-client-python

⚡️ A fully-featured and blazing-fast Python API client to interact with Algolia.
https://www.algolia.com/doc/api-client/getting-started/install/python/?language=python
MIT License
194 stars 69 forks source link

Make SearchClient more pythonic #535

Open kai687 opened 2 years ago

kai687 commented 2 years ago

Description

It's a small thing, but I'm so used to instantiating Python objects like this:

client = SearchClient(app_id, api_key)

that I didn't even think about using SearchClient.create(..). It took me some time to figure this out, because by chance, the SearchClient.__init__ method accepts two arguments and there's no validation.

Steps To Reproduce

For example:

from algoliasearch.search_client import SearchClient

client = SearchClient('APP_ID', 'API_KEY')
client.get_api_key('API_KEY')

throws a traceback because self._transporters is now an instance of str.

Expected Behavior

Ideally, the SearchClient object should behave like other Python objects, with user-provided arguments to the __init__ method. If that won't work, can it be an empty __init__ method without user arguments, and you assign the transporter and config attributes in the create method or elsewhere?

morganpartee commented 1 year ago

Hahaha, holy crap, thanks. That was my problem.