Skip to main content

Typo and spelling checker

Project description

Pytypos

PyPI version Downloads PyPI - Downloads License contributions welcome

Description

Pytypos is a typo and spelling checker used to identify spelling mistakes in comments of a various programming languages, such as Python, Java, C++, C#, Matlab, and others. In addition, it can check other text-oriented files such as MD, RST, TXT, or similar.

Spell checking uses dictionaries installed on the host computer. The dictionary language can be defined in the Pytypos object with dictionary='de' for German, for instance. For installation and management of dictionaries, see the documentation of pyenchant. To list available dictionary languages on the host system, print pytypos.available_languages().

Installation

The easiest way to install is using pip:

pip install pytypos

To install from source:

git clone https://github.com/PApostol/pytypos.git
cd pytypos
python setup.py install

For usage details check help(pytypos).

Usage Examples

The below will recursively scan my/path/project/ for comments (i.e. # this is a comment) in Python files:

from pytypos import Pytypos
prj = Pytypos(target='my/path/project/', match_identifier='#', file_extension='py', recursive=True)
prj.find_typos()
print(prj.typo_list)
print(prj.typo_details)

Pytypos.typo_list stores a list of all possible typos found.

Pytypos.typo_details stores a dictionary with the following structure:

If suggestions = False (default):

{'file1': ['typo1', 'typo2'],
 'file2': ['typo1', 'typo2']
}

If suggestions = True:

{'file1': [{'typo1': ['suggestion1a', 'suggestion1b'],
            'typo2': ['suggestion2a', 'suggestion2b']
           },
 'file2': [{'typo1': ['suggestion1a', 'suggestion1b'],
            'typo2': ['suggestion2a', 'suggestion2b']
           }
}

The above can be nicely printed on stdout with Python's built-in pprint.

Other Examples

# recursively scan "foo/bar/" for any text in RST files and give suggestions, but skip file "foo/UPDATE.rst" and exclude the words "repos" and "GitHub"
Pytypos(target='foo/bar/', match_identifier='', file_extension='rst', recursive=True, suggestions=True, exclude_file_list=['foo/UPDATE.rst'], exclude_word_list=['repos', 'GitHub'])

# scan the "a/b/c.java" Java file for comments (i.e. "// this is a comment") and give suggestions with a french dictionary, but exclude words found in "exclusions.txt"
Pytypos(target='a/b/c.java', match_identifier='//', dictionary='fr', suggestions=True, exclude_word_file='exclusions.txt')

Testing

You can do some simple testing after cloning the repo.

Note any additional requirements for running the tests: pip install -r tests/requirements.txt

python tests/run_integration_test.py

Additional methods

Pytypos.fix_typos(): Fixes typos found in-between spaces with the most likely replacement

Pytypos.add_to_dictionary(): Adds custom word list to dictionary

Pytypos.add_to_exclusions(): Removes custom word list from dictionary

Pytypos.replace_word(): Replaces words in dictionary

License

Released under MIT by @PApostol

  • You can freely modify and reuse.
  • The original license must be included with copies of this software.
  • Please link back to this repo if you use a significant portion the source code.

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

pytypos-1.3.0.tar.gz (7.6 kB view details)

Uploaded Source

File details

Details for the file pytypos-1.3.0.tar.gz.

File metadata

  • Download URL: pytypos-1.3.0.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for pytypos-1.3.0.tar.gz
Algorithm Hash digest
SHA256 5dbffa1075fc04adebd96b0effcc8d58a565de52d9ff8ee40ad80834778815ee
MD5 3a8de3a0dfd90c97a19f303ccb200c30
BLAKE2b-256 3fa2159c6587e65241b80d3d5a68397cf5619419311376be3d61d17df39d91fa

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