Skip to content

Add per-file conversion - #65

Merged
m-mohr merged 3 commits into
mainfrom
per-file-converter
Oct 30, 2026
Merged

m-mohr merged 3 commits into
mainfrom
per-file-converter

Conversation

@m-mohr

@m-mohr m-mohr commented Oct 30, 2026

Copy link
Copy Markdown
Contributor
  • Added PerFileConverterMixin: converts each source on its own into a temporary part and merges the parts with merge_parquet.
  • Added get_input_urls() to BaseConverter, used by both converters, so the mixin resolves the sources once and logs the input/variant warnings once instead of per part.
  • Tests for the merge of two sources (incl. constants that differ per part becoming a column) and for a single source.

… it isn't fiboa-specific and builds on `merge_parquet`.

- Added `PerFileConverterMixin`: converts each source on its own into a temporary part and merges the parts with `merge_parquet`.
- Added `get_input_urls()` to `BaseConverter`, used by both converters, so the mixin resolves the sources once and logs the input/variant warnings once instead of per part.
- Tests for the merge of two sources (incl. constants that differ per part becoming a column) and for a single source.
@m-mohr
m-mohr requested review from ivorbosloper and a balanced review from Copilot October 30, 2026 19:12

This comment was marked as resolved.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Multi-source conversions requesting Brotli compression fail during merging on allowed DuckDB 1.4 versions, so intermediate files and merges need a supported codec before Arrow applies the requested output compression.

No open issues 🎉

1 previously missed issue

In code that hasn't changed since last review

Medium severity Brotli compression fails during multi-source DuckDB merge

vecorel_cli/​conversion/​per_file.py:43

For multi-source conversions, forwarding compression="brotli" to the merge fails after the parts have been converted: DuckDB 1.4, which the dependency constraint allows, cannot write Brotli-compressed Parquet. Use a DuckDB-supported codec for the intermediate parts and merge, then apply the requested output codec with the Arrow postprocessor.

1 resolved since last review

Review effort: Balanced

@m-mohr
m-mohr merged commit fd48764 into main Oct 30, 2026
7 checks passed
@m-mohr
m-mohr deleted the per-file-converter branch October 30, 2026 20:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants