From 99e863f99714aa601b19c141aa165efe59a36fab Mon Sep 17 00:00:00 2001 From: Nick Sweeting Date: Fri, 14 Aug 2026 18:51:16 -0700 Subject: [PATCH] Remove stale downloader binary state coupling --- archivebox/cli/archivebox_version.py | 50 ++++++++++++---------------- archivebox/services/runner.py | 7 ---- 2 files changed, 21 insertions(+), 36 deletions(-) diff --git a/archivebox/cli/archivebox_version.py b/archivebox/cli/archivebox_version.py index 393eeed3..1433f35a 100755 --- a/archivebox/cli/archivebox_version.py +++ b/archivebox/cli/archivebox_version.py @@ -303,33 +303,29 @@ def version( continue plugin_requested = bool(requested_names) plugin_enabled = plugin_name in enabled_plugin_names - logical_records = get_required_binary_requests( + binary_records = get_required_binary_requests( plugin, plugin.config.required_binaries, overrides=runtime_config, derived_overrides=derived_config, run_output_dir=CONSTANTS.DATA_DIR, ) - actual_records = get_required_binary_requests( - plugin, - plugin.config.required_binaries, - overrides=runtime_config, - derived_overrides=derived_config, - run_output_dir=CONSTANTS.DATA_DIR, - logical_names=False, - ) - for logical_record, actual_record in zip(logical_records, actual_records, strict=False): - logical_name = str(logical_record["name"]) - actual_name = str(actual_record["name"]) - display_name = Path(actual_name).expanduser().name if ("/" in actual_name or actual_name.startswith("~")) else logical_name + for binary_record in binary_records: + actual_name = str(binary_record["name"]) + logical_name = ( + Path(actual_name).expanduser().name + if ("/" in actual_name or "\\" in actual_name or actual_name.startswith("~")) + else actual_name + ) + display_name = logical_name if not plugin_requested and not binary_is_requested(logical_name, actual_name, display_name): continue if not plugin_enabled and not requested_names: continue if _binary_record_matches_runtime(db_binaries.get(logical_name), config.ABXPKG_LIB_DIR): continue - signature = json.dumps(actual_record, sort_keys=True, default=str) - declared_binary_specs.setdefault(signature, actual_record) + signature = json.dumps(binary_record, sort_keys=True, default=str) + declared_binary_specs.setdefault(signature, binary_record) loaded_binaries: dict[str, BinaryEvent | None] = {} if declared_binary_specs: @@ -365,25 +361,21 @@ def version( continue plugin_requested = bool(requested_names) plugin_enabled = plugin_name in enabled_plugin_names - logical_records = get_required_binary_requests( + binary_records = get_required_binary_requests( plugin, plugin.config.required_binaries, overrides=runtime_config, derived_overrides=derived_config, run_output_dir=CONSTANTS.DATA_DIR, ) - actual_records = get_required_binary_requests( - plugin, - plugin.config.required_binaries, - overrides=runtime_config, - derived_overrides=derived_config, - run_output_dir=CONSTANTS.DATA_DIR, - logical_names=False, - ) - for logical_record, actual_record in zip(logical_records, actual_records, strict=False): - logical_name = str(logical_record["name"]) - actual_name = str(actual_record["name"]) - display_name = Path(actual_name).expanduser().name if ("/" in actual_name or actual_name.startswith("~")) else logical_name + for binary_record in binary_records: + actual_name = str(binary_record["name"]) + logical_name = ( + Path(actual_name).expanduser().name + if ("/" in actual_name or "\\" in actual_name or actual_name.startswith("~")) + else actual_name + ) + display_name = logical_name if not plugin_requested and not binary_is_requested(logical_name, actual_name, display_name): continue @@ -401,7 +393,7 @@ def version( # providers the current collection will never execute. continue else: - loaded = loaded_binaries[json.dumps(actual_record, sort_keys=True, default=str)] + loaded = loaded_binaries[json.dumps(binary_record, sort_keys=True, default=str)] abspath = loaded.abspath if loaded is not None else "" version_str = str(loaded.version or "unknown")[:15] if loaded is not None else "unknown" provider = str(loaded.binprovider or "env")[:8] if loaded is not None else "env" diff --git a/archivebox/services/runner.py b/archivebox/services/runner.py index 8c117827..247561ac 100644 --- a/archivebox/services/runner.py +++ b/archivebox/services/runner.py @@ -872,13 +872,10 @@ class CrawlRunner: snapshot_phase_timeout=crawl_setup_phase_timeout, snapshot_cleanup_phase_timeout=crawl_setup_phase_timeout, crawl_cleanup_phase_timeout=crawl_setup_phase_timeout, - persist_derived=False, auto_install=True, emit_jsonl=False, abort_requested=self.crawl_is_cancelled, - MachineService=None, PluginBinariesService=None, - BinaryCacheService=None, BinaryService=None, ProcessService=None, ArchiveResultService=None, @@ -1349,10 +1346,8 @@ async def _run_binary(binary_id: str) -> None: crawl_start_enabled=False, snapshot_cleanup_enabled=False, crawl_cleanup_enabled=False, - persist_derived=False, auto_install=True, emit_jsonl=False, - BinaryCacheService=None, BinaryService=None, ) await _emit_machine_config(bus, config=config, derived_config=derived_config) @@ -1948,8 +1943,6 @@ async def _run_install(plugin_names: list[str] | None = None) -> None: derived_config_overrides=derived_config, emit_jsonl=False, bus=bus, - MachineService=None, - BinaryCacheService=None, BinaryService=None, ) finally: