def is_suspicious(log_dict: dict, blacklist: set) -> bool:
if log_dict["ip"] in blacklist:
return True
if log_dict["status_code"] in (401, 403):
return True
if log_dict["path"].startswith("/admin"):
return True
return False
def count_failed_logins(logs_list: list) -> dict:
result = {}
for log in logs_list:
if log["status_code"] == 401:
ip = log["ip"]
result[ip] = result.get(ip, 0) + 1
return result