mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-27 01:11:40 +00:00
refactor: codebase-wide lint cleanup — unused imports, dead code, and inefficient patterns (#5821)
Comprehensive cleanup across 80 files based on automated (ruff, pyflakes, vulture)
and manual analysis of the entire codebase.
Changes by category:
Unused imports removed (~95 across 55 files):
- Removed genuinely unused imports from all major subsystems
- agent/, hermes_cli/, tools/, gateway/, plugins/, cron/
- Includes imports in try/except blocks that were truly unused
(vs availability checks which were left alone)
Unused variables removed (~25):
- Removed dead variables: connected, inner, channels, last_exc,
source, new_server_names, verify, pconfig, default_terminal,
result, pending_handled, temperature, loop
- Dropped unused argparse subparser assignments in hermes_cli/main.py
(12 instances of add_parser() where result was never used)
Dead code removed:
- run_agent.py: Removed dead ternary (None if False else None) and
surrounding unreachable branch in identity fallback
- run_agent.py: Removed write-only attribute _last_reported_tool
- hermes_cli/providers.py: Removed dead @property decorator on
module-level function (decorator has no effect outside a class)
- gateway/run.py: Removed unused MCP config load before reconnect
- gateway/platforms/slack.py: Removed dead SessionSource construction
Undefined name bugs fixed (would cause NameError at runtime):
- batch_runner.py: Added missing logger = logging.getLogger(__name__)
- tools/environments/daytona.py: Added missing Dict and Path imports
Unnecessary global statements removed (14):
- tools/terminal_tool.py: 5 functions declared global for dicts
they only mutated via .pop()/[key]=value (no rebinding)
- tools/browser_tool.py: cleanup thread loop only reads flag
- tools/rl_training_tool.py: 4 functions only do dict mutations
- tools/mcp_oauth.py: only reads the global
- hermes_time.py: only reads cached values
Inefficient patterns fixed:
- startswith/endswith tuple form: 15 instances of
x.startswith('a') or x.startswith('b') consolidated to
x.startswith(('a', 'b'))
- len(x)==0 / len(x)>0: 13 instances replaced with pythonic
truthiness checks (not x / bool(x))
- in dict.keys(): 5 instances simplified to in dict
- Redefined unused name: removed duplicate _strip_mdv2 import in
send_message_tool.py
Other fixes:
- hermes_cli/doctor.py: Replaced undefined logger.debug() with pass
- hermes_cli/config.py: Consolidated chained .endswith() calls
Test results: 3934 passed, 17 failed (all pre-existing on main),
19 skipped. Zero regressions.
This commit is contained in:
parent
afe6c63c52
commit
d0ffb111c2
80 changed files with 81 additions and 210 deletions
|
|
@ -567,7 +567,7 @@ async def rl_select_environment(name: str) -> str:
|
|||
|
||||
TIP: Read the returned file_path to understand how the environment works.
|
||||
"""
|
||||
global _current_env, _current_config, _env_config_cache
|
||||
global _current_env, _current_config
|
||||
|
||||
_initialize_environments()
|
||||
|
||||
|
|
@ -673,8 +673,6 @@ async def rl_edit_config(field: str, value: Any) -> str:
|
|||
Returns:
|
||||
JSON string with updated config or error message
|
||||
"""
|
||||
global _current_config
|
||||
|
||||
if not _current_env:
|
||||
return json.dumps({
|
||||
"error": "No environment selected. Use rl_select_environment(name) first.",
|
||||
|
|
@ -727,8 +725,6 @@ async def rl_start_training() -> str:
|
|||
Returns:
|
||||
JSON string with run_id and initial status
|
||||
"""
|
||||
global _active_runs
|
||||
|
||||
if not _current_env:
|
||||
return json.dumps({
|
||||
"error": "No environment selected. Use rl_select_environment(name) first.",
|
||||
|
|
@ -829,8 +825,6 @@ async def rl_check_status(run_id: str) -> str:
|
|||
Returns:
|
||||
JSON string with run status and metrics
|
||||
"""
|
||||
global _last_status_check
|
||||
|
||||
# Check rate limiting
|
||||
now = time.time()
|
||||
if run_id in _last_status_check:
|
||||
|
|
@ -1311,7 +1305,7 @@ async def rl_test_inference(
|
|||
"avg_accuracy": round(
|
||||
sum(m.get("accuracy", 0) for m in working_models) / len(working_models), 3
|
||||
) if working_models else 0,
|
||||
"environment_working": len(working_models) > 0,
|
||||
"environment_working": bool(working_models),
|
||||
"output_directory": str(test_output_dir),
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue