Introduction¶
Abydos¶
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
Pylint score, run locally
flake8 score, run locally, should be 0.
pydocstyle score, run locally, should be 0.
SLOCCount shows the total source lines of code.
Black code style signals that Black is used for code styling.
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>.