Metadata-Version: 2.1
Name: geneagrapher-core
Version: 0.1.1
Summary: Functions for getting records and building graphs from the Math Genealogy Project.
Home-page: https://github.com/davidalber/geneagrapher-core
License: MIT
Author: David Alber
Author-email: alber.david@gmail.com
Requires-Python: >=3.11,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: aiodns (>=3.0.0,<4.0.0)
Requires-Dist: aiohttp (>=3.8.3,<4.0.0)
Requires-Dist: beautifulsoup4 (>=4.11.1,<5.0.0)
Requires-Dist: types-beautifulsoup4 (>=4.11.6.4,<5.0.0.0)
Project-URL: Repository, https://github.com/davidalber/geneagrapher-core
Description-Content-Type: text/markdown

# geneagrapher-core [![Continuous Integration Status](https://github.com/davidalber/geneagrapher-core/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/davidalber/geneagrapher-core/actions/workflows/ci.yaml/badge.svg?branch=main) [![Live Tests Status](https://github.com/davidalber/geneagrapher-core/actions/workflows/live-tests.yaml/badge.svg?branch=main)](https://github.com/davidalber/geneagrapher-core/actions/workflows/live-tests.yaml/badge.svg?branch=main) [![Documentation Status](https://readthedocs.org/projects/geneagrapher-core/badge/?version=latest)](https://geneagrapher-core.readthedocs.io/en/latest/?badge=latest)

## Overview
Geneagrapher is a tool for extracting information from the
[Mathematics Genealogy Project](https://www.mathgenealogy.org/) to
form a math family tree, where connections are between advisors and
their students.

This package contains the core data-grabbing and manipulation
functions needed to build a math family tree. The functionality here
is low level and intended to support the development of other
tools. If you just want to build a geneagraph, take a look at
[Geneagrapher](https://github.com/davidalber/geneagrapher). If you
want to get mathematician records and use them in code, then this
project may be useful to you.

## Documentation
Documentation about how to call into this package's functions can be
found at http://geneagrapher-core.readthedocs.io/.

## Development
Dependencies in this package are managed by
[Poetry](https://python-poetry.org/). Thus, your Python environment
will need Poetry installed. Install all dependencies with:

```sh
$ poetry install
```

Several development commands are runnable with `make`:
- `make fmt` (also `make black` and `make format`) formats code using
  black
- `make format-check` runs black and reports if the code passes
  formatting checks without making changes
- `make lint` (also `make flake8` and `make flake`) does linting
- `make mypy` (also `make types`) checks the code for typing violations
- `make test` runs automated tests
- `make check` does code formatting (checking, not modifying),
  linting, type checking, and testing in one command; if this command
  does not pass, CI will not pass

