Почему разбиваю на два модуля -- все методы из класса можно разделить на функции, которые вызываются по имени и, грубо говоря, вспомогательные методы. Например, метод расставляющий пробелы между каждыми тремя цифрами в строке -- вспомогательный, его я хочу определить в tools, а метод, который возвращает погоду -- к функциям, командам.
Aquinary, не используйте in при сравнивания строк. Иначе если collection["name"] = "aaa", а items["name"] = "aaabbb" -- будет True (проверка наличия первой строки внутри второй)
Если хочется с in: if collection["name"] in collections.keys()
Andy_U, для одинаковых параметров не всегда (почти всегда, но не хочется терять эту не лишнюю случайность) будет одинаковый результат. Есть альтернатива такому хеширование внутри, грубо говоря, только двух этих вызовов?
По логике программы, двух вызовов функции с одинаковыми данными не произойдет никогда, но при дебаге это полезно.
twobomb, Два раза вызывать эту функцию нельзя. В ней запросы к БД и другим API, время выполнения больше 100-200 мс, на производительности скажется сильно.
SagePtr, ответ, отмеченный решением не работает, а в остальных используется некое "dbname", которое, судя по всему, предлагается взять с потолка, хотя именно dbname мне и нужно достать из базы.