Releases: DavidMStraub/python-gedcom7
Releases · DavidMStraub/python-gedcom7
v0.4.1
This release fixes an issue where empty continuation lines cause a parsing error. Thanks to @bwbensonjr for reporting and fixing the issue.
v0.4.0
Refactoring, proper handling of approximate dates, date ranges, and date periods.
v0.3.0
Major Features & Changes
- Completely refactored type casting:
- Introduced a new
gedcom7.castmodule for robustly casting string values to appropriate data types, including support for booleans, integers, lists, personal names, dates, times, media types, and more. - The parser now attaches a typed
.valueattribute to eachGedcomStructure, making downstream data handling easier and less error-prone.
- Introduced a new
- Rewritten core data types:
- Switched from custom class-based data types to Python
@dataclasstypes ingedcom7.types, simplifying usages and improving typing. - Simplified and modernized the type system with clear type aliases and unions.
- Switched from custom class-based data types to Python
- Parser improvements:
- The main parsing routine (
gedcom7.parser.loads) now uses the new type casting, returning trees with typed values.
- The main parsing routine (
- Utility additions:
- Added
gedcom7.utilmodule with utility functions to:- Convert GEDCOM dates/times to Python
datetime.dateanddatetime.timeobjects. - Retrieve children by tag from a
GedcomStructure.
- Convert GEDCOM dates/times to Python
- Added
Standards & Compatibility
- Updated to latest GEDCOM 7 specification:
- Grammar and constants (
gedcom7.grammar,gedcom7.const) updated for full compliance. - Added month constants for easier date handling.
- Grammar and constants (
- Expanded Python support:
- CI now tests on Python 3.9, 3.10, 3.11, 3.12, and 3.13.
- Added static type checking (
mypy) to the CI.
Testing
- Extensive new tests:
- Added
test/test_cast.pyfor comprehensive coverage of the new type casting logic. - Added
test/test_util.pyfor utility function tests. - Removed legacy tests for old type classes.
- Added
Other
- Project URLs and metadata:
- Added project URL to
setup.cfg.
- Added project URL to
- Miscellaneous:
- Various grammar and code cleanups for maintainability.
PS: Yes, these release notes are AI-generated 😊
v0.2.1
v0.2.0
Implemented parsing of most data types.
v0.1.0
First release.