algoliasearch-client-python icon indicating copy to clipboard operation
algoliasearch-client-python copied to clipboard

Make SearchClient more pythonic

Open kai687 opened this issue 3 years ago • 1 comments

  • Algolia Client Version: 2.5.0
  • Language Version: Python 3.8

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?

kai687 avatar Sep 20 '21 10:09 kai687

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

morganpartee avatar Dec 13 '22 20:12 morganpartee