27 февраля 2024
except SQLAlchemyError as e:
await self._session.rollback()
logging.error(f"Failed to add user to the database: {e}")
raise DBError("Failed to add user to the database") from e
Коллеги, логгировать лучше в месте, где рейзится ошибка? Или в обработчике этой ошибки?
Вообще кажется, что лучше репозиторий будет в лог писать, а не вьюха
Ю нет смысла писать в лог в таком виде, без трейса ошибка ничего не даст, а раз ты пробрасываешь ошибку выше, значит и трейс тут ты не должен логгировать. соответственно тут вообще нечего писать в лог. по крайней мере как сейчас. возможно в каких-то ситуациях ты можешь тут какие-то детали залоггировать, но скорее всего проще добавить весь контекст в ошибку
S S S S S P Д
прив че дел?
я не могу понять почему код работает как надо….
я закладываю в него следующую логику:
если %object% не в %object_list%: работай
а на деле все работает как надо со следующей логикой:
если %object% в %object_list%: работай
почему………………………..
python
while True:
try_num += 1
# bogo pick an object
object_id = random.choice(data['objectIDs'])
# get the blacklist
with open(POSTED_OBJECTS_CSV, mode='r', newline='') as file:
reader = csv.reader(file, delimiter='\n')
posted_object_ids = [row[0] for row in reader]
# А НЕ НАОБОРОТ ЛИ ДОЛЖНО БЫТЬ?
if object_id not in posted_object_ids:
if try_num > 500:
await self.script_log(f"too many tries")
break
await self.script_log(f"Object #{object_id} has already been posted")
continue
def good_singleton(class_: Type) -> Callable[..., Any]:
"""
Singleton decorator. If instance of class already exists, raises ValueError.
It blocks creating new instances of classes that should instantiate only once.
"""
instances: Dict[Type, Any] = {}
def getinstance(*args, **kwargs) -> Any:
if class_ not in instances:
instances[class_] = class_(*args, **kwargs)
return instances[class_]
raise ValueError(f"Instance of {class_} already exists")
return getinstance
Я изобрел хороший синглтон!
T