Skip to main content

A Python module for reading and extracting data from GEDCOM files.

Reason this release was yanked:

Bad install

Project description

Simple GEDCOM Parser

A simplified Python library for extracting genealogy data from GEDCOM files:

  1. Extract basic person data - Get a list of people with vital information
  2. Extract sources - Get lists of documentary sources
  3. 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simple_gedcom-1.0.8.tar.gz (24.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simple_gedcom-1.0.8-py3-none-any.whl (32.1 kB view details)

Uploaded Python 3

File details

Details for the file simple_gedcom-1.0.8.tar.gz.

File metadata

  • Download URL: simple_gedcom-1.0.8.tar.gz
  • Upload date:
  • Size: 24.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.10

File hashes

Hashes for simple_gedcom-1.0.8.tar.gz
Algorithm Hash digest
SHA256 c8c9dfa033696d530483be51b12dfe613a7a293ef08bcefc73517289aa41e09b
MD5 579b45ceb5c52ea315f71c4f317f9a87
BLAKE2b-256 49d273264405ce7c53f21677e90362754c2b8dd490c3b64fd9fba0db9db0f953

See more details on using hashes here.

File details

Details for the file simple_gedcom-1.0.8-py3-none-any.whl.

File metadata

  • Download URL: simple_gedcom-1.0.8-py3-none-any.whl
  • Upload date:
  • Size: 32.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.10

File hashes

Hashes for simple_gedcom-1.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 2bb99a3c3974316b87ee0a4a770f6854686748959e4499b7ba85b6b66ee394f9
MD5 dd69140876bf7be47ebe67f4abef24c2
BLAKE2b-256 cccaaf2218365d5496037e1813f7a0d056b675a43d95f898237d5bfeee6b1e8d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page