tag:github.com,2008:https://github.com/DavidMStraub/python-gedcom7/releasesRelease notes from python-gedcom72025-11-29T20:01:56Ztag:github.com,2008:Repository/541657388/v0.4.12025-11-29T20:04:58Zv0.4.1<p>This release fixes an issue where empty continuation lines cause a parsing error. Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bwbensonjr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bwbensonjr">@bwbensonjr</a> for reporting and fixing the issue.</p>DavidMStraubtag:github.com,2008:Repository/541657388/v0.4.02025-06-18T20:34:50Zv0.4.0<p>Refactoring, proper handling of approximate dates, date ranges, and date periods.</p>DavidMStraubtag:github.com,2008:Repository/541657388/v0.3.02025-06-07T11:26:31Zv0.3.0<h3>Major Features & Changes</h3>
<ul>
<li><strong>Completely refactored type casting:</strong>
<ul>
<li>Introduced a new <code>gedcom7.cast</code> module for robustly casting string values to appropriate data types, including support for booleans, integers, lists, personal names, dates, times, media types, and more.</li>
<li>The parser now attaches a typed <code>.value</code> attribute to each <code>GedcomStructure</code>, making downstream data handling easier and less error-prone.</li>
</ul>
</li>
<li><strong>Rewritten core data types:</strong>
<ul>
<li>Switched from custom class-based data types to Python <code>@dataclass</code> types in <code>gedcom7.types</code>, simplifying usages and improving typing.</li>
<li>Simplified and modernized the type system with clear type aliases and unions.</li>
</ul>
</li>
<li><strong>Parser improvements:</strong>
<ul>
<li>The main parsing routine (<code>gedcom7.parser.loads</code>) now uses the new type casting, returning trees with typed values.</li>
</ul>
</li>
<li><strong>Utility additions:</strong>
<ul>
<li>Added <code>gedcom7.util</code> module with utility functions to:
<ul>
<li>Convert GEDCOM dates/times to Python <code>datetime.date</code> and <code>datetime.time</code> objects.</li>
<li>Retrieve children by tag from a <code>GedcomStructure</code>.</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>Standards & Compatibility</h3>
<ul>
<li><strong>Updated to latest GEDCOM 7 specification:</strong>
<ul>
<li>Grammar and constants (<code>gedcom7.grammar</code>, <code>gedcom7.const</code>) updated for full compliance.</li>
<li>Added month constants for easier date handling.</li>
</ul>
</li>
<li><strong>Expanded Python support:</strong>
<ul>
<li>CI now tests on Python 3.9, 3.10, 3.11, 3.12, and 3.13.</li>
<li>Added static type checking (<code>mypy</code>) to the CI.</li>
</ul>
</li>
</ul>
<h3>Testing</h3>
<ul>
<li><strong>Extensive new tests:</strong>
<ul>
<li>Added <code>test/test_cast.py</code> for comprehensive coverage of the new type casting logic.</li>
<li>Added <code>test/test_util.py</code> for utility function tests.</li>
<li>Removed legacy tests for old type classes.</li>
</ul>
</li>
</ul>
<h3>Other</h3>
<ul>
<li><strong>Project URLs and metadata:</strong>
<ul>
<li>Added project URL to <code>setup.cfg</code>.</li>
</ul>
</li>
<li><strong>Miscellaneous:</strong>
<ul>
<li>Various grammar and code cleanups for maintainability.</li>
</ul>
</li>
</ul>
<hr>
<p>PS: Yes, these release notes are AI-generated 😊</p>DavidMStraubtag:github.com,2008:Repository/541657388/v0.2.12023-02-26T18:11:27Zv0.2.1<p>This release fixes an issue with parsing of incomplete dates and accounts for an according update in the GEDCOM 7 specification (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1561408692" data-permission-text="Title is private" data-url="https://github.com/DavidMStraub/python-gedcom7/issues/2" data-hovercard-type="issue" data-hovercard-url="/DavidMStraub/python-gedcom7/issues/2/hovercard" href="https://github.com/DavidMStraub/python-gedcom7/issues/2">#2</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1562799439" data-permission-text="Title is private" data-url="https://github.com/DavidMStraub/python-gedcom7/issues/3" data-hovercard-type="pull_request" data-hovercard-url="/DavidMStraub/python-gedcom7/pull/3/hovercard" href="https://github.com/DavidMStraub/python-gedcom7/pull/3">#3</a>).</p>
<p>Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/geostag/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/geostag">@geostag</a> for spotting and fixing the issue!</p>DavidMStraubtag:github.com,2008:Repository/541657388/v0.2.02022-10-11T19:20:22Zv0.2.0<p>Implemented parsing of most data types.</p>DavidMStraubtag:github.com,2008:Repository/541657388/v0.1.12022-10-10T10:49:27Zv0.1.1<p>Fix PyPI workflow</p>DavidMStraubtag:github.com,2008:Repository/541657388/v0.1.02022-10-10T10:42:50Zv0.1.0<p>First release.</p>DavidMStraub