Skip to main content

gramps-gedcom7

A GEDCOM 7 import and export library for Gramps.

Project Status

The library provides comprehensive GEDCOM 7 import functionality. The implementation covers the vast majority of features and has been successfully tested with real-world files. While suitable for production use, users should verify results as with any conversion tool.

Export is newer than import. Every test file survives a round trip unchanged, but the researcher recorded in the database is not yet written.

Installation

To install the library, simply run:

python -m pip install gramps-gedcom7

Gramps 6.0 or newer is required, but is not installed automatically. Install it with python -m pip install "gramps>=6.0.0".

Usage as command-line tool

The tool can be used to convert a GEDCOM 7 file to a Gramps XML file on the command line. The command is:

python -m gramps_gedcom7.gedcom2xml path/to/input.ged path/to/output.gramps

Instead of an output file name, you can also specify - to write the output to standard output.

Usage as a library

from gramps.gen.db.utils import make_database
from gramps_gedcom7 import import_gedcom, export_gedcom

db = make_database("sqlite")
db.load("/path/to/grampsdb/<id>")

import_gedcom("input.ged", db)
export_gedcom(db, "output.ged")

db is a Gramps database: DbWriteBase to import into, DbReadBase to export from.

Both return a Report of what was left out; report.messages() lists it as text. Both take progress, a callable given how much is done and the total.

import_gedcom raises BrokenPointersError for pointers to records missing from the file; ImportSettings(void_broken_pointers=True) imports it anyway.

export_gedcom raises MissingObjectsError for references to objects missing from the database. It validates the dataset before writing and raises ExportValidationError if it does not conform; pass validate=False to write anyway.

Usage as Gramps plugin

The tool cannot be used as a Gramps plugin yet, since its interaction with the Gedcom 5 core plugin is not clarified. See this thread for the discussion.

Web interface

A Streamlit web interface is available for interactive use at gramps-gedcom7.streamlit.app.

You can also run it locally:

python -m gramps_gedcom7.web

This opens a web browser where you can upload GEDCOM 7 files and download the converted Gramps XML files.

Metadata

Release files for gramps-gedcom7 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gramps-gedcom7 0.4.1
File Size Uploaded
gramps_gedcom7-0.4.1.tar.gz 100.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gramps-gedcom7 0.4.1
File Interpreter ABI Platform
gramps_gedcom7-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 166.1 kB

Release files / gramps_gedcom7-0.4.1.tar.gz

Download URL gramps_gedcom7-0.4.1.tar.gz
Size 100.7 kB
Tags Source
SHA-256 checksum
How to use checksums
420a412ce9e4eead5a881d3e312e4615fb71cd684e47edcf0cb7c4309ea57ba6
BLAKE2b-256 checksum
How to use checksums
c849cfeb68dbeb274bacf1b6cf25484e29a3e44a818ac3b4c072511dff8630ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log

Release files / gramps_gedcom7-0.4.1-py3-none-any.whl

Download URL gramps_gedcom7-0.4.1-py3-none-any.whl
Size 65.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
10d5b71d76a6780e8c96db967d1db67f8922b6f76e6f6b56903a40de7cabdfaa
BLAKE2b-256 checksum
How to use checksums
cc89a612fb503a18940325d9175f99aa448ede4d0433dc252476884b989249ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page