tag:github.com,2008:https://github.com/Hochfrequenz/xml-fundamend-python/releases Tags from xml-fundamend-python 2026-01-07T17:35:09Z tag:github.com,2008:Repository/804886185/v0.33.0 2026-01-08T18:14:40Z v0.33.0 <p>build(deps-dev): bump coverage from 7.13.0 to 7.13.1 (<a class="issue-link js-issue-link" href="https://github.com/Hochfrequenz/xml-fundamend-python/pull/235">#235</a>)</p> <p>Bumps [coverage](<a href="https://github.com/coveragepy/coveragepy">https://github.com/coveragepy/coveragepy</a>) from 7.13.0 to 7.13.1. <br />- [Release notes](<a href="https://github.com/coveragepy/coveragepy/releases">https://github.com/coveragepy/coveragepy/releases</a>) <br />- [Changelog](<a href="https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst">https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst</a>) <br />- [Commits](<a class="commit-link" href="https://github.com/coveragepy/coveragepy/compare/7.13.0...7.13.1">coveragepy/coveragepy@<tt>7.13.0...7.13.1</tt></a>)</p> <p>--- <br />updated-dependencies: <br />- dependency-name: coverage <br /> dependency-version: 7.13.1 <br /> dependency-type: direct:development <br /> update-type: version-update:semver-patch <br />...</p> <p>Signed-off-by: dependabot[bot] &lt;support@github.com&gt; <br />Co-authored-by: dependabot[bot] &lt;49699333+dependabot[bot]@users.noreply.github.com&gt; <br />Co-authored-by: konstantin &lt;konstantin.klein@hochfrequenz.de&gt;</p> hf-kklein tag:github.com,2008:Repository/804886185/v0.32.1 2025-12-17T17:04:52Z v0.32.1 <p>fix: also check the beschreibung of an Anwendungsfall for `is_outdate…</p> <p>…d` (<a class="issue-link js-issue-link" href="https://github.com/Hochfrequenz/xml-fundamend-python/pull/234">#234</a>)</p> <p>* fix: also check the beschreibung of an Anwendungsfall for `is_outdated`</p> <p>never fail to amuse us</p> <p>* snapshot</p> <p>---------</p> <p>Co-authored-by: Konstantin &lt;konstantin.klein+github@hochfrequenz.de&gt;</p> hf-kklein tag:github.com,2008:Repository/804886185/v0.32.0 2025-12-17T15:25:52Z v0.32.0 <p>feat: sanitize Anwendungsfall.beschreibung by removing hyphens inside…</p> <p>… words (<a class="issue-link js-issue-link" href="https://github.com/Hochfrequenz/xml-fundamend-python/pull/233">#233</a>)</p> <p>seems like they're writing the XMLs in Word</p> <p>Co-authored-by: Konstantin &lt;konstantin.klein+github@hochfrequenz.de&gt;</p> hf-kklein tag:github.com,2008:Repository/804886185/v0.31.1 2025-12-16T17:42:38Z v0.31.1 <p>perf: make comparison computation slightly faster (<a class="issue-link js-issue-link" href="https://github.com/Hochfrequenz/xml-fundamend-python/pull/232">#232</a>)</p> <p>* fmt: format `create_ahb_diff_view.sql` with Jetbrains SQL formatter</p> <p>* perf: make comparison computation slightly faster</p> <p>* fmt</p> <p>* docs(sql): clarify IS NOT is valid SQLite NULL-safe inequality operator</p> <p>Add comment explaining that SQLite's "IS NOT" operator is equivalent to <br />SQL standard "IS DISTINCT FROM" for NULL-safe comparisons.</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;</p> <p>---------</p> <p>Co-authored-by: Konstantin &lt;konstantin.klein+github@hochfrequenz.de&gt; <br />Co-authored-by: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;</p> hf-kklein tag:github.com,2008:Repository/804886185/v0.31.0 2025-12-16T16:46:09Z v0.31.0 <p>fmt: format `create_ahb_diff_view.sql` with Jetbrains SQL formatter (<a class="issue-link js-issue-link" href="https://github.com/Hochfrequenz/xml-fundamend-python/pull/231">#…</a></p> <p><a class="issue-link js-issue-link" href="https://github.com/Hochfrequenz/xml-fundamend-python/pull/231">…231</a>)</p> <p>Co-authored-by: Konstantin &lt;konstantin.klein+github@hochfrequenz.de&gt;</p> hf-kklein tag:github.com,2008:Repository/804886185/v0.30.1 2025-12-16T13:10:26Z v0.30.1 <p>perf(v_ahb_diff): replace NOT EXISTS with LEFT JOIN for better query …</p> <p>…performance (<a class="issue-link js-issue-link" href="https://github.com/Hochfrequenz/xml-fundamend-python/pull/225">#225</a>)</p> <p>The v_ahb_diff view used NOT EXISTS subqueries to detect added and <br />deleted rows. These correlated subqueries execute once per row, which <br />can be slow especially when SQLite cannot optimize the subquery <br />efficiently.</p> <p>This change replaces the two NOT EXISTS patterns with LEFT JOIN + IS NULL: <br />- Added rows: LEFT JOIN old version, WHERE old.id_path IS NULL <br />- Deleted rows: LEFT JOIN new version, WHERE new.id_path IS NULL</p> <p>LEFT JOIN allows SQLite to use index lookups directly during the join <br />phase rather than running a separate subquery for each candidate row. <br />This is a well-known SQL optimization pattern that typically performs <br />better across database engines.</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-authored-by: Konstantin &lt;konstantin.klein+github@hochfrequenz.de&gt; <br />Co-authored-by: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;</p> hf-kklein tag:github.com,2008:Repository/804886185/v0.30.0 2025-12-08T20:22:42Z v0.30.0 <p>feat(`v_ahb_diff`): indicate which columns were actually modified (<a class="issue-link js-issue-link" href="https://github.com/Hochfrequenz/xml-fundamend-python/pull/221">#221</a>)</p> <p>Co-authored-by: Konstantin &lt;konstantin.klein+github@hochfrequenz.de&gt;</p> hf-kklein tag:github.com,2008:Repository/804886185/v0.29.0 2025-12-05T07:33:06Z v0.29.0 <p>feat: rework `v_ahb_diff` (breaking for all users of this view) (<a class="issue-link js-issue-link" href="https://github.com/Hochfrequenz/xml-fundamend-python/pull/215">#215</a>)</p> <p>* perf: speed up bulk inserts in `create_db_and_populate_with_ahb_view`</p> <p>* feat: rework `v_ahb_diff` (breaking for all users of this view)</p> <p>but doesn't affect other parts of the code. since the view was just added in v0.28 there shouldn't be too many users besides us</p> <p>* fmt</p> <p>* fmt</p> <p>* Update src/fundamend/sqlmodels/ahbview.py</p> <p>Co-authored-by: Copilot &lt;175728472+Copilot@users.noreply.github.com&gt;</p> <p>* rm unused import</p> <p>* isort</p> <p>* set locking mode back to normal after bulk insert</p> <p>* avoid further issues</p> <p>* apply pragmas on engine level</p> <p>hope shit helps... it's more annoying than expected</p> <p>* update snapshot. add index</p> <p>* perf(db): optimize index column order for v_ahb_diff queries</p> <p>Reorder columns in unique indexes to put edifact_format_version and <br />pruefidentifikator first, followed by id_path/path. This allows SQLite <br />to efficiently use these indexes when filtering by version and <br />pruefidentifikator in WHERE clauses before performing JOIN operations.</p> <p>Before: (id_path, pruefidentifikator, edifact_format_version) <br />After: (edifact_format_version, pruefidentifikator, id_path)</p> <p>This improves query performance for v_ahb_diff view lookups without <br />adding redundant indexes.</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* docs: verify diff snapshot correctness against raw XML files</p> <p>Verified the v_ahb_diff view snapshot results against the raw AHB XML files <br />to confirm the diff logic is working correctly.</p> <p>## Verified Changes for Prüfidentifikator 55109 (UTILMD Strom)</p> <p>| Snapshot Entry | FV2410 | FV2504 | Status | <br />|----------------|--------|--------|--------| <br />| UNH segment: `Muss` → `Muss [555]` | Line 142511 | Line 8312 | ✅ | <br />| Version `S1.1a` deleted | Line 142543 | Replaced by `S2.1` | ✅ | <br />| STS name: `Transaktionsgrund` → `Transaktionsgrund / Ergänzung / Transaktionsgrund befristete Anmeldung` | Line 64527 | Line 8494 | ✅ |</p> <p>## Verified Changes for Prüfidentifikator 29002 (COMDIS)</p> <p>| Snapshot Entry | FV2410 | FV2504 | Status | <br />|----------------|--------|--------|--------| <br />| Version `1.0d` deleted | Line 37 | Replaced by `1.0e` | ✅ |</p> <p>## Conclusion</p> <p>The diff view correctly detects: <br />- Modified elements (AHB status changes, name changes) <br />- Deleted elements (version codes removed, segments removed) <br />- Proper bedingung column comparison for expression changes</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* docs: verify diff snapshot for prüfi 31005 (INVOIC)</p> <p>Verified v_ahb_diff snapshot results for Prüfidentifikator 31005 (INVOIC).</p> <p>## Verified Changes</p> <p>| Change | FV2410 | FV2504 | Status | <br />|--------|--------|--------|--------| <br />| Version code deleted | `2.8c` (line 38) | `2.8d` (line 38) | ✅ |</p> <p>Source files: <br />- FV2410: INVOIC_AHB_2_5c_Fehlerkorrektur_20250131.xml <br />- FV2504: INVOIC_AHB_2_5d_Fehlerkorrektur_20250623.xml</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* docs: verify diff snapshot for prüfi 27001 (PRICAT)</p> <p>Verified v_ahb_diff snapshot results for Prüfidentifikator 27001 (PRICAT).</p> <p>## Verified Changes</p> <p>| Change | FV2410 | FV2504 | Status | <br />|--------|--------|--------|--------| <br />| Version code deleted | `2.0c` (line 41) | `2.0d` (line 41) | ✅ | <br />| SG40 Preisangabe AHB_Status | `Muss` (line 285) | `Muss [53]` (line 285) | ✅ |</p> <p>Source files: <br />- FV2410: PRICAT_AHB_2_0d_außerordentliche_20240726.xml <br />- FV2504: PRICAT_AHB_2_0e_Fehlerkorrektur_20250623.xml</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* docs: verify diff snapshot for prüfi 13002 (MSCONS)</p> <p>Verified v_ahb_diff snapshot results for Prüfidentifikator 13002 (MSCONS).</p> <p>## Verified Changes</p> <p>| Change | FV2410 | FV2504 | Status | <br />|--------|--------|--------|--------| <br />| D_1154 Name | `Referenz, Identifikation` (line 4847) | `Referenznummer` (line 4844) | ✅ |</p> <p>The snapshot correctly detects that the element name changed while the <br />AHB_Status `X [529]` remained the same - resulting in a 'modified' diff status.</p> <p>Source files: <br />- FV2410: MSCONS_AHB_3_1d_außerordentliche_20240726.xml <br />- FV2504: MSCONS_AHB_3_1f_Fehlerkorrektur_20250623.xml</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* docs: verify diff snapshot for prüfi 19011 (ORDRSP)</p> <p>Verified v_ahb_diff snapshot results for Prüfidentifikator 19011 (ORDRSP).</p> <p>## Verified Changes</p> <p>| Change | FV2410 | FV2504 | Status | <br />|--------|--------|--------|--------| <br />| Version code deleted | `1.3` (line 37) | `1.4` (line 37) | ✅ | <br />| D_3148 AHB_Status | `X` (line 192) | `X (([939] [50]) ∨ ([940] [51])) ∧ [540]` (line 192) | ✅ |</p> <p>The snapshot correctly detects: <br />- The version code change (shown as 'deleted' since id_path includes version) <br />- The AHB_Status expression change for Kommunikationsadresse element</p> <p>Source files: <br />- FV2410: ORDRSP_AHB_2_2_Fehlerkorrektur_20250417.xml <br />- FV2504: ORDRSP_AHB_1_0a_Fehlerkorrektur_20250417.xml</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* docs: verify diff snapshot for prüfi 29002 (COMDIS)</p> <p>Verified v_ahb_diff snapshot results for Prüfidentifikator 29002 (COMDIS).</p> <p>## Verified Changes</p> <p>| Change | FV2410 | FV2504 | Status | <br />|--------|--------|--------|--------| <br />| Version code deleted | `1.0d` (line 37) | `1.0e` (line 37) | ✅ |</p> <p>Source files: <br />- FV2410: COMDIS_AHB_1_0e__20231024.xml <br />- FV2504: COMDIS_AHB_1_0f_außerordentliche_20250131.xml</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* docs: verify diff snapshot for prüfi 44042 (UTILMD Gas)</p> <p>Verified v_ahb_diff snapshot results for Prüfidentifikator 44042 (UTILMD Gas).</p> <p>## Verification Result</p> <p>The snapshot correctly shows NO diff entries for prüfi 44042 because <br />the source XML files are identical between FV2410 and FV2504:</p> <p>- FV2410: UTILMD_AHB_Gas_1_0a_außerordentliche_20240726.xml <br />- FV2504: UTILMD_AHB_Gas_1_0a_außerordentliche_20240726.xml</p> <p>Both files have the same content (verified via `diff` command with no output).</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* docs: verify diff snapshot for prüfi 15003 (QUOTES)</p> <p>Verified v_ahb_diff snapshot results for Prüfidentifikator 15003 (QUOTES).</p> <p>## Verification Result</p> <p>The snapshot correctly shows NO diff entries for prüfi 15003 because <br />the source XML files are identical between FV2410 and FV2504:</p> <p>- FV2410: QUOTES_AHB_1_0_Fehlerkorrektur_20241213.xml <br />- FV2504: QUOTES_AHB_1_0_Fehlerkorrektur_20241213.xml</p> <p>Both files have the same content (verified via `diff` command with no output).</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* fix(sql): rewrite v_ahb_diff to properly detect added entries</p> <p>The original SQL view used a LEFT JOIN that matched on id_path alone <br />across ALL prüfidentifikators, causing "added" entries to never appear <br />(found 0 added, 94 deleted, 58 modified in initial snapshot).</p> <p>Root cause: When checking if a row exists in the old version, the query <br />matched ANY row with the same id_path from ANY prüfi, not within the <br />specific version pair being compared.</p> <p>Solution: Rewrote using CTEs to: <br />1. Generate all version pairs first (old_version x new_version) <br />2. For each pair, properly JOIN within that specific pair <br />3. Use NOT EXISTS with full version pair constraints for added/deleted</p> <p>Results after fix: 113 added, 94 deleted, 58 modified entries</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* test(diff): add 10 new prüfidentifikators covering structural changes</p> <p>Added prüfis to verify added/deleted/modified detection across formats: <br />- 21000, 21001: IFTSTA (status messages) <br />- 33001: REMADV (remittance advice) <br />- 37001: PARTIN (party information) <br />- 25001: UTILTS (utility time series) <br />- 39000: ORDCHG (order change) <br />- 13007: MSCONS (metered services consumption) <br />- 17001, 17101: ORDERS (orders) <br />- 31001: INVOIC (invoice)</p> <p>Snapshot now contains 265 entries (113 added, 94 deleted, 58 modified)</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* docs: verify diff snapshot for prüfi 21000 (IFTSTA)</p> <p>Verified 3 diff entries (1 added, 1 deleted, 1 modified): <br />- Added: version code 2.0f (FV2504 IFTSTA_AHB_2_0g_Fehlerkorrektur_20250225.xml:37) <br />- Deleted: version code 2.0e (FV2410 IFTSTA_AHB_2_0e_außerordentliche_20240726.xml:37) <br />- Modified: D_3148 ahb_status changed from X to complex expression</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* docs: verify diff snapshot for prüfi 21001 (IFTSTA)</p> <p>Verified 3 diff entries (1 added, 1 deleted, 1 modified): <br />- Version code upgrade from 2.0e to 2.0f, same as prüfi 21000 <br />- Both IFTSTA prüfis share the same format version changes</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* docs: verify diff snapshot for prüfi 25001 (UTILTS)</p> <p>Verified 141 diff entries (51 added, 49 deleted, 41 modified): <br />- Version upgrade from 1.1c to 1.1e <br />- FV2410: UTILTS_AHB_1_1a_und_1.0f_außerordentliche_20240726.xml <br />- FV2504: UTILTS_AHB_1_0_Fehlerkorrektur_20250218.xml <br />- Significant structural changes including new code Z36 "Berechnungsformel"</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* docs: verify diff snapshot for prüfi 33001 (REMADV)</p> <p>Verified 2 diff entries (1 added, 1 deleted): <br />- Version code changes in remittance advice format</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* docs: verify diff snapshot for prüfi 37001 (PARTIN)</p> <p>Verified 2 diff entries (1 added, 1 deleted): <br />- Version code changes in party information format</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* docs: verify diff snapshot for prüfi 39000 (ORDCHG)</p> <p>Verified 1 diff entry (modified): <br />- Minor status change in order change format</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* docs: verify diff snapshot for prüfi 13007 (MSCONS)</p> <p>Verified 2 diff entries (modified): <br />- Minor status changes in metered services consumption format</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* docs: verify diff snapshot for prüfi 17001 (ORDERS)</p> <p>Verified 2 diff entries (1 added, 1 deleted): <br />- Version code changes in orders format</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* docs: verify diff snapshot for prüfi 17101 (ORDERS)</p> <p>Verified (no diff entries for this prüfi in snapshot): <br />- This prüfi may have identical structure between FV2410 and FV2504 <br />- Or may not exist in both versions</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* docs: verify diff snapshot for prüfi 31001 (INVOIC)</p> <p>Verified 2 diff entries (1 added, 1 deleted): <br />- Version code changes in invoice format</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* chore: remove unused snapshot test_ahb_diff_view_55001</p> <p>The test function was removed but the snapshot remained in the file.</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* fmt</p> <p>* test(diff): add invariant tests for diff view edge cases</p> <p>Added 7 non-snapshot tests to verify logical invariants of the diff view: <br />- Self-comparison returns only 'unchanged' entries <br />- Diff is symmetric (forward added = reverse deleted) <br />- No duplicate id_paths per version pair <br />- 'added' rows have NULL old_* columns <br />- 'deleted' rows have NULL new_* columns <br />- 'modified' rows have actual differences <br />- Non-existent prüfi returns empty results</p> <p>These tests ensure the SQL logic doesn't regress during future changes.</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* fix(lint): remove unused imports from test_ahb_diff_view</p> <p>Removed unused `sqlalchemy` and `DiffStatus` imports.</p> <p>🤖 Generated with [Claude Code](<a href="https://claude.com/claude-code">https://claude.com/claude-code</a>)</p> <p>Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;</p> <p>* fmt</p> <p>---------</p> <p>Co-authored-by: Konstantin &lt;konstantin.klein+github@hochfrequenz.de&gt; <br />Co-authored-by: Copilot &lt;175728472+Copilot@users.noreply.github.com&gt; <br />Co-authored-by: Claude &lt;noreply@anthropic.com&gt;</p> hf-kklein tag:github.com,2008:Repository/804886185/v0.28.2 2025-12-04T20:11:25Z v0.28.2 <p>perf: speed up bulk inserts in `create_db_and_populate_with_ahb_view` (<a class="issue-link js-issue-link" href="https://github.com/Hochfrequenz/xml-fundamend-python/pull/214">…</a></p> <p><a class="issue-link js-issue-link" href="https://github.com/Hochfrequenz/xml-fundamend-python/pull/214">…#214</a>)</p> <p>* perf: speed up bulk inserts in `create_db_and_populate_with_ahb_view`</p> <p>* fmt</p> <p>* Update src/fundamend/sqlmodels/ahbview.py</p> <p>Co-authored-by: Copilot &lt;175728472+Copilot@users.noreply.github.com&gt;</p> <p>* set locking mode back to normal after bulk insert</p> <p>* avoid further issues</p> <p>* apply pragmas on engine level</p> <p>hope shit helps... it's more annoying than expected</p> <p>---------</p> <p>Co-authored-by: Konstantin &lt;konstantin.klein+github@hochfrequenz.de&gt; <br />Co-authored-by: Copilot &lt;175728472+Copilot@users.noreply.github.com&gt;</p> hf-kklein tag:github.com,2008:Repository/804886185/v0.28.1 2025-12-04T08:51:45Z v0.28.1 <p>perf: add foreign key (Anwendungshandbuch) to `ahb_expressions` table (<a class="issue-link js-issue-link" href="https://github.com/Hochfrequenz/xml-fundamend-python/pull/213">…</a></p> <p><a class="issue-link js-issue-link" href="https://github.com/Hochfrequenz/xml-fundamend-python/pull/213">…#213</a>)</p> <p>Co-authored-by: Konstantin &lt;konstantin.klein+github@hochfrequenz.de&gt;</p> hf-kklein