refactor(application): inject kb/prober into resolve_destination use cases
Remove the module-level _KB / _PROBER singletons from
alfred/application/filesystem/resolve_destination.py. The four
resolve_{season,episode,movie,series}_destination use cases now take
kb: ReleaseKnowledge and prober: MediaProber as required arguments,
matching the shape of inspect_release.
The singletons now live at the agent-tools frontier
(alfred/agent/tools/filesystem.py), where the LLM-facing wrappers
instantiate YamlReleaseKnowledge / FfprobeMediaProber once and thread
them through. The wrappers' Python signatures are unchanged — the
inspect-based JSON-schema generator in agent/registry.py still sees the
same LLM-passable params.
analyze_release drops the dirty 'from ... import _KB' indirection.
Tests inject their own stubs by keyword (prober=_StubProber(...)) via
thin convenience wrappers, replacing the prior
monkeypatch.setattr(rd, '_PROBER', ...) pattern.
testing/debug_release.py: instantiate YamlReleaseKnowledge() /
FfprobeMediaProber() inline at the two call sites.
Suite: 1077 passed.
This commit is contained in:
@@ -124,8 +124,16 @@ def dry_run(release_name: str) -> None:
|
||||
from alfred.application.filesystem.resolve_destination import (
|
||||
resolve_season_destination,
|
||||
)
|
||||
from alfred.infrastructure.knowledge.release_kb import YamlReleaseKnowledge
|
||||
from alfred.infrastructure.probe import FfprobeMediaProber
|
||||
|
||||
result = resolve_season_destination(release_name, tmdb_title, tmdb_year)
|
||||
result = resolve_season_destination(
|
||||
release_name,
|
||||
tmdb_title,
|
||||
tmdb_year,
|
||||
YamlReleaseKnowledge(),
|
||||
FfprobeMediaProber(),
|
||||
)
|
||||
d = result.to_dict()
|
||||
print()
|
||||
print(json.dumps(d, indent=2, ensure_ascii=False))
|
||||
@@ -203,8 +211,16 @@ def do_move(release_name: str, source_folder: str | None = None) -> None:
|
||||
from alfred.application.filesystem.resolve_destination import (
|
||||
resolve_season_destination,
|
||||
)
|
||||
from alfred.infrastructure.knowledge.release_kb import YamlReleaseKnowledge
|
||||
from alfred.infrastructure.probe import FfprobeMediaProber
|
||||
|
||||
result = resolve_season_destination(release_name, tmdb_title, tmdb_year)
|
||||
result = resolve_season_destination(
|
||||
release_name,
|
||||
tmdb_title,
|
||||
tmdb_year,
|
||||
YamlReleaseKnowledge(),
|
||||
FfprobeMediaProber(),
|
||||
)
|
||||
d = result.to_dict()
|
||||
|
||||
if d["status"] == "needs_clarification":
|
||||
|
||||
Reference in New Issue
Block a user