Geneagrapher is a tool for extracting information from the Mathematics Genealogy Project 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. If you want to get mathematician records and use them in code, then this project may be useful to you.
Documentation about how to call into this package's functions can be found at http://geneagrapher-core.readthedocs.io/.
Dependencies in this package are managed by Poetry. Thus, your Python environment will need Poetry installed. Install all dependencies with:
$ poetry install
Several development commands are runnable with make
:
make fmt
(alsomake black
andmake format
) formats code using blackmake format-check
runs black and reports if the code passes formatting checks without making changesmake lint
(alsomake flake8
andmake flake
) does lintingmake mypy
(alsomake types
) checks the code for typing violationsmake test
runs automated testsmake 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
- Increase the version in pyproject.toml (e.g., ed80c2c).
- Add an entry for the new version in CHANGELOG.md (e.g., bf2931a).
- Push changes.
- Tag the new version with message "Release VERSION".
$ git tag -s vVERSION COMMIT_SHA
- Push the tag.
$ git push origin vVERSION
- Build the distribution.
$ poetry build
- Publish release to Test PyPI (this assumes that Poetry has been
configured with the Test PyPI URL).
$ poetry publish -r testpypi
- Publish release to PyPI.
$ poetry publish
- Create new release.