{ "info": { "author": "Paul Pelzl", "author_email": "pelzlpj@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: OS Independent", "Programming Language :: Python :: 2.5", "Topic :: Software Development", "Topic :: Text Processing :: Linguistic", "Topic :: Utilities" ], "description": "**scspell** is a spell checker for source code. It does not try to be\nparticularly smart--rather, it does the simplest thing that can possibly work:\n\n 1. All alphanumeric strings (strings of letters, numbers, and\n underscores) are spell-checked tokens.\n 2. Each token is split into one or more subtokens. Underscores and digits\n always divide tokens, and capital letters will begin new subtokens. In\n other words, ``some_variable`` and ``someVariable`` will both generate\n the subtoken list {``some``, ``variable``}.\n 3. All subtokens longer than three characters are matched against a set of\n dictionaries, and a match failure prompts the user for action. When\n matching against the included English dictionary, *prefix matching* is\n employed; this choice permits the use of truncated words like ``dict``\n as valid subtokens.\n\nWhen applied to code written in most popular programming languages while using\ntypical naming conventions, this algorithm will usually catch many errors\nwithout an annoying false positive rate.\n\nIn an effort to catch more spelling errors, **scspell** is able to check each\nfile against a set of dictionary words selected *specifically for that file*. Up\nto three different sub-dictionaries may be searched for any given file:\n\n 1. A natural language dictionary. (**scspell** provides an American\n English dictionary as the default.)\n 2. A programming language-specific dictionary, intended to contain\n oddly-spelled keywords and APIs associated with that language.\n (**scspell** provides small default dictionaries for a number of popular\n programming languages.)\n 3. A file-specific dictionary, intended to contain uncommon strings which\n are not likely to be found in more than a handful of unique files.\n\nUsage\n=====\n\nTo begin the spell checker, run ::\n\n $ scspell source_file1 source_file2 ...\n\nFor each spell check failure, you will see output much like this::\n\n filename.c:27: Unmatched 'someMispeldVaraible' -> {mispeld, varaible}\n \nIn other words, the token \"``someMispeldVaraible``\" was found on line 27\nof ``filename.c``, and it contains subtokens \"``mispeld``\" and\n\"``varaible``\" which both failed the spell-checking algorithm. You will\nbe prompted for an action to take:\n \n (i)gnore\n Skip to the next unmatched token, without taking any action.\n\n (I)gnore all\n Skip over this token every time it is encountered, for the\n remainder of this spell check session.\n \n (r)eplace\n Enter some text to use as a replacement for this token, and replace\n only the token at this point in the file.\n\n (R)eplace all\n Enter some text to use as a replacement for this token, and replace\n every occurrence of the token until the end of the current file.\n\n (a)dd to dictionary\n Add one or more tokens to one of the dictionaries (see below).\n\n show (c)ontext\n Print out some lines of context surrounding the unmatched token.\n\nIf you accidentally select a replacement operation, enter an empty\nstring to cancel.\n\nIf you select the ``(a)dd to dictionary`` option, then you will be\nprompted with the following options for every subtoken:\n\n (b)ack\n Return to the previous menu, without taking any action.\n \n (i)gnore\n Skip to the next subtoken, without taking any action.\n\n add to (p)rogramming language dictionary\n Add this subtoken to the dictionary associated with the\n programming language of the current file. **scspell** uses the\n file extension to determine the language, so you will only\n see this option for files which have an extension.\n\n add to (f)ile-specific dictionary\n Add this subtoken to the dictionary associated with the\n current file. **scspell** identifies unique files by scanning\n for an embedded ID string, so you will only see this option\n for files which have such an ID. See `Creating File IDs`_\n for details.\n\n add to (n)atural language dictionary\n Add this subtoken to the natural language dictionary.\n\n\n.. _`Creating File IDs`:\n\nCreating File IDs\n-----------------\n\nIf you would like **scspell** to be able to uniquely identify a file, thus\nenabling the creation of a file-specific dictionary, then you must insert a\nunique ID somewhere in the contents of that file. **scspell** will scan each\nfile for a string of the following form::\n\n scspell-id: \n\nThe unique ID must consist only of letters, numbers, underscores, and dashes.\n**scspell** can generate suitable unique ID strings using the ``--gen-id`` option::\n\n $ scspell --gen-id\n scspell-id: e497803c-523a-11de-ae42-0017f2ee0f37\n\n(Most likely you will want to place a file's unique ID inside a source code comment.)\n\n\nSharing a Dictionary\n--------------------\n\nA team of developers working on the same source tree may wish to share a common\ndictionary. You can permanently set the location of a shared dictionary by\nexecuting ::\n\n $ scspell --set-dictionary=/path/to/dictionary_file.txt\n\nThe dictionary is formatted as a simple newline-separated list of words, so it\ncan easily be managed by a version control system if desired.\n\nThe current dictionary can be saved to a file by executing ::\n\n $ scspell --export-dictionary=/path/to/output_file.txt\n\nYou can also override the dictionary location for a single spell check session,\nby using the ``--override-dictionary`` option::\n\n $ scspell --override-dictionary=/path/to/dictionary_file.txt source_file1 ...\n\nInstallation\n============\n\nIf you have `setuptools `_\ninstalled, then you can install **scspell** via::\n\n $ easy_install scspell\n\nAlternatively, download and unpack the source archive, switch to the\narchive root directory, and run the installation script::\n\n $ python setup.py install\n\nOn a UNIX-like system, you may need to use ``sudo`` if installing to a\ndirectory that requires root privileges::\n\n $ sudo python setup.py install\n\n\nLicense\n=======\n\n**scspell** is Free Software, licensed under Version 2 of the GNU General\nPublic License; see ``COPYING.txt`` for details.\n\nThe English dictionary distributed with scspell is derived from the\n`SCOWL word lists `_ . See\n``SCOWL-LICENSE.txt`` for the myriad licenses that apply to that dictionary.\n\n\nBugs, etc.\n============\n\n**scspell** is `hosted on Launchpad `_; \nthis would be a great place to file bug reports and feature requests or track\ndevelopment via `bzr `_. If that's not your style, just\nsend an email to Paul Pelzl <``pelzlpj at gmail dot com``> .\n\nPatches adding the most common keywords/APIs for popular programming languages\nwould be most welcome.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://launchpad.net/scspell", "keywords": null, "license": "http://www.gnu.org/licenses/old-licenses/gpl-2.0.html", "maintainer": null, "maintainer_email": null, "name": "scspell", "package_url": "https://pypi.org/project/scspell/", "platform": "any", "project_url": "https://pypi.org/project/scspell/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://launchpad.net/scspell" }, "release_url": "https://pypi.org/project/scspell/0.1.0/", "requires_dist": null, "requires_python": null, "summary": "A conservative interactive spell checker for source code.", "version": "0.1.0" }, "last_serial": 799354, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "0697082c60a1f4ed2a60d647e6b97476", "sha256": "ecac6b3d1037eae8bcce3c33fb32628942329f65e9ae34cddc1ebaf7d1d0c157" }, "downloads": -1, "filename": "scspell-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0697082c60a1f4ed2a60d647e6b97476", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 276225, "upload_time": "2009-06-06T06:08:13", "url": "https://files.pythonhosted.org/packages/84/dd/63fe76baec77b86ae61419a63e7660d014dd258a5cdaf3e8cce49a726ed3/scspell-0.1.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "4302c1833ebf44d97f56e18a00a9da59", "sha256": "b855f27b78feb25f334c47b2e05d79f6e5f86f63f271e515892a2c204e233067" }, "downloads": -1, "filename": "scspell-0.1.0.win32.exe", "has_sig": false, "md5_digest": "4302c1833ebf44d97f56e18a00a9da59", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 320144, "upload_time": "2009-06-06T06:08:29", "url": "https://files.pythonhosted.org/packages/5f/f8/307d81d862baa52767bc9d5b8aced38e9d2eaad8460283f88368fad8d10a/scspell-0.1.0.win32.exe" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0697082c60a1f4ed2a60d647e6b97476", "sha256": "ecac6b3d1037eae8bcce3c33fb32628942329f65e9ae34cddc1ebaf7d1d0c157" }, "downloads": -1, "filename": "scspell-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0697082c60a1f4ed2a60d647e6b97476", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 276225, "upload_time": "2009-06-06T06:08:13", "url": "https://files.pythonhosted.org/packages/84/dd/63fe76baec77b86ae61419a63e7660d014dd258a5cdaf3e8cce49a726ed3/scspell-0.1.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "4302c1833ebf44d97f56e18a00a9da59", "sha256": "b855f27b78feb25f334c47b2e05d79f6e5f86f63f271e515892a2c204e233067" }, "downloads": -1, "filename": "scspell-0.1.0.win32.exe", "has_sig": false, "md5_digest": "4302c1833ebf44d97f56e18a00a9da59", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 320144, "upload_time": "2009-06-06T06:08:29", "url": "https://files.pythonhosted.org/packages/5f/f8/307d81d862baa52767bc9d5b8aced38e9d2eaad8460283f88368fad8d10a/scspell-0.1.0.win32.exe" } ] }