Introduction

Abydos


abydos

Copyright 2014-2020 by Christopher C. Little

Abydos is a library of phonetic algorithms, string distance measures & metrics, stemmers, and string fingerprinters.


Installation

Required libraries:

  • NumPy

  • deprecation

Optional libraries (all available on PyPI, some available on conda or conda-forge):

To install Abydos (master) from Github source:

git clone https://github.com/chrislit/abydos.git --recursive
cd abydos
python setup install

If your default python command calls Python 2.7 but you want to install for Python 3, you may instead need to call:

python3 setup install

To install Abydos (latest release) from PyPI using pip:

pip install abydos

To install from conda-forge:

conda install abydos

It should run on Python 3.5-3.8.

Testing & Contributing

To run the whole test-suite just call tox:

tox

The tox setup has the following environments: black, py37, doctest, regression, fuzz, pylint, pydocstyle, flake8, doc8, docs, sloccount, badges, & build. So if you only want to generate documentation (in HTML, EPUB, & PDF formats), just call:

tox -e docs

In order to only run & generate Flake8 reports, call:

tox -e flake8

Contributions such as bug reports, PRs, suggestions, desired new features, etc. are welcome through Github Issues & Pull requests.

Badges

The project's main page has quite a few badges, some seemingly redundant, and a bit of explanation is perhaps warranted.

  • CI & Test Status

    • Travis-CI is the primary CI used for Linux CI of all supported Python platforms (2.7-3.8-dev). Only the tests in the tests directory are run.

    • CircleCI runs only the Python 3.6 tests on Linux and is used for quick tests of each commit.

    • Azure DevOps is used to perform tests on Linux, MaxOS, and Windows on Python 2.7, 3.5, 3.6, & 3.7 using pytest.

    • Semaphore is used to run the tests in the tests directory, doctests, regression tests, and fuzz tests.

    • Coveralls is used to track test coverage.

  • Code Quality (some may be removed at a later date)

    • Code Climate is used to check maintainability, but mostly just complains about McCabe complexity.

    • Scrutinizer is used to check complexity and compliance with best practices.

    • Codacy is used to check code style, security issues, etc.

    • CodeFactor is used to track hotspot files in need of attention.

  • Dependencies

    • Requires.io tracks whether Abydos can be used with the most recent releases of its dependencies.

    • Snyk tracks whether there are security vulnerabilities in any dependencies.

    • Pyup.io tracks updates and security vulnerabilities in dependencies.

    • CII Best Practices identifies compliance with Core Infrastructure Initiative best practices.

  • Local Analysis

  • Usage

    • Read the Docs hosts Abydos documentation online.

    • Binder provides an online notebook environment for the demo notebooks.

    • GPL v3+ is the license used by Abydos.

    • Libraries.io assigns a SourceRank to indicate project quality and popularity.

    • zenodo publishes the DOI and citation information for Abydos.

  • Contribution

    • OpenHub tracks project activity and KLOC and estimates project value.

    • The commit activity shows commit rate.

    • The issues badge indicates the number of issues closed.

    • The GitHub stars badge indicates the number of stars received.

  • PyPI

    • PyPI hosts the pip installable packages. The pypi badge indicates the most recent pip installable version.

    • The downloads badge indicates the number of downloads from PyPI per month.

    • The python badge indicates the versions of Python that are supported.

  • conda-forge

    • conda-forge hosts the conda installable packages. The conda-forge badge indicates the most recent conda installable version.

    • The downloads badge indicates the number of downloads from conda-forge.

    • The platform badge indicates that Abydos is a pure Python project, without platform-specific builds.


License

Abydos is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/gpl.txt>.