Metadata-Version: 2.4
Name: betty
Version: 0.5.0a36
Summary: Betty visualizes and publishes your family history by building interactive, encyclopedia-like genealogy websites out of your Gramps and GEDCOM family trees
Author-email: Bart Feenstra <bar@bartfeenstra.com>
License-Expression: GPL-3.0-or-later
Project-URL: Documentation, https://betty.readthedocs.io
Project-URL: GitHub, https://github.com/bartfeenstra/betty
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: JavaScript
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Topic :: Internet
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Topic :: Sociology :: Genealogy
Classifier: Topic :: Sociology :: History
Classifier: Topic :: Software Development :: Code Generators
Classifier: Natural Language :: Arabic
Classifier: Natural Language :: Dutch
Classifier: Natural Language :: English
Classifier: Natural Language :: Finnish
Classifier: Natural Language :: French
Classifier: Natural Language :: German
Classifier: Natural Language :: Hebrew
Classifier: Natural Language :: Portuguese (Brazilian)
Classifier: Natural Language :: Russian
Classifier: Natural Language :: Spanish
Classifier: Natural Language :: Ukrainian
Classifier: Typing :: Typed
Requires-Python: ~=3.13
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: aiofiles~=25.1
Requires-Dist: aiohttp~=3.12
Requires-Dist: aiohttp-client-cache~=0.14
Requires-Dist: aiosqlite~=0.21
Requires-Dist: babel~=2.16
Requires-Dist: docutils~=0.21
Requires-Dist: geopy~=2.4
Requires-Dist: jinja2~=3.1
Requires-Dist: jsonschema~=4.23
Requires-Dist: lxml~=6.0
Requires-Dist: markupsafe~=3.0
Requires-Dist: pdf2image~=1.17
Requires-Dist: polib~=1.2
Requires-Dist: Pillow~=12.0
Requires-Dist: platformdirs~=4.3
Requires-Dist: pyyaml~=6.0
Requires-Dist: referencing~=0.37.0
Requires-Dist: rich~=15.0
Requires-Dist: rich-argparse~=1.7
Requires-Dist: shibuya==2026.1.9
Requires-Dist: sphinx~=8.2
Requires-Dist: sphinx-design~=0.7.0
Provides-Extra: setuptools
Requires-Dist: build~=1.3; extra == "setuptools"
Requires-Dist: twine~=6.0; extra == "setuptools"
Requires-Dist: wheel~=0.46.0; extra == "setuptools"
Provides-Extra: test
Requires-Dist: aioresponses~=0.7.8; extra == "test"
Requires-Dist: coverage~=7.6; extra == "test"
Requires-Dist: packaging~=26.0; extra == "test"
Requires-Dist: puremagic~=2.0; extra == "test"
Requires-Dist: pytest~=9.0; extra == "test"
Requires-Dist: pytest-aioresponses~=0.3.0; extra == "test"
Requires-Dist: pytest-asyncio~=1.0; extra == "test"
Requires-Dist: pytest-mock~=3.14; extra == "test"
Requires-Dist: pytest-order~=1.3; extra == "test"
Requires-Dist: pytest-playwright-asyncio~=0.7.0; extra == "test"
Requires-Dist: pytest-xdist~=3.8; extra == "test"
Requires-Dist: requests~=2.32; extra == "test"
Requires-Dist: ruff~=0.15.0; extra == "test"
Requires-Dist: ty==0.0.32; extra == "test"
Requires-Dist: types-babel~=2.11; extra == "test"
Requires-Dist: types-docutils~=0.21; extra == "test"
Requires-Dist: types-jsonschema~=4.23; extra == "test"
Requires-Dist: types-lxml>=2024.9.16; extra == "test"
Requires-Dist: types-polib~=1.2; extra == "test"
Requires-Dist: types-pyyaml~=6.0; extra == "test"
Requires-Dist: types-requests~=2.32; extra == "test"
Requires-Dist: types-setuptools~=82.0; extra == "test"
Requires-Dist: virtualenv~=21.1; extra == "test"
Requires-Dist: yappi~=1.7; extra == "test"
Requires-Dist: yarl~=1.22; extra == "test"
Requires-Dist: betty[setuptools]; extra == "test"
Provides-Extra: development
Requires-Dist: pytest-repeat~=0.9.4; extra == "development"
Requires-Dist: betty[test]; extra == "development"
Provides-Extra: ci
Requires-Dist: codecov~=2.1; extra == "ci"
Requires-Dist: betty[test]; extra == "ci"
Dynamic: license-file

# Betty 👵

[![Supported Python versions](https://img.shields.io/pypi/pyversions/betty.svg?logo=python&logoColor=FBE072)](https://pypi.org/project/betty/)
[![PyPI releases](https://badge.fury.io/py/betty.svg)](https://pypi.org/project/betty/)
[![Code coverage](https://codecov.io/gh/bartfeenstra/betty/branch/0.5.x/graph/badge.svg?token=9sYAd6EQBP)](https://codecov.io/gh/bartfeenstra/betty)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)
[![Recent downloads](https://img.shields.io/pypi/dm/betty.svg)](https://pypi.org/project/betty/) 

Betty visualizes and publishes your family history by building interactive, encyclopedia-like genealogy websites out of your
[Gramps](https://gramps-project.org/) and [GEDCOM](https://en.wikipedia.org/wiki/GEDCOM) family trees.

## Demonstration & examples

View the official Betty demonstration site at [bartfeenstra.github.io/betty-demo](https://bartfeenstra.github.io/betty-demo).

View the author's own Betty site at [ancestry.bartfeenstra.com](https://ancestry.bartfeenstra.com).

## Documentation

View the documentation at [https://betty.readthedocs.io/](https://betty.readthedocs.io).

## Sponsors

[Weblate](https://weblate.org/) supports Betty by providing Libre Hosting of their collaborative localization platform.
