Skip to main content

Fixes typos in text using regular expressions, based on RegExTypoFix from Wikipedia

Project description

https://badge.fury.io/py/topy.svg Travis CI

Topy (anagram of “typo”) is a Python script to fix typos in text, using rulesets developed by the RegExTypoFix project from Wikipedia. The English ruleset is included with Topy and is used by default. Other rulesets can be manually downloaded.

Topy works with Python 3.5-3.9.

The easiest way to install it is using pip:

pip install topy

Usage:

Usage: topy [options] FILES/DIRS...

Options:
  -h, --help            show this help message and exit
  -q, --quiet           silence information messages
  -a, --apply           overwrite files in place
  -r FILE, --rules=FILE
                        specify custom ruleset file to use
  -d RULE, --disable=RULE
                        disable rules by name

For example, if you want to integrate topy in your CI pipeline, you can do something like:

sh -c "git ls-files | xargs topy --quiet --apply --; git --no-pager diff --exit-code"

The line above will check all files tracked by git, apply fixes to them and fail if any changes are applied. If no changes are to be applied, the command returns success.

Resources

Changelog

1.0.1 (2021-01-30)

  • Updated bundled ruleset from Wikipedia (#29)

  • Python 3.9 is now officially supported and tested in CI (#27)

  • Migrated tests from travis-ci.org to travis-ci.com (#28)

1.0.0 (2020-09-08)

  • Updated bundled ruleset from Wikipedia (#23)

  • Removed Python 2.x and <3.5 compatibility code (#22)

  • Fixed Travis CI configuration (#21)

0.3.0 (2020-06-02)

Note: This was the last release to support Python 2.7.

  • Updated bundled ruleset (thanks to Oscar Caballero)

  • Added –disable option to disable individual rules (thanks to Oscar Caballero)

  • Fixed behavior when replacement string contains $ symbol (thanks to Oscar Caballero)

  • Prefer the faster lxml parser when it is installed. lxml is now an optional dependency (thanks to Oscar Caballero)

  • Added Python 3.7 support, deprecated Python 3.3 and 3.4.

0.2.2 (2016-12-16)

  • Update bundled ruleset

  • Officially add Python 3.6 support

0.2.1 (2016-07-15)

  • Update bundled ruleset

  • Update regex dependency version to avoid regex issue #216

  • Officially add Python 3.5 support

0.2.0 (2015-09-09)

  • Several fixes with Unicode on Python 2

  • Can safely deal with filenames that are invalid Unicode

  • Update bundled ruleset

  • Fix a few warnings from used libraries

0.1.0 (2014-08-24)

  • Initial public release

Contributing

Code style:

  • In general follow the Python PEP-8 coding style, except line length can go up to 120 chars.

  • Strings that have meaning for humans use double quotes ("), otherwise single quotes ('). When in doubt, don’t worry about it.

  • Code should be compatible with both Python 2 and 3, preferably without version-specific conditionals.

Run the test suite using python setup.py test.

Submit your changes as pull requests on GitHub.

License

The Topy software is licensed under the MIT license (see LICENSE.txt)

The bundled retf.txt file, copied from Wikipedia AutoWikiBrowser/Typos by Wikipedia contributors is licensed under CC-BY-SA. See the page on Wikipedia for authorship information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

topy-1.0.1.tar.gz (139.9 kB view details)

Uploaded Source

Built Distribution

topy-1.0.1-py3-none-any.whl (139.7 kB view details)

Uploaded Python 3

File details

Details for the file topy-1.0.1.tar.gz.

File metadata

  • Download URL: topy-1.0.1.tar.gz
  • Upload date:
  • Size: 139.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.3

File hashes

Hashes for topy-1.0.1.tar.gz
Algorithm Hash digest
SHA256 c580f071a10fe098871e892c0ad68bca10c9c32816cacaf4ce581af24d142105
MD5 2ef3948a848848ef05edb96adbffeb46
BLAKE2b-256 0f6ba08dae062eab6958717970daf1eb73ef6c7e77ac05fd9d1629c9868a9360

See more details on using hashes here.

File details

Details for the file topy-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: topy-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 139.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.3

File hashes

Hashes for topy-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 30f83b99f7e824d78feb33dc56f0246608803a163923472058162a1eb1c901eb
MD5 0175240828dfe98c198f1bf665db7326
BLAKE2b-256 e0c610ec3182db4ca863b26dd4f3a29023433e29fd8aee152381756a0d60320d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page