Skip to content

Commit 2cf07af

Browse files
committed
chore: some types improvements
1 parent bf70da4 commit 2cf07af

File tree

2 files changed

+29
-32
lines changed

2 files changed

+29
-32
lines changed

algoliasearch_django/models.py

Lines changed: 28 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from functools import partial
55
from itertools import chain
66
import logging
7+
from typing import Callable, Iterable, Optional
78

89
from algoliasearch.http.exceptions import AlgoliaException
910
from algoliasearch.search.models.operation_index_params import OperationIndexParams
@@ -57,7 +58,7 @@ class AlgoliaIndex(object):
5758
tags = None
5859

5960
# Use to specify the index to target on Algolia.
60-
index_name = None
61+
index_name: str | None = None
6162

6263
# Use to specify the settings of the index.
6364
settings = None
@@ -72,9 +73,27 @@ class AlgoliaIndex(object):
7273
# Name of the attribute to check on instances if should_index is not a callable
7374
_should_index_is_method = False
7475

76+
get_queryset: Optional[Callable[[], Iterable]] = None
77+
7578
def __init__(self, model, client, settings):
7679
"""Initializes the index."""
77-
self.__init_index(model, settings)
80+
if not self.index_name:
81+
self.index_name = model.__name__
82+
83+
tmp_index_name = "{index_name}_tmp".format(index_name=self.index_name)
84+
85+
if "INDEX_PREFIX" in settings:
86+
self.index_name = settings["INDEX_PREFIX"] + "_" + self.index_name
87+
tmp_index_name = "{index_prefix}_{tmp_index_name}".format(
88+
tmp_index_name=tmp_index_name, index_prefix=settings["INDEX_PREFIX"]
89+
)
90+
if "INDEX_SUFFIX" in settings:
91+
self.index_name += "_" + settings["INDEX_SUFFIX"]
92+
tmp_index_name = "{tmp_index_name}_{index_suffix}".format(
93+
tmp_index_name=tmp_index_name, index_suffix=settings["INDEX_SUFFIX"]
94+
)
95+
96+
self.tmp_index_name = tmp_index_name
7897

7998
self.model = model
8099
self.__client = client
@@ -170,25 +189,6 @@ def __init__(self, model, client, settings):
170189
)
171190
)
172191

173-
def __init_index(self, model, settings):
174-
if not self.index_name:
175-
self.index_name = model.__name__
176-
177-
tmp_index_name = "{index_name}_tmp".format(index_name=self.index_name)
178-
179-
if "INDEX_PREFIX" in settings:
180-
self.index_name = settings["INDEX_PREFIX"] + "_" + self.index_name
181-
tmp_index_name = "{index_prefix}_{tmp_index_name}".format(
182-
tmp_index_name=tmp_index_name, index_prefix=settings["INDEX_PREFIX"]
183-
)
184-
if "INDEX_SUFFIX" in settings:
185-
self.index_name += "_" + settings["INDEX_SUFFIX"]
186-
tmp_index_name = "{tmp_index_name}_{index_suffix}".format(
187-
tmp_index_name=tmp_index_name, index_suffix=settings["INDEX_SUFFIX"]
188-
)
189-
190-
self.tmp_index_name = tmp_index_name
191-
192192
@staticmethod
193193
def _validate_geolocation(geolocation):
194194
"""
@@ -239,7 +239,7 @@ def get_raw_record(self, instance, update_fields=None):
239239
if callable(self.tags):
240240
tmp["_tags"] = self.tags(instance)
241241
if not isinstance(tmp["_tags"], list):
242-
tmp["_tags"] = list(tmp["_tags"])
242+
tmp["_tags"] = list(tmp["_tags"]) # pyright: ignore
243243

244244
logger.debug("BUILD %s FROM %s", tmp["objectID"], self.model)
245245
return tmp
@@ -374,12 +374,7 @@ def update_records(self, qs, batch_size=1000, **kwargs):
374374
tmp["objectID"] = elt
375375
batch.append(dict(tmp))
376376

377-
if len(batch) >= batch_size:
378-
self.__client.partial_update_objects(
379-
index_name=self.index_name, objects=batch, wait_for_tasks=True
380-
)
381-
batch = []
382-
377+
# TODO: pass batch_size to partial_update_objects
383378
if len(batch) > 0:
384379
self.__client.partial_update_objects(
385380
index_name=self.index_name, objects=batch, wait_for_tasks=True
@@ -519,9 +514,10 @@ def reindex_all(self, batch_size=1000):
519514

520515
counts = 0
521516
batch = []
517+
qs = []
522518

523-
if hasattr(self, "get_queryset") and callable(self.get_queryset): # pyright: ignore
524-
qs = self.get_queryset() # pyright: ignore
519+
if hasattr(self, "get_queryset") and callable(self.get_queryset):
520+
qs = self.get_queryset()
525521
else:
526522
qs = self.model.objects.all()
527523

@@ -550,7 +546,8 @@ def reindex_all(self, batch_size=1000):
550546
_resp = self.__client.operation_index(
551547
self.tmp_index_name,
552548
OperationIndexParams(
553-
operation=OperationType.MOVE, destination=self.index_name
549+
operation=OperationType.MOVE,
550+
destination=self.index_name, # pyright: ignore
554551
),
555552
)
556553
self.__client.wait_for_task(self.tmp_index_name, _resp.task_id)

tox.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,4 +72,4 @@ commands =
7272
pip3 freeze > requirements.txt
7373
ruff check --fix --unsafe-fixes
7474
ruff format .
75-
pyright
75+
pyright algoliasearch_django

0 commit comments

Comments
 (0)