all2md.cli.packaging
Output packaging utilities for all2md CLI.
This module provides utilities for creating zip packages of converted documents directly from memory without intermediate disk I/O.
- all2md.cli.packaging.create_package_from_conversions(input_items: List[CLIInputItem], zip_path: Path, target_format: str = 'markdown', options: Dict[str, Any] | None = None, transforms: list | None = None, source_format: str = 'auto', progress_callback: Any | None = None) Path
Create zip package by converting files directly to memory without disk I/O.
This function converts input files on-the-fly and writes them directly to a zip archive using BytesIO buffers, eliminating the need for intermediate disk writes. Files are processed one at a time to minimize memory usage.
- Parameters:
input_items (List[CLIInputItem]) – List of input items to convert and package
zip_path (Path) – Path for the output zip file
target_format (str, default="markdown") – Target output format (e.g., “markdown”, “html”, “pdf”)
options (Dict[str, Any], optional) – Conversion options to pass to convert()
transforms (list, optional) – AST transforms to apply during conversion
source_format (str, default="auto") – Source format (auto-detect if “auto”)
progress_callback (ProgressCallback, optional) – Optional callback for progress updates
- Returns:
Path to the created zip file
- Return type:
Path
Notes
This function automatically uses base64 embedding for attachments to keep everything in memory. Files are processed incrementally to minimize RAM usage.
Examples
Create a zip of markdown files:
>>> create_package_from_conversions( ... [Path("doc1.pdf"), Path("doc2.pdf")], ... Path("output.zip"), ... target_format="markdown" ... )