From 1c24e385ef62d435aaafdf3143eda3f7c21d51a6 Mon Sep 17 00:00:00 2001 From: codex Date: Tue, 16 Jun 2026 09:31:38 +0000 Subject: [PATCH] fix: rename utils/logging.py and utils/http.py to avoid stdlib shadowing utils/logging.py collides with the stdlib `logging` module. When a script under the repo root imports `utils.logging` (which calls load_dotenv at module load), the partially-initialised local module ends up in sys.modules['logging'], so the very next `import logging` inside python-dotenv's main.py resolves back to our half-built module and dies with: AttributeError: module 'logging' has no attribute 'getLogger' (consider renaming '/srv/monitoring/utils/logging.py' ...) This bites the `prune-alerts` automation task (and any other script that imports utils.runner/utils.store before the dotenv chain completes). utils/http.py has the same problem against stdlib `http`: urllib3's exceptions module does `from http.client import IncompleteRead`, which loads utils/http.py as `http`, and a module-level `-> requests.Response:` annotation is then evaluated while `requests` is itself still being initialised. Not surfaced today because the logging crash fires first, but it would block the same task the moment the logging shadow is fixed. Rename both files and update the 70+ import sites and the few docstring/README references that point at the old names. Verified by running utils/prune_alerts.py end-to-end (exits 0, prints the prune count) and `pytest tests/` (521 passed, 4 skipped, unchanged from baseline). --- CONTRIBUTING.md | 2 +- api/server.py | 2 +- automation/README.md | 2 +- automation/runner.py | 2 +- protocols/3jane/main.py | 2 +- protocols/aave/main.py | 2 +- protocols/aave/proposals.py | 4 ++-- protocols/apyusd/main.py | 2 +- protocols/bad-debt/bad-debt-trigger.py | 2 +- protocols/cap/liquidity.py | 2 +- protocols/compound/collateral.py | 2 +- protocols/compound/main.py | 2 +- protocols/compound/proposals.py | 2 +- protocols/ethena/ethena.py | 2 +- protocols/fluid/proposals.py | 2 +- protocols/infinifi/main.py | 2 +- protocols/lrt-pegs/curve/main.py | 2 +- protocols/lrt-pegs/fluid/main.py | 2 +- protocols/lrt-pegs/origin_protocol.py | 2 +- protocols/lrt-pegs/uniswap_v3.py | 2 +- protocols/maker/proposals.py | 2 +- protocols/maple/collateral.py | 4 ++-- protocols/maple/main.py | 2 +- protocols/morpho/_shared.py | 4 ++-- protocols/morpho/governance.py | 4 ++-- protocols/morpho/governance_v2.py | 4 ++-- protocols/morpho/markets.py | 4 ++-- protocols/morpho/markets_v2.py | 4 ++-- protocols/morpho/v2_decoders.py | 2 +- protocols/pendle/main.py | 2 +- protocols/rtoken/monitor_rtoken.py | 2 +- protocols/safe/main.py | 2 +- protocols/safe/specific.py | 2 +- protocols/spark/main.py | 2 +- protocols/stables/dune_large_transfers.py | 2 +- protocols/stables/main.py | 2 +- protocols/stargate/main.py | 2 +- protocols/strata/main.py | 2 +- protocols/timelock/timelock_alerts.py | 2 +- protocols/usdai/large_mints.py | 2 +- protocols/usdai/main.py | 2 +- protocols/ustb/main.py | 2 +- protocols/yearn/check_endorsed.py | 2 +- protocols/yearn/check_shadow_debt.py | 2 +- protocols/yearn/check_stuck_triggers.py | 2 +- protocols/yearn/check_timelock_delay.py | 2 +- utils/address_resolver.py | 2 +- utils/alert.py | 2 +- utils/calldata/decoder.py | 4 ++-- utils/config.py | 2 +- utils/defillama.py | 2 +- utils/dispatch.py | 2 +- utils/erc20_metadata.py | 2 +- utils/erc20_supply_delta_monitor.py | 2 +- utils/gauntlet.py | 2 +- utils/{http.py => http_client.py} | 4 ++-- utils/impl_diff.py | 2 +- utils/llm/ai_explainer.py | 2 +- utils/llm/anthropic_provider.py | 2 +- utils/llm/factory.py | 2 +- utils/llm/openai_compat.py | 2 +- utils/{logging.py => logger.py} | 0 utils/migrate_cache_to_db.py | 2 +- utils/on_chain_state.py | 2 +- utils/proxy.py | 2 +- utils/prune_alerts.py | 2 +- utils/runner.py | 2 +- utils/source_context.py | 4 ++-- utils/swiss_knife.py | 4 ++-- utils/telegram.py | 2 +- utils/tenderly/simulation.py | 4 ++-- utils/tenderly/tenderly.py | 2 +- utils/wavey_gist.py | 2 +- utils/web3_wrapper.py | 2 +- 74 files changed, 85 insertions(+), 85 deletions(-) rename utils/{http.py => http_client.py} (97%) rename utils/{logging.py => logger.py} (100%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a93fa6a6..28e916a0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -58,7 +58,7 @@ Shared utilities live in `utils/`: Use structured logging everywhere — never use `print()`. ```python -from utils.logging import get_logger +from utils.logger import get_logger logger = get_logger("protocol_name") diff --git a/api/server.py b/api/server.py index b914f544..2b82624b 100644 --- a/api/server.py +++ b/api/server.py @@ -8,7 +8,7 @@ from urllib.parse import parse_qs, urlparse from automation.config import JobsConfig, load_jobs_config -from utils.logging import get_logger +from utils.logger import get_logger from utils.store import AlertEvent, get_alert, normalize_timestamp, query_alerts logger = get_logger("api.server") diff --git a/automation/README.md b/automation/README.md index 73b27ed1..b3db8c6f 100644 --- a/automation/README.md +++ b/automation/README.md @@ -64,7 +64,7 @@ profiles: The runner runs every task in declared order, capturing each subprocess's exit code (and its stdout/stderr) without aborting the profile. After all tasks finish, if any failed, a single Markdown digest is posted to Telegram via `utils.telegram.send_telegram_message` with `protocol="automation"` — set `TELEGRAM_BOT_TOKEN_AUTOMATION` / `TELEGRAM_CHAT_ID_AUTOMATION` in `.env` to route it to a dedicated channel, otherwise it falls back to `TELEGRAM_BOT_TOKEN_DEFAULT` / `TELEGRAM_CHAT_ID_DEFAULT`. -Each failing task contributes a header line (`❌ *name* (exit N, Ds)`) and, when the script produced output, the last few lines of its error tail in a fenced code block — so the alert is actionable without an SSH/`journalctl` round-trip. The tail prefers stderr (uncaught tracebacks) and falls back to stdout (`utils.logging` output). The full captured output is still re-emitted to the daemon logs at `warning` level; only the short tail (4 lines / 500 chars) travels to Telegram. Because the tail lives inside a `` ``` `` fence, tracebacks containing Markdown metacharacters (`_`, `*`, `[`) can't break parsing and silently drop the digest. +Each failing task contributes a header line (`❌ *name* (exit N, Ds)`) and, when the script produced output, the last few lines of its error tail in a fenced code block — so the alert is actionable without an SSH/`journalctl` round-trip. The tail prefers stderr (uncaught tracebacks) and falls back to stdout (`utils.logger` output). The full captured output is still re-emitted to the daemon logs at `warning` level; only the short tail (4 lines / 500 chars) travels to Telegram. Because the tail lives inside a `` ``` `` fence, tracebacks containing Markdown metacharacters (`_`, `*`, `[`) can't break parsing and silently drop the digest. The profile's exit code is non-zero if any task failed, which supercronic surfaces in the journald logs (`journalctl -u yearn-monitor`). diff --git a/automation/runner.py b/automation/runner.py index af7ec6cf..074905ad 100644 --- a/automation/runner.py +++ b/automation/runner.py @@ -38,7 +38,7 @@ def _error_tail(stdout: str | None, stderr: str | None) -> str | None: """Extract a short, human-readable error tail from a failed task's output. Prefers stderr — uncaught tracebacks and the interpreter's own error output land there — - and falls back to stdout (where `utils.logging` handlers write). Returns the last few + and falls back to stdout (where `utils.logger` handlers write). Returns the last few non-empty lines, char-capped, or None when the task produced no output at all (the caller then falls back to the bare exit code). """ diff --git a/protocols/3jane/main.py b/protocols/3jane/main.py index e23e4882..d1f7d4a9 100644 --- a/protocols/3jane/main.py +++ b/protocols/3jane/main.py @@ -21,7 +21,7 @@ from utils.cache import cache_path, get_last_value_for_key_from_file, write_last_value_to_file from utils.chains import Chain from utils.formatting import format_usd -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import send_telegram_message from utils.web3_wrapper import ChainManager diff --git a/protocols/aave/main.py b/protocols/aave/main.py index d04dc15c..2cbd6e53 100644 --- a/protocols/aave/main.py +++ b/protocols/aave/main.py @@ -8,7 +8,7 @@ from utils.abi import load_abi from utils.alert import Alert, AlertSeverity, send_alert from utils.chains import Chain -from utils.logging import get_logger +from utils.logger import get_logger from utils.web3_wrapper import ChainManager PROTOCOL = "aave" diff --git a/protocols/aave/proposals.py b/protocols/aave/proposals.py index 07ca8eb7..e9212a63 100644 --- a/protocols/aave/proposals.py +++ b/protocols/aave/proposals.py @@ -3,8 +3,8 @@ import requests from utils.cache import get_last_queued_id_from_file, write_last_queued_id_to_file -from utils.http import request_with_retry -from utils.logging import get_logger +from utils.http_client import request_with_retry +from utils.logger import get_logger from utils.telegram import send_error_message, send_telegram_message PROTOCOL = "aave" diff --git a/protocols/apyusd/main.py b/protocols/apyusd/main.py index bae1d723..0016153b 100644 --- a/protocols/apyusd/main.py +++ b/protocols/apyusd/main.py @@ -4,7 +4,7 @@ from utils.cache import cache_filename, get_last_value_for_key_from_file, write_last_value_to_file from utils.chains import Chain from utils.config import Config -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import send_error_message from utils.web3_wrapper import ChainManager diff --git a/protocols/bad-debt/bad-debt-trigger.py b/protocols/bad-debt/bad-debt-trigger.py index 50133410..a105d4f8 100644 --- a/protocols/bad-debt/bad-debt-trigger.py +++ b/protocols/bad-debt/bad-debt-trigger.py @@ -4,7 +4,7 @@ import requests -from utils.logging import get_logger +from utils.logger import get_logger logger = get_logger("bad-debt") diff --git a/protocols/cap/liquidity.py b/protocols/cap/liquidity.py index e7ba0563..12fd3ee2 100644 --- a/protocols/cap/liquidity.py +++ b/protocols/cap/liquidity.py @@ -5,7 +5,7 @@ from utils.cache import cache_filename, get_last_value_for_key_from_file, write_last_value_to_file from utils.chains import Chain from utils.config import Config -from utils.logging import get_logger +from utils.logger import get_logger from utils.web3_wrapper import ChainManager CUSD = "0xcCcc62962d17b8914c62D74FfB843d73B2a3cccC" diff --git a/protocols/compound/collateral.py b/protocols/compound/collateral.py index b9daa9a8..13950c41 100644 --- a/protocols/compound/collateral.py +++ b/protocols/compound/collateral.py @@ -24,7 +24,7 @@ ) from utils.chains import Chain from utils.formatting import format_usd -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import send_telegram_message from utils.web3_wrapper import ChainManager, Web3Client diff --git a/protocols/compound/main.py b/protocols/compound/main.py index 4505deec..71c329ef 100644 --- a/protocols/compound/main.py +++ b/protocols/compound/main.py @@ -2,7 +2,7 @@ from utils.abi import load_abi from utils.alert import Alert, AlertSeverity, send_alert from utils.chains import Chain -from utils.logging import get_logger +from utils.logger import get_logger from utils.web3_wrapper import ChainManager PROTOCOL = "comp" diff --git a/protocols/compound/proposals.py b/protocols/compound/proposals.py index ca721e44..f9d97bb7 100644 --- a/protocols/compound/proposals.py +++ b/protocols/compound/proposals.py @@ -4,7 +4,7 @@ from dotenv import load_dotenv from utils.cache import get_last_queued_id_from_file, write_last_queued_id_to_file -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import escape_markdown, send_telegram_message load_dotenv() diff --git a/protocols/ethena/ethena.py b/protocols/ethena/ethena.py index b67d7b60..9994d8dd 100644 --- a/protocols/ethena/ethena.py +++ b/protocols/ethena/ethena.py @@ -5,7 +5,7 @@ from utils.abi import load_abi from utils.alert import Alert, AlertSeverity, send_alert -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import send_error_message from utils.web3_wrapper import Chain, ChainManager diff --git a/protocols/fluid/proposals.py b/protocols/fluid/proposals.py index 52605321..f1f88618 100644 --- a/protocols/fluid/proposals.py +++ b/protocols/fluid/proposals.py @@ -3,7 +3,7 @@ import requests from utils.cache import get_last_queued_id_from_file, write_last_queued_id_to_file -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import escape_markdown, send_error_message, send_telegram_message PROTOCOL = "fluid" diff --git a/protocols/infinifi/main.py b/protocols/infinifi/main.py index 0427db86..56ea2a36 100644 --- a/protocols/infinifi/main.py +++ b/protocols/infinifi/main.py @@ -8,7 +8,7 @@ from utils.cache import cache_filename, get_last_value_for_key_from_file, write_last_value_to_file from utils.chains import Chain from utils.config import Config -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import send_error_message from utils.web3_wrapper import ChainManager diff --git a/protocols/lrt-pegs/curve/main.py b/protocols/lrt-pegs/curve/main.py index fffcd457..0f5d5070 100644 --- a/protocols/lrt-pegs/curve/main.py +++ b/protocols/lrt-pegs/curve/main.py @@ -1,7 +1,7 @@ from utils.abi import load_abi from utils.alert import Alert, AlertSeverity, send_alert from utils.chains import Chain -from utils.logging import get_logger +from utils.logger import get_logger from utils.web3_wrapper import ChainManager CHANNEL = "pegs" diff --git a/protocols/lrt-pegs/fluid/main.py b/protocols/lrt-pegs/fluid/main.py index 715cff8e..dfd3898b 100644 --- a/protocols/lrt-pegs/fluid/main.py +++ b/protocols/lrt-pegs/fluid/main.py @@ -1,6 +1,6 @@ from utils.abi import load_abi from utils.chains import Chain -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import send_telegram_message from utils.web3_wrapper import ChainManager diff --git a/protocols/lrt-pegs/origin_protocol.py b/protocols/lrt-pegs/origin_protocol.py index c11e4520..ce510bcc 100644 --- a/protocols/lrt-pegs/origin_protocol.py +++ b/protocols/lrt-pegs/origin_protocol.py @@ -4,7 +4,7 @@ from utils.alert import Alert, AlertSeverity, send_alert from utils.cache import get_last_queued_id_from_file, write_last_queued_id_to_file from utils.chains import Chain -from utils.logging import get_logger +from utils.logger import get_logger from utils.web3_wrapper import ChainManager REDEEM_VALUE = int(1e18) diff --git a/protocols/lrt-pegs/uniswap_v3.py b/protocols/lrt-pegs/uniswap_v3.py index 0326d872..0dfeedfd 100644 --- a/protocols/lrt-pegs/uniswap_v3.py +++ b/protocols/lrt-pegs/uniswap_v3.py @@ -1,6 +1,6 @@ from utils.abi import load_abi from utils.chains import Chain -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import send_telegram_message from utils.web3_wrapper import ChainManager diff --git a/protocols/maker/proposals.py b/protocols/maker/proposals.py index e6ca9f28..1b2955cc 100644 --- a/protocols/maker/proposals.py +++ b/protocols/maker/proposals.py @@ -3,7 +3,7 @@ import requests from utils.cache import get_last_queued_id_from_file, write_last_queued_id_to_file -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import escape_markdown, send_error_message, send_telegram_message PROTOCOL = "maker" diff --git a/protocols/maple/collateral.py b/protocols/maple/collateral.py index c8e1e9b5..d214ea45 100644 --- a/protocols/maple/collateral.py +++ b/protocols/maple/collateral.py @@ -25,8 +25,8 @@ from utils.alert import Alert, AlertSeverity, send_alert from utils.config import Config from utils.formatting import format_usd -from utils.http import request_with_retry -from utils.logging import get_logger +from utils.http_client import request_with_retry +from utils.logger import get_logger PROTOCOL = "maple" logger = get_logger(PROTOCOL) diff --git a/protocols/maple/main.py b/protocols/maple/main.py index 1065b7c1..8dfc2447 100644 --- a/protocols/maple/main.py +++ b/protocols/maple/main.py @@ -19,7 +19,7 @@ from utils.cache import cache_path, get_last_value_for_key_from_file, write_last_value_to_file from utils.chains import Chain from utils.formatting import format_usd -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import send_error_message from utils.web3_wrapper import ChainManager diff --git a/protocols/morpho/_shared.py b/protocols/morpho/_shared.py index ee200c9e..c5809cd1 100644 --- a/protocols/morpho/_shared.py +++ b/protocols/morpho/_shared.py @@ -4,8 +4,8 @@ from typing import Any, Dict, List, Optional from utils.chains import Chain -from utils.http import request_with_retry -from utils.logging import get_logger +from utils.http_client import request_with_retry +from utils.logger import get_logger API_URL = "https://api.morpho.org/graphql" MORPHO_URL = "https://app.morpho.org" diff --git a/protocols/morpho/governance.py b/protocols/morpho/governance.py index 82aa5b02..ed0ae011 100644 --- a/protocols/morpho/governance.py +++ b/protocols/morpho/governance.py @@ -9,8 +9,8 @@ ) from utils.chains import Chain from utils.formatting import format_token_amount, format_with_suffix -from utils.http import request_with_retry -from utils.logging import get_logger +from utils.http_client import request_with_retry +from utils.logger import get_logger from utils.telegram import send_telegram_message from utils.web3_wrapper import ChainManager diff --git a/protocols/morpho/governance_v2.py b/protocols/morpho/governance_v2.py index cbfbbee7..3545bbc6 100644 --- a/protocols/morpho/governance_v2.py +++ b/protocols/morpho/governance_v2.py @@ -37,8 +37,8 @@ write_last_value_to_file, ) from utils.chains import Chain -from utils.http import request_with_retry -from utils.logging import get_logger +from utils.http_client import request_with_retry +from utils.logger import get_logger from utils.telegram import send_telegram_message PROTOCOL = "morpho" diff --git a/protocols/morpho/markets.py b/protocols/morpho/markets.py index bd044e0e..d080d940 100644 --- a/protocols/morpho/markets.py +++ b/protocols/morpho/markets.py @@ -12,8 +12,8 @@ import requests from utils.chains import Chain -from utils.http import request_with_retry -from utils.logging import get_logger +from utils.http_client import request_with_retry +from utils.logger import get_logger from utils.telegram import send_error_message, send_telegram_message # Configuration constants diff --git a/protocols/morpho/markets_v2.py b/protocols/morpho/markets_v2.py index 3d5f9f99..13ced628 100644 --- a/protocols/morpho/markets_v2.py +++ b/protocols/morpho/markets_v2.py @@ -50,8 +50,8 @@ write_last_value_to_file, ) from utils.chains import Chain -from utils.http import request_with_retry -from utils.logging import get_logger +from utils.http_client import request_with_retry +from utils.logger import get_logger from utils.telegram import send_telegram_message from utils.web3_wrapper import ChainManager, Web3Client diff --git a/protocols/morpho/v2_decoders.py b/protocols/morpho/v2_decoders.py index 1479dace..3399d54d 100644 --- a/protocols/morpho/v2_decoders.py +++ b/protocols/morpho/v2_decoders.py @@ -22,7 +22,7 @@ from utils.calldata.decoder import resolve_selector from utils.chains import Chain from utils.formatting import format_token_amount, format_with_suffix -from utils.logging import get_logger +from utils.logger import get_logger logger = get_logger("morpho.v2_decoders") diff --git a/protocols/pendle/main.py b/protocols/pendle/main.py index 5f4ee9af..cea50f92 100644 --- a/protocols/pendle/main.py +++ b/protocols/pendle/main.py @@ -2,7 +2,7 @@ from utils.abi import load_abi from utils.chains import Chain -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import send_telegram_message from utils.web3_wrapper import ChainManager diff --git a/protocols/rtoken/monitor_rtoken.py b/protocols/rtoken/monitor_rtoken.py index e5562795..a18d0f88 100644 --- a/protocols/rtoken/monitor_rtoken.py +++ b/protocols/rtoken/monitor_rtoken.py @@ -4,7 +4,7 @@ from utils.alert import Alert, AlertSeverity, send_alert from utils.cache import get_last_queued_id_from_file, write_last_queued_id_to_file from utils.chains import Chain -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import send_error_message from utils.web3_wrapper import ChainManager diff --git a/protocols/safe/main.py b/protocols/safe/main.py index b877fd8d..ca604f22 100644 --- a/protocols/safe/main.py +++ b/protocols/safe/main.py @@ -20,7 +20,7 @@ ) from utils.chains import safe_network_to_chain_id from utils.llm.ai_explainer import explain_batch_transaction, explain_transaction, format_explanation_line -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import escape_markdown, send_telegram_message load_dotenv() diff --git a/protocols/safe/specific.py b/protocols/safe/specific.py index 9874a794..7869660d 100644 --- a/protocols/safe/specific.py +++ b/protocols/safe/specific.py @@ -5,7 +5,7 @@ from eth_utils import to_checksum_address from web3 import Web3 -from utils.logging import get_logger +from utils.logger import get_logger logger = get_logger("safe.specific") diff --git a/protocols/spark/main.py b/protocols/spark/main.py index 1b49a256..509c0c7c 100644 --- a/protocols/spark/main.py +++ b/protocols/spark/main.py @@ -2,7 +2,7 @@ from utils.alert import Alert, AlertSeverity, send_alert from utils.chains import Chain -from utils.logging import get_logger +from utils.logger import get_logger from utils.web3_wrapper import ChainManager PROTOCOL = "spark" diff --git a/protocols/stables/dune_large_transfers.py b/protocols/stables/dune_large_transfers.py index 192e76c1..9937ec72 100644 --- a/protocols/stables/dune_large_transfers.py +++ b/protocols/stables/dune_large_transfers.py @@ -27,7 +27,7 @@ from utils.alert import Alert, AlertSeverity, send_alert from utils.cache import cache_filename, get_last_value_for_key_from_file, write_last_value_to_file from utils.config import Config -from utils.logging import get_logger +from utils.logger import get_logger logger = get_logger("stables.dune_large_transfers") PROTOCOL = "stables" diff --git a/protocols/stables/main.py b/protocols/stables/main.py index 452e4e20..3f3650a1 100644 --- a/protocols/stables/main.py +++ b/protocols/stables/main.py @@ -8,7 +8,7 @@ from utils.alert import Alert, AlertSeverity, send_alert from utils.defillama import fetch_prices -from utils.logging import get_logger +from utils.logger import get_logger logger = get_logger("stables") diff --git a/protocols/stargate/main.py b/protocols/stargate/main.py index 85124ecf..c0d0a49c 100644 --- a/protocols/stargate/main.py +++ b/protocols/stargate/main.py @@ -1,6 +1,6 @@ from utils.abi import load_abi from utils.chains import Chain -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import send_telegram_message from utils.web3_wrapper import ChainManager diff --git a/protocols/strata/main.py b/protocols/strata/main.py index f06991b9..8275fb15 100644 --- a/protocols/strata/main.py +++ b/protocols/strata/main.py @@ -3,7 +3,7 @@ from utils.abi import load_abi from utils.cache import cache_filename, get_last_value_for_key_from_file, write_last_value_to_file from utils.chains import Chain -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import send_error_message, send_telegram_message from utils.web3_wrapper import ChainManager diff --git a/protocols/timelock/timelock_alerts.py b/protocols/timelock/timelock_alerts.py index a5f64a60..68c88205 100644 --- a/protocols/timelock/timelock_alerts.py +++ b/protocols/timelock/timelock_alerts.py @@ -17,7 +17,7 @@ from utils.calldata.decoder import decode_calldata, format_call_lines from utils.chains import EXPLORER_URLS, Chain from utils.llm.ai_explainer import explain_batch_transaction, explain_transaction, format_explanation_line -from utils.logging import get_logger +from utils.logger import get_logger from utils.proxy import build_diff_url, detect_proxy_upgrade, get_current_implementation from utils.safe_tx import unwrap_safe_exec_transaction from utils.telegram import MAX_MESSAGE_LENGTH, escape_markdown, send_error_message, send_telegram_message diff --git a/protocols/usdai/large_mints.py b/protocols/usdai/large_mints.py index 25b03370..d1b1cc3f 100644 --- a/protocols/usdai/large_mints.py +++ b/protocols/usdai/large_mints.py @@ -6,7 +6,7 @@ from utils.chains import Chain from utils.config import Config from utils.erc20_supply_delta_monitor import ERC20SupplyDeltaMonitorConfig, run_erc20_supply_delta_monitor -from utils.logging import get_logger +from utils.logger import get_logger PROTOCOL = "usdai" logger = get_logger(f"{PROTOCOL}.large_mints") diff --git a/protocols/usdai/main.py b/protocols/usdai/main.py index 2967281c..771e89f1 100644 --- a/protocols/usdai/main.py +++ b/protocols/usdai/main.py @@ -7,7 +7,7 @@ from utils.cache import cache_filename, get_last_value_for_key_from_file, write_last_value_to_file from utils.chains import Chain from utils.config import Config -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import send_error_message from utils.web3_wrapper import ChainManager diff --git a/protocols/ustb/main.py b/protocols/ustb/main.py index 61ddcbce..40bb0bf7 100644 --- a/protocols/ustb/main.py +++ b/protocols/ustb/main.py @@ -17,7 +17,7 @@ from utils.cache import cache_path, get_last_value_for_key_from_file, write_last_value_to_file from utils.chains import Chain from utils.formatting import format_usd -from utils.logging import get_logger +from utils.logger import get_logger from utils.web3_wrapper import ChainManager PROTOCOL = "ustb" diff --git a/protocols/yearn/check_endorsed.py b/protocols/yearn/check_endorsed.py index 8fee6ed6..7999f6c0 100644 --- a/protocols/yearn/check_endorsed.py +++ b/protocols/yearn/check_endorsed.py @@ -13,7 +13,7 @@ from web3 import Web3 from utils.chains import Chain -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import send_telegram_message_with_fallback from utils.web3_wrapper import ChainManager diff --git a/protocols/yearn/check_shadow_debt.py b/protocols/yearn/check_shadow_debt.py index 5316c19a..8be924a2 100644 --- a/protocols/yearn/check_shadow_debt.py +++ b/protocols/yearn/check_shadow_debt.py @@ -23,7 +23,7 @@ from utils.abi import load_abi from utils.chains import Chain -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import send_telegram_message_with_fallback from utils.web3_wrapper import ChainManager diff --git a/protocols/yearn/check_stuck_triggers.py b/protocols/yearn/check_stuck_triggers.py index 70b6d28b..982909fe 100644 --- a/protocols/yearn/check_stuck_triggers.py +++ b/protocols/yearn/check_stuck_triggers.py @@ -20,7 +20,7 @@ from utils.cache import cache_path from utils.chains import Chain -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import send_telegram_message_with_fallback from utils.web3_wrapper import ChainManager diff --git a/protocols/yearn/check_timelock_delay.py b/protocols/yearn/check_timelock_delay.py index 23c30795..c941217f 100644 --- a/protocols/yearn/check_timelock_delay.py +++ b/protocols/yearn/check_timelock_delay.py @@ -12,7 +12,7 @@ from web3 import Web3 from utils.chains import EXPLORER_URLS, Chain -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import send_telegram_message from utils.web3_wrapper import ChainManager diff --git a/utils/address_resolver.py b/utils/address_resolver.py index a3f6e478..392a0293 100644 --- a/utils/address_resolver.py +++ b/utils/address_resolver.py @@ -12,7 +12,7 @@ from typing import Callable -from utils.logging import get_logger +from utils.logger import get_logger logger = get_logger("utils.address_resolver") diff --git a/utils/alert.py b/utils/alert.py index 8f9a8b91..20406500 100644 --- a/utils/alert.py +++ b/utils/alert.py @@ -35,7 +35,7 @@ from enum import Enum from typing import Callable -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import send_telegram_message logger = get_logger("utils.alert") diff --git a/utils/calldata/decoder.py b/utils/calldata/decoder.py index e62b05a9..0d7c2283 100644 --- a/utils/calldata/decoder.py +++ b/utils/calldata/decoder.py @@ -15,8 +15,8 @@ from utils.cache import cache_path from utils.calldata.known_selectors import KNOWN_SELECTORS -from utils.http import fetch_json -from utils.logging import get_logger +from utils.http_client import fetch_json +from utils.logger import get_logger logger = get_logger("calldata_decoder") diff --git a/utils/config.py b/utils/config.py index 4bbe4935..978fbc57 100644 --- a/utils/config.py +++ b/utils/config.py @@ -11,7 +11,7 @@ from dotenv import load_dotenv -from utils.logging import get_logger +from utils.logger import get_logger # Load environment variables from .env file load_dotenv() diff --git a/utils/defillama.py b/utils/defillama.py index 9f109c94..260da26c 100644 --- a/utils/defillama.py +++ b/utils/defillama.py @@ -4,7 +4,7 @@ from defillama_sdk import DefiLlama -from utils.logging import get_logger +from utils.logger import get_logger getcontext().prec = 18 diff --git a/utils/dispatch.py b/utils/dispatch.py index bf30d3a8..bf414b3f 100644 --- a/utils/dispatch.py +++ b/utils/dispatch.py @@ -16,7 +16,7 @@ from utils.alert import Alert, AlertSeverity from utils.cache import cache_filename, get_last_value_for_key_from_file, write_last_value_to_file -from utils.logging import get_logger +from utils.logger import get_logger logger = get_logger("utils.dispatch") diff --git a/utils/erc20_metadata.py b/utils/erc20_metadata.py index 96af0ee1..0594ec7e 100644 --- a/utils/erc20_metadata.py +++ b/utils/erc20_metadata.py @@ -15,7 +15,7 @@ from utils.abi import load_abi from utils.chains import Chain -from utils.logging import get_logger +from utils.logger import get_logger from utils.proxy import get_current_implementation from utils.web3_wrapper import ChainManager diff --git a/utils/erc20_supply_delta_monitor.py b/utils/erc20_supply_delta_monitor.py index 09cfa01b..b2c1bc09 100644 --- a/utils/erc20_supply_delta_monitor.py +++ b/utils/erc20_supply_delta_monitor.py @@ -14,7 +14,7 @@ from utils.alert import Alert, AlertSeverity, send_alert from utils.cache import cache_filename, get_last_value_for_key_from_file, write_last_value_to_file from utils.chains import Chain -from utils.logging import get_logger +from utils.logger import get_logger from utils.web3_wrapper import ChainManager getcontext().prec = 40 diff --git a/utils/gauntlet.py b/utils/gauntlet.py index 7cd7c584..91ca9ef1 100644 --- a/utils/gauntlet.py +++ b/utils/gauntlet.py @@ -9,7 +9,7 @@ get_market_allocation_threshold, ) from utils.formatting import format_usd -from utils.logging import get_logger +from utils.logger import get_logger logger = get_logger("utils.gauntlet") diff --git a/utils/http.py b/utils/http_client.py similarity index 97% rename from utils/http.py rename to utils/http_client.py index 48f6ae93..de5209f1 100644 --- a/utils/http.py +++ b/utils/http_client.py @@ -6,9 +6,9 @@ import requests from utils.config import Config -from utils.logging import get_logger +from utils.logger import get_logger -logger = get_logger("utils.http") +logger = get_logger("utils.http_client") def request_with_retry( diff --git a/utils/impl_diff.py b/utils/impl_diff.py index 0c16575a..2d9b37aa 100644 --- a/utils/impl_diff.py +++ b/utils/impl_diff.py @@ -21,7 +21,7 @@ from dataclasses import dataclass from typing import Iterable -from utils.logging import get_logger +from utils.logger import get_logger from utils.source_context import fetch_source logger = get_logger("utils.impl_diff") diff --git a/utils/llm/ai_explainer.py b/utils/llm/ai_explainer.py index c482e3c5..a85c0d9d 100644 --- a/utils/llm/ai_explainer.py +++ b/utils/llm/ai_explainer.py @@ -15,7 +15,7 @@ from utils.impl_diff import diff_implementations, format_impl_diff from utils.llm import get_llm_provider from utils.llm.base import LLMError, LLMProvider -from utils.logging import get_logger +from utils.logger import get_logger from utils.on_chain_state import StateRead, format_state_reads, read_before_state from utils.proxy import build_diff_url, detect_proxy_upgrade, get_current_implementation from utils.risk_anchors import format_anchors_block diff --git a/utils/llm/anthropic_provider.py b/utils/llm/anthropic_provider.py index 9d522576..42009561 100644 --- a/utils/llm/anthropic_provider.py +++ b/utils/llm/anthropic_provider.py @@ -7,7 +7,7 @@ from typing import Any from utils.llm.base import LLMError, LLMProvider -from utils.logging import get_logger +from utils.logger import get_logger logger = get_logger("utils.llm.anthropic_provider") diff --git a/utils/llm/factory.py b/utils/llm/factory.py index 44c0bf3a..c077db38 100644 --- a/utils/llm/factory.py +++ b/utils/llm/factory.py @@ -19,7 +19,7 @@ import os from utils.llm.base import LLMError, LLMProvider -from utils.logging import get_logger +from utils.logger import get_logger logger = get_logger("utils.llm.factory") diff --git a/utils/llm/openai_compat.py b/utils/llm/openai_compat.py index cbae38d0..69a3e7cd 100644 --- a/utils/llm/openai_compat.py +++ b/utils/llm/openai_compat.py @@ -10,7 +10,7 @@ from typing import Any from utils.llm.base import LLMError, LLMProvider -from utils.logging import get_logger +from utils.logger import get_logger logger = get_logger("utils.llm.openai_compat") diff --git a/utils/logging.py b/utils/logger.py similarity index 100% rename from utils/logging.py rename to utils/logger.py diff --git a/utils/migrate_cache_to_db.py b/utils/migrate_cache_to_db.py index f7d0ff34..a7d18cf3 100644 --- a/utils/migrate_cache_to_db.py +++ b/utils/migrate_cache_to_db.py @@ -8,7 +8,7 @@ from automation.config import load_jobs_config from utils import paths, store -from utils.logging import get_logger +from utils.logger import get_logger logger = get_logger("utils.migrate_cache_to_db") diff --git a/utils/on_chain_state.py b/utils/on_chain_state.py index 35a709b1..38d43768 100644 --- a/utils/on_chain_state.py +++ b/utils/on_chain_state.py @@ -21,7 +21,7 @@ from utils.calldata.decoder import DecodedCall from utils.chains import Chain -from utils.logging import get_logger +from utils.logger import get_logger from utils.source_context import ( extract_state_var_snippet, fetch_source, diff --git a/utils/proxy.py b/utils/proxy.py index fc76170c..10dca776 100644 --- a/utils/proxy.py +++ b/utils/proxy.py @@ -10,7 +10,7 @@ from utils.calldata.decoder import decode_calldata from utils.chains import EXPLORER_URLS, Chain -from utils.logging import get_logger +from utils.logger import get_logger logger = get_logger("utils.proxy") diff --git a/utils/prune_alerts.py b/utils/prune_alerts.py index 9cf887ae..a65c54fd 100644 --- a/utils/prune_alerts.py +++ b/utils/prune_alerts.py @@ -1,6 +1,6 @@ import os -from utils.logging import get_logger +from utils.logger import get_logger from utils.runner import run_with_alert from utils.store import checkpoint_wal, prune_alerts diff --git a/utils/runner.py b/utils/runner.py index 336f43cb..c016284b 100644 --- a/utils/runner.py +++ b/utils/runner.py @@ -11,7 +11,7 @@ from typing import Callable -from utils.logging import get_logger +from utils.logger import get_logger from utils.telegram import get_github_run_url, send_error_message logger = get_logger("utils.runner") diff --git a/utils/source_context.py b/utils/source_context.py index bbe3cef9..a8ba2225 100644 --- a/utils/source_context.py +++ b/utils/source_context.py @@ -12,8 +12,8 @@ import re from dataclasses import dataclass -from utils.http import fetch_json -from utils.logging import get_logger +from utils.http_client import fetch_json +from utils.logger import get_logger logger = get_logger("utils.source_context") diff --git a/utils/swiss_knife.py b/utils/swiss_knife.py index c18f16b1..22b39eea 100644 --- a/utils/swiss_knife.py +++ b/utils/swiss_knife.py @@ -8,8 +8,8 @@ of a bare address. """ -from utils.http import fetch_json -from utils.logging import get_logger +from utils.http_client import fetch_json +from utils.logger import get_logger logger = get_logger("utils.swiss_knife") diff --git a/utils/telegram.py b/utils/telegram.py index 18d93c27..2c8e7859 100644 --- a/utils/telegram.py +++ b/utils/telegram.py @@ -5,7 +5,7 @@ from dotenv import load_dotenv from utils import store -from utils.logging import get_logger +from utils.logger import get_logger load_dotenv() diff --git a/utils/tenderly/simulation.py b/utils/tenderly/simulation.py index 61d5d4d8..67101d57 100644 --- a/utils/tenderly/simulation.py +++ b/utils/tenderly/simulation.py @@ -8,8 +8,8 @@ from dataclasses import dataclass, field from typing import Any -from utils.http import fetch_json -from utils.logging import get_logger +from utils.http_client import fetch_json +from utils.logger import get_logger logger = get_logger("utils.tenderly.simulation") diff --git a/utils/tenderly/tenderly.py b/utils/tenderly/tenderly.py index 73512fb3..b97d2d78 100644 --- a/utils/tenderly/tenderly.py +++ b/utils/tenderly/tenderly.py @@ -13,7 +13,7 @@ import requests from dotenv import load_dotenv -from utils.logging import get_logger +from utils.logger import get_logger load_dotenv() diff --git a/utils/wavey_gist.py b/utils/wavey_gist.py index fc4a2f5a..ae8b9b42 100644 --- a/utils/wavey_gist.py +++ b/utils/wavey_gist.py @@ -4,7 +4,7 @@ import requests -from utils.logging import get_logger +from utils.logger import get_logger logger = get_logger("utils.wavey_gist") diff --git a/utils/web3_wrapper.py b/utils/web3_wrapper.py index 43abe44d..01af3b6e 100644 --- a/utils/web3_wrapper.py +++ b/utils/web3_wrapper.py @@ -11,7 +11,7 @@ from web3.providers.rpc import HTTPProvider from web3.types import RPCResponse -from utils.logging import get_logger +from utils.logger import get_logger from .chains import Chain