Package pology :: Module spell

Module spell

Check spelling in text using different spell checkers.


Author: Chusslove Illich (Часлав Илић) <caslav.ilic@gmx.net>

License: GPLv3

Functions
(text, msg, cat) -> numerr
check_spell(lang=None, encoding='UTF-8', variety=None, extopts={}, envs=None, suponly=False, maxsugg=5)
Check spelling using Aspell [hook factory].
(text, msg, cat) -> spans
check_spell_sp(lang=None, encoding='UTF-8', variety=None, extopts={}, envs=None, suponly=False, maxsugg=5)
Like check_spell, except that erroneous spans are returned instead of reporting problems to stdout [hook factory].
Variables
  flag_no_check_spell = 'no-check-spell'
  elist_well_spelled = 'well-spelled:'
  __package__ = 'pology'
Function Details

check_spell(lang=None, encoding='UTF-8', variety=None, extopts={}, envs=None, suponly=False, maxsugg=5)

 

Check spelling using Aspell [hook factory].

Aspell language is selected by the lang parameter, which should be a language code of one of the installed spelling dictionaries. Text encoding used by the dictionary is provided by the encoding parameter. If the dictionary comes in several varieties, a non-default one is selected using the variety parameter. Any additional options from the set of Aspell configuration fields can be passed in as (name, value) dictionary by the extopts parameter.

Pology may contain internal supplemental dictionaries for selected language in lang/<lang>/spell/ directory, and these are automatically picked up. Any subdirectories in lang/<lang>/spell/ are considered as to contain supplemental dictionaries in special "environments" (e.g. jargon, certain projects, etc.), and are not included by default. Such environments can be included by the envs parameter, which is a list of relative paths added to lang/<lang>/spell/ directory. All supplemental dictionaries from such paths are included, as well as from all their parent directories up to lang/<lang>/spell/ (this makes supplemental dictionaries hierarchical, e.g. environment foo/bar is a child of foo, and thus when foo/bar is requested, both its and supplements of foo are used).

If lang is None, then automatic detection of the language based on the catalog of the message is attempted (see catalog language() method). Similar is attempted for environments if env is None (see catalog environment() method).

Aspell's system dictionary can be completely excluded from the check by the suponly parameter, when the check will use only internal supplemental dictionaries.

Misspelled words are reported to stdout, with suggestions if available. Maximum number of suggestions to display is selected by the maxsugg parameter; if negative, all suggestions are shown.

Spell checking is performed by internally splitting text into words, and querying Aspell word by word. Spliting is performed in a simple fashion; it is assumed that text has been appropriately filtered down to plain text, e.g. that any XML-like markup and other literals have been removed (see pology.remove for filtering possibilities).

Spell checking can be skipped entirely on a message by issuing the no-check-spell sieve flag. Alternatively, only certain words may be declared well spelled by adding a manual comment starting with well-spelled: and followed by comma-separated list of words. Example:

   # |, no-check-spell
   msgid "Aaaargh, gahhh, khh..."
   msgstr ""

   # well-spelled: Aaaargh, kh
   msgid "Aaaargh, kh, kh... I have been defeated...!"
   msgstr ""
Parameters:
  • lang (string) - language of spelling dictionary
  • encoding (string) - encoding used by the dictionary
  • variety (string) - variety of dictionary
  • extopts (dict) - additional options to send to Aspell
  • envs (list of strings) - environments for supplemental dictionaries
  • suponly (bool) - whether to use only supplemental dictionaries
  • maxsugg (int) - maximum number of suggestions to show for misspelled word
Returns: (text, msg, cat) -> numerr
type S3A hook

check_spell_sp(lang=None, encoding='UTF-8', variety=None, extopts={}, envs=None, suponly=False, maxsugg=5)

 

Like check_spell, except that erroneous spans are returned instead of reporting problems to stdout [hook factory].

Returns: (text, msg, cat) -> spans
type V3A hook