Simple GEDCOM Parser
A simplified Python library for extracting genealogy data from GEDCOM files:
- Extract basic person data - Get a list of people with vital information
- Extract sources - Get lists of documentary sources
- Extract pedigree - Get direct ancestors
Features
- Parse GEDCOM 5.5 files
- Extract person data: names, birth/death dates and places, parents
- Flexible person data options: basic, extended (suffix, gender, status), or with marriages
- Extract marriage data: spouses, marriage dates, and family IDs
- Extract source citations linked to individuals
- Extract pedigree
- Simple, clean API designed for data analysis and writing to csv files
Quick Start
# Read a GEDCOM file and write lists to CSV files
from simple_gedcom import load_gedcom
gedcom = load_gedcom('data/tree.ged')
gedcom.save_person_list_to_csv()
gedcom.save_person_list_to_csv(extended=True)
gedcom.save_person_list_to_csv(marriages=True)
gedcom.save_person_list_to_csv(extended=True, marriages=True)
gedcom.save_pedigree_to_csv()
gedcom.save_source_list_to_csv()
gedcom.save_person_source_list_to_csv()
# pedigree analytics
pedigree = gedcom.get_pedigree()
gedcom.show_generation_counts(pedigree)
gedcom.show_pedigree_duplicates(pedigree)
# Use pandas to display lists
import pandas as pd
# Basic person list
person_list = gedcom.get_person_list()
# With extended fields (suffix, gender, status)
person_list = gedcom.get_person_list(extended=True)
# With marriage columns (spouse names, marriage dates, family IDs)
person_list = gedcom.get_person_list(marriages=True)
# Combined
person_list = gedcom.get_person_list(extended=True, marriages=True)
df_person_list = pd.DataFrame(person_list)
print(df_person_list.head())
sources = gedcom.get_source_list()
df_sources = pd.DataFrame(sources)
print(df_sources.head())
person_sources = gedcom.get_person_source_list()
df_person_sources = pd.DataFrame(person_sources)
print(df_person_sources.head())
pedigree = gedcom.get_pedigree()
df_pedigree = pd.DataFrame(pedigree)
print(df_pedigree.head())
# Search by name
found = gedcom.find_persons_by_name(first_name="Theodore")
df_found = pd.DataFrame(found)
print(df_found.head())
# Show the pedigree for a specific person (by ID)
pedigree = gedcom.get_pedigree("@I162694122750@")
df_pedigree = pd.DataFrame(pedigree)
print(df_pedigree.head())
Requirements
- Python 3.6+
- No external dependencies for core functionality
- pandas (optional, for DataFrame examples)
License
This project is licensed under the GNU General Public License v2.0 - see the LICENSE file for details.
Attribution
This project is derived from python-gedcom by Nicklas Reincke and contributors. The original project provided the foundation for GEDCOM parsing, which has been simplified and focused for specific genealogy data extraction use cases.
Original Copyright (C) 2018-2019 Nicklas Reincke and contributors
Simplified version Copyright (C) 2025 [mcobtechnology]
Contributing
This is a simplified, focused library. If you need additional GEDCOM functionality, consider using the full-featured python-gedcom library.
For bug fixes and improvements to the core functionality, feel free to open issues or submit pull requests.
Metadata
Release files for simple-gedcom 1.0.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| simple_gedcom-1.0.9.tar.gz | 24.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| simple_gedcom-1.0.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 56.8 kB
Release files / simple_gedcom-1.0.9.tar.gz
| Download URL | simple_gedcom-1.0.9.tar.gz |
|---|---|
| Size | 24.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9c24fd5e4e952c7f8e618497961a28460680ab8d46e45523ca80567e1f9b1ab9
|
|
BLAKE2b-256 checksum How to use checksums |
07aae93df8aa2a77c94a8925ab1af6038b3fa3a2818d4490231a8df3bfdc58b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.10
|
Release files / simple_gedcom-1.0.9-py3-none-any.whl
| Download URL | simple_gedcom-1.0.9-py3-none-any.whl |
|---|---|
| Size | 32.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
45ff4f5de87a11163a948dfa4c9f97e35fd648e8dcaf7001d03412f87de71a9d
|
|
BLAKE2b-256 checksum How to use checksums |
ba3e55e0d657a8e858107df90ab95fe3f63ac89ede8983a204635dee5da62e55
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.10
|