You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Сейчас сложно писать куски кода, где предполагается определенный порядок элементов в возвращаемом списке.
Например, по get_all() предполагается, что элементы отсортированы по ID, а по get_by_ID и call, что порядок элементов в результатах вызова такой же, как и во входных массивах.
Однако есть развилки:
get_all()
А мы уверены, что в каждом списке будет ID? Или, более общо, элемент, по которому будет сортировка? Как нам понять, есть он или нет?
Решение:
- [ ] Если есть ID, то сортировать по нему. Если его нет, то не сортировать. - решил, что в этом нет потребности. Сортировка потребует конверсии ID в int, а это может быть неожиданным для пользователя.
get_by_ID()
Что возвращать?
dict вида ID: results?
сломается имеющийся код
но поиск в результатах вызова будет очень прост
tuple вида (ID, results), где tuple отсортирован по ID?
код не сломается
просто список списков результатов, отсортированный также, как и входящий список
код сломается
поиск в результатах вызова также будет прост
кажется, что список списков - это менее понятно, чем dict
будет хорошая аналогия со структурой результатов, возвращаемых методом call()
Решение:
Пока что сортировать текущий list of tuples
Оказалось, что в этом нет смысла, пока в _get_by_ID на входе происходит дедупликация списка ID через преобразование его в set.
[х] Нужно выбрать один из вариантов:
при получении дублей на вход поднимать исключение,
не обращать внимание на дубли и делать запросы столько раз, сколько запросил пользователь - отличная идея для начала, так как она убирает неожиданное для пользователя поведение
Убрать дедупликацию ID_list на входе
Сортировать результаты согласно порядок элементов в ID_list
Сейчас сложно писать куски кода, где предполагается определенный порядок элементов в возвращаемом списке.
Например, по
get_all()
предполагается, что элементы отсортированы по ID, а поget_by_ID
иcall
, что порядок элементов в результатах вызова такой же, как и во входных массивах.Однако есть развилки:
get_all()
Решение:
- [ ] Если есть ID, то сортировать по нему. Если его нет, то не сортировать.- решил, что в этом нет потребности. Сортировка потребует конверсии ID в int, а это может быть неожиданным для пользователя.get_by_ID()
call()
Решение:
_get_by_ID
на входе происходит дедупликация списка ID через преобразование его вset
.ID_list
на входеID_list
call()
Если сортировать результаты так же, как и запросы, то как это сделать через код?
Надо сделать preserve_IDs, на место IDs подавать номер элемента item_list. Потом по этому номеру делать сопоставление результатов в выходном массиве.
Поправить всю доку касательно сортировки
The text was updated successfully, but these errors were encountered: