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.0

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.0
File Size Uploaded
gramps_gedcom7-0.4.0.tar.gz 100.4 kB Details

Built distribution (wheel)

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

Total release size: 165.5 kB

Release files / gramps_gedcom7-0.4.0.tar.gz

Download URL gramps_gedcom7-0.4.0.tar.gz
Size 100.4 kB
Tags Source
SHA-256 checksum
How to use checksums
b462a89470422e40a2fb3d5478ac8939735ce43da585b3f66ddf8f971b436314
BLAKE2b-256 checksum
How to use checksums
705f7b9fbeff5c8dae91cee3dcae93188adac39afb861424f5a0d6e2e2da5430
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 1, 2026.

Transparency log

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

Download URL gramps_gedcom7-0.4.0-py3-none-any.whl
Size 65.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a7bfab295a23deaddb4c02499772a212270dbdcd4b8945de2351469ed6fb4a29
BLAKE2b-256 checksum
How to use checksums
e16a77b574b9c9977fe2694a152603406b614499513d1a7bba6decc95eb3e818
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 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.0 This release

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