Skip to main content

gedcom-reports

Genealogy reports built on top of gedcom-lite.

This package provides higher-level report generators for GEDCOM files. Where gedcom-lite answers questions like "who are this person's ancestors?", gedcom-reports produces a complete document — "a 10-generation Sosa-numbered ancestor report with categorized immigrant tables and a colonial-ancestors section, in markdown."

The tools in this package make editorial choices about how family history should be presented. Those choices (region taxonomies, era boundaries, numbering schemes) live in package-level config files that can be overridden on the command line.

Install

pip install gedcom-reports

Or run without installing:

uvx --from gedcom-reports gedcom-ancestor-report --help

Tools

gedcom-ancestor-report

Generates a markdown report of a person's direct ancestors. Sosa-Stradonitz numbered. Categorizes ancestors into immigrant tables by region of birth and into a colonial-ancestors section by birth/death era.

gedcom-ancestor-report tree.ged --root @I1@ --depth 7 --output report.md

Sections produced:

  • Per-generation listing of every ancestor, numbered using the Ahnentafel system (#1 = subject, father = 2N, mother = 2N+1).
  • Alternate Family Tree sections for each FAMC entry the user did not pick (only when --alternate is passed for that child).
  • Optional FAMC Conflicts list (with --show-conflicts).
  • Immigrants section with subsections per region (German and Scandinavian, Dutch, French, Spanish and Portuguese, Italian, Irish, Scottish, Welsh, English by default — fully configurable).
  • Colonial Ancestors section — colonial immigrants, ancestors born in the colonies, and early US immigrants.

Flags

--root @I1@                   Root individual xref. (required)
--depth N                     Generations to walk (default: 7).
--override "@C@=@F@,@M@"      Pick parents @F@ and @M@ for child @C@.
                              Repeatable. Either parent may be empty.
--alternate @C@               Render an Alternate Family Tree section for
                              child @C@ from any FAMC entries that weren't
                              chosen. Repeatable.
--regions PATH                Path to regions.yaml or regions.json
                              (default: bundled).
--alt-depth N                 Cap depth of alternate family trees
                              (default: --depth).
--show-conflicts              Include a FAMC Conflicts section before the
                              tables.
--colonial / --no-colonial    Include or suppress the Colonial Ancestors
                              section (default: included). Pass
                              --no-colonial for non-US-focused reports.
--output PATH                 Write to a file (default: stdout).

FAMC default behavior

By default, the tool follows only the first FAMC of each individual. This keeps the main tree unambiguous. To choose a different FAMC for an individual, use --override. Overrides are silent — the un-chosen parent set is dropped — unless you also pass --alternate @C@, which surfaces it as a separate Alternate Family Tree section.

This split lets you handle two distinct cases cleanly:

  • Reconciling a data-entry error (a person whose mother and father were entered as two separate FAMC families that should have been one) — use --override alone to merge them silently.
  • Documenting an unresolved parentage question (sources disagree on someone's biological parents) — use --override and --alternate so both the chosen and rejected parent sets are visible in the report.

If you want to see which ancestors have multiple FAMC entries before deciding on overrides, use --show-conflicts.

Region classification

A YAML/JSON config file controls how birth places are bucketed. The default config ships with the package and includes Germanic, Scandinavian, Dutch, French, Iberian, Italian, Irish, Scottish, Welsh, and English buckets.

The classification is two-pass: any US/colonies keyword in the place string classifies the place as US (excluded from immigrant tables); otherwise regions are tested in config order, first match wins.

To customize, copy the bundled regions.yaml (location reported by gedcom-ancestor-report --print-default-regions) and pass --regions PATH.

Relationship to gedcom-lite

gedcom-lite is the parser and low-level query layer. gedcom-reports sits on top, depends on gedcom-lite, and produces complete documents. This separation keeps the parser free of editorial choices and lets new report types be added here without growing the parser's scope.

License

MIT.

Metadata

Release files for gedcom-reports 0.1.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 gedcom-reports 0.1.0
File Size Uploaded
gedcom_reports-0.1.0.tar.gz 16.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gedcom-reports 0.1.0
File Interpreter ABI Platform
gedcom_reports-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 31.8 kB

Release files / gedcom_reports-0.1.0.tar.gz

Download URL gedcom_reports-0.1.0.tar.gz
Size 16.0 kB
Tags Source
SHA-256 checksum
How to use checksums
ecbe646e493c8f9ed478e88fa764dcc4cdb0f0ac54df1e8e01fc24ac718bee2f
BLAKE2b-256 checksum
How to use checksums
8b6902e613397d0f72121566b9801510e84584228b131ed2be5780f18822ef4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 7, 2026.

Transparency log

Release files / gedcom_reports-0.1.0-py3-none-any.whl

Download URL gedcom_reports-0.1.0-py3-none-any.whl
Size 15.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
09c5adf84eff47e2450cec8a276dbd572a8ac5a6ae1af61fc0702c10f50e2607
BLAKE2b-256 checksum
How to use checksums
7ba441fc96cdbabbc196f34e42b8a2b1696ee3fa24889f370864db0218d8850e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 7, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

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