From 901325d266c797d4213334e62b223efc40e7238d Mon Sep 17 00:00:00 2001 From: DevForge Engineer Date: Mon, 18 May 2026 07:51:35 -0400 Subject: [PATCH 1/2] refactor: remove dead _prepend_row code in CSV conversion path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The convert() function consumed one row via reader.read_stream() to get CSV field names, then used _prepend_row to re-attach it — but the result was never used (the file is re-read from scratch for the actual conversion). Removed the unused _prepend_row() utility and the dead re-attachment line. The field-order detection itself is preserved. --- src/datamorph/converters.py | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/datamorph/converters.py b/src/datamorph/converters.py index 187afeb..1761b69 100644 --- a/src/datamorph/converters.py +++ b/src/datamorph/converters.py @@ -438,13 +438,11 @@ def convert( field_names = [s["name"] for s in schema] writer.set_field_order(field_names) elif output_format == "csv": - # Get field order from first few rows for CSV header + # Get field order from first row for CSV header sample = reader.read_stream(input_path) try: first_row = next(sample) writer.set_field_order(list(first_row.keys())) - # We consumed the first row, so we need to chain it back - sample = _prepend_row(sample, first_row) except StopIteration: pass @@ -494,12 +492,6 @@ def convert_batch( return results -def _prepend_row(stream: RowStream, row: Row) -> RowStream: - """Prepend a row to a stream (for re-inserting a consumed first row).""" - yield row - yield from stream - - def _format_to_extension(fmt: str) -> str: ext_map = { "csv": ".csv", From fc2a54a86045b8c5602f1f0306f9550592a3aeb3 Mon Sep 17 00:00:00 2001 From: DevForge Engineer Date: Mon, 18 May 2026 08:03:05 -0400 Subject: [PATCH 2/2] =?UTF-8?q?fix(docs):=20correct=20broken=20DevForge=20?= =?UTF-8?q?URLs=20and=20tool=20count=20(10=E2=86=9211)=20in=20README,=20fi?= =?UTF-8?q?x=20publish.yml=20step=20name?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish.yml | 2 +- README.md | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 87e3bf9..ab2d729 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -23,7 +23,7 @@ jobs: steps: - uses: actions/checkout@v6 - - name: Set up Python 3.11 + - name: Set up Python 3.12 uses: actions/setup-python@v6 with: python-version: "3.12" diff --git a/README.md b/README.md index 232de87..a00fad4 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ > ⭐ **Star this repo** if you work with data formats — it helps other developers find DataMorph! -Part of the [DevForge](https://coding-dev-tools.github.io/devforge.dev/) developer tool ecosystem. +Part of the [DevForge](https://coding-dev-tools.github.io/devforge/) developer tool ecosystem. ## Why DataMorph? @@ -152,14 +152,14 @@ datamorph batch ./raw_data/ ./processed/ --from csv --to parquet | **Pro** | $12/mo | Unlimited conversions, streaming, batch mode, all formats | | **Suite** | $49/mo | All 10 DevForge tools | -Get a license key at [devforge.dev/pricing](https://coding-dev-tools.github.io/devforge.dev/pricing.html). +Get a license key at [devforge.dev/pricing](https://coding-dev-tools.github.io/devforge/pricing.html). ---

- Part of DevForge — a suite of 10 developer CLI tools built by autonomous AI agents. Also check out API Contract Guardian (breaking change detection), APIGhost (mock servers), DeployDiff (infrastructure diffs), json2sql (JSON → SQL), click-to-mcp (CLI → MCP server), and DeadCode (dead code cleanup). + Part of DevForge — a suite of 11 developer CLI tools built by autonomous AI agents. Also check out API Contract Guardian (breaking change detection), APIGhost (mock servers), DeployDiff (infrastructure diffs), json2sql (JSON → SQL), click-to-mcp (CLI → MCP server), and DeadCode (dead code cleanup).

## License -MIT — [DevForge](https://coding-dev-tools.github.io/devforge.dev/) +MIT — [DevForge](https://coding-dev-tools.github.io/devforge/)