Skip to main content

Nissaga, genealogy tree generator

CI Coverage PyPi license: AGPL v3 downloads

About

Nissaga can be used to generate Genealogy trees from a simple data description in YAML.

Example: Modern Family Genealogy

Nissaga is a Catalan word for lineage.

Installation

pip install nissaga

You need to install graphviz. Not the python wrapper library, but the program itself.

Usage

The command line interface is still quite simple and future versions will evolve it to a more powerful one. Right now it works like this:

nissaga myfamily.yaml

This generates a file myfamily.pdf

You can specify a second parameter to choose the output format: png, svg or any supported by graphviz.

nissaga myfamily.yaml svg

Input file

The input file follows this Schema documented here

A simple example:

people:
  me:
    fullname: Alférez Boye, Carmen
    born: 1988-06-12
  sis:
    fullname: Alférez Boye, Diana
    born: 1985-07-04
  dad:
    fullname: Alférez Esquerra, Fran
    born: 1957-03-23
  mom:
    fullname: Boye Gener, Hipatia
    born: 1951-10-28
  dadgranpa:
    fullname: Boye Isidro, Javier
    born: 1932-07-22
    died: 2013-03-19
  dadgranma:
    fullname: Gener Krahe, Laura
    born: 1933-02-12
    died: 2017-09-19
  momgranpa:
    fullname: Alférez Miró, Natanael
    born: 1944-04-15
  momgranma:
    fullname: Esquerra Olivera, Pandora
    born: 1931-01-13
    died: 2007-05-19

families:
  - parents: [mom, dad]
    children: [sis, me] 
  - parents: [dadgranma, dadgranpa]
    children: [dad]
  - parents: [momgranma, momgranpa]
    children: [mom]

Differences with kingraph

This application was started as a clone of the functionality of kingraph to overcome performance and scalability problems with big trees, and also to extend its functionality.

So, it is mostly back compatible with kingraph format.

The following kingraph features are not supported:

  • family.children2 and family.parents2 relations are not yet supported

The following features have been introduced by nissaga, and are not available in kingraph (but the yaml would be still compatible).

  • Rich person boxes with dates, photos and separated first name and surname.
    • person.born maybe set to a date, and will appear as *YYYY-MM-DD bellow the person's name.
    • person.died maybe set to a date or true and will appear as +YYYY-MM-DD bellow the person's name.
    • person.age age of dead, not used, just to keep track of it when that's the only data we have.
    • person.pics is a list of pictures files relative to the yaml file. The first one will be added as person's face. The other pics are not used yet.
  • Rich unions with marriage and divorce annotations
    • family.married: defaults to true. Set it to false to indicate unmarried patnership (⚯). Set it to a date to see ⚭YYYY-MM-DD in the union node.
    • family.divorced: defaults to false. Set it to true to indicate a divorce (⚮). Set it to a date to see ⚮YYYY-MM-DD in the union node.
  • Attributes for internal documentation:
    • person.todo a string or list of strings of pending tasks for the person
    • person.from origin of the person (country, city...)
    • person.comments a string or list of strings of comments
    • family.notes a string or list of strings of notes
    • family.docs documentation about the family. A list of document paths relative to the yaml file. Not used yet but it is suposed to provide links to the research sources.

Release files for nissaga 0.3.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 nissaga 0.3.0
File Size Uploaded
nissaga-0.3.0.tar.gz 25.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nissaga 0.3.0
File Interpreter ABI Platform
nissaga-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 50.6 kB

Release files / nissaga-0.3.0.tar.gz

Download URL nissaga-0.3.0.tar.gz
Size 25.6 kB
Tags Source
SHA-256 checksum
How to use checksums
f92d01040629c60303732f3001414403e6e7a42b49ad7a8bc21f3c6e517a9ff6
BLAKE2b-256 checksum
How to use checksums
ebe99515a20181c018fb80664c85a5c546ae647a7ff74ca2acbeb02a1cd879d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Release files / nissaga-0.3.0-py3-none-any.whl

Download URL nissaga-0.3.0-py3-none-any.whl
Size 24.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d5c6436dbc03a7cc0c349818ddc485a1c4236dce4e456d7465677c42fb7d8c52
BLAKE2b-256 checksum
How to use checksums
0aed647942e9fb0055bce76840cf9b9b236b34796c60be30d5b6212ef1b70fca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

1 release file

0.1.1

1 release file

0.1.0

1 release file

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