Process a single artifact (download, extract, install).
(
artifact_url: str,
env_section: str,
cache_manager: "PlatformIOCache",
)
| 858 | |
| 859 | |
| 860 | def _process_artifact( |
| 861 | artifact_url: str, |
| 862 | env_section: str, |
| 863 | cache_manager: "PlatformIOCache", |
| 864 | ) -> ArtifactProcessingResult: |
| 865 | """Process a single artifact (download, extract, install).""" |
| 866 | try: |
| 867 | resolved_path = handle_zip_artifact(artifact_url, cache_manager, env_section) |
| 868 | return ArtifactProcessingResult( |
| 869 | url=artifact_url, |
| 870 | is_framework=False, # This will be determined during processing |
| 871 | env_section=env_section, |
| 872 | resolved_path=resolved_path, |
| 873 | ) |
| 874 | except KeyboardInterrupt as ki: |
| 875 | handle_keyboard_interrupt(ki) |
| 876 | raise |
| 877 | except Exception as e: |
| 878 | logger.error(f"Failed to process {artifact_url}: {e}", exc_info=e) |
| 879 | return ArtifactProcessingResult( |
| 880 | url=artifact_url, |
| 881 | is_framework=False, # This will be determined during processing |
| 882 | env_section=env_section, |
| 883 | exception=e, |
| 884 | ) |
| 885 | |
| 886 | |
| 887 | def _collect_all_zip_urls(pio_ini: PlatformIOIni) -> list[ZipUrlInfo]: |
nothing calls this directly
no test coverage detected