[Python-modules-commits] [proselint] 01/02: Imported Upstream version 0.5.3

Víctor Cuadrado Juan viccuad-guest at moszumanska.debian.org
Fri Apr 8 17:58:47 UTC 2016


This is an automated email from the git hooks/post-receive script.

viccuad-guest pushed a commit to branch master
in repository proselint.

commit 91b98db04c56e7020ed107aad287561948b9c41f
Author: Víctor Cuadrado Juan <me at viccuad.me>
Date:   Fri Apr 8 19:32:21 2016 +0200

    Imported Upstream version 0.5.3
---
 LICENSE.md                                       |   12 +
 MANIFEST.in                                      |    1 +
 PKG-INFO                                         |   11 +
 README.md                                        |  177 ++++
 proselint.egg-info/PKG-INFO                      |   11 +
 proselint.egg-info/SOURCES.txt                   |  141 +++
 proselint.egg-info/dependency_links.txt          |    1 +
 proselint.egg-info/entry_points.txt              |    3 +
 proselint.egg-info/not-zip-safe                  |    1 +
 proselint.egg-info/pbr.json                      |    1 +
 proselint.egg-info/requires.txt                  |    3 +
 proselint.egg-info/top_level.txt                 |    2 +
 proselint/.proselintrc                           |   82 ++
 proselint/__init__.py                            |    1 +
 proselint/checks/__init__.py                     |    1 +
 proselint/checks/airlinese/__init__.py           |    1 +
 proselint/checks/airlinese/misc.py               |   31 +
 proselint/checks/annotations/__init__.py         |    1 +
 proselint/checks/annotations/misc.py             |   35 +
 proselint/checks/archaism/__init__.py            |    1 +
 proselint/checks/archaism/misc.py                |   83 ++
 proselint/checks/cliches/__init__.py             |    1 +
 proselint/checks/cliches/hell.py                 |   28 +
 proselint/checks/cliches/misc.py                 |  855 ++++++++++++++++
 proselint/checks/consistency/__init__.py         |    1 +
 proselint/checks/consistency/spacing.py          |   27 +
 proselint/checks/consistency/spelling.py         |   47 +
 proselint/checks/corporate_speak/__init__.py     |    1 +
 proselint/checks/corporate_speak/misc.py         |   53 +
 proselint/checks/cursing/__init__.py             |    1 +
 proselint/checks/cursing/filth.py                |   39 +
 proselint/checks/cursing/nfl.py                  | 1183 ++++++++++++++++++++++
 proselint/checks/cursing/nword.py                |   29 +
 proselint/checks/dates_times/__init__.py         |    1 +
 proselint/checks/dates_times/am_pm.py            |   58 ++
 proselint/checks/dates_times/dates.py            |   68 ++
 proselint/checks/hedging/__init__.py             |    1 +
 proselint/checks/hedging/misc.py                 |   31 +
 proselint/checks/hyperbole/__init__.py           |    1 +
 proselint/checks/hyperbole/misc.py               |   30 +
 proselint/checks/jargon/__init__.py              |    1 +
 proselint/checks/jargon/misc.py                  |   34 +
 proselint/checks/lexical_illusions/__init__.py   |    1 +
 proselint/checks/lexical_illusions/misc.py       |   31 +
 proselint/checks/links/__init__.py               |    1 +
 proselint/checks/links/broken.py                 |   64 ++
 proselint/checks/malapropisms/__init__.py        |    1 +
 proselint/checks/malapropisms/misc.py            |   31 +
 proselint/checks/misc/__init__.py                |    1 +
 proselint/checks/misc/apologizing.py             |   29 +
 proselint/checks/misc/back_formations.py         |   29 +
 proselint/checks/misc/bureaucratese.py           |   30 +
 proselint/checks/misc/but.py                     |   25 +
 proselint/checks/misc/capitalization.py          |   93 ++
 proselint/checks/misc/chatspeak.py               |   51 +
 proselint/checks/misc/commercialese.py           |   54 +
 proselint/checks/misc/composition.py             |   83 ++
 proselint/checks/misc/currency.py                |   29 +
 proselint/checks/misc/debased.py                 |   32 +
 proselint/checks/misc/false_plurals.py           |   39 +
 proselint/checks/misc/greylist.py                |   45 +
 proselint/checks/misc/illogic.py                 |   60 ++
 proselint/checks/misc/inferior_superior.py       |   30 +
 proselint/checks/misc/latin.py                   |   32 +
 proselint/checks/misc/many_a.py                  |   31 +
 proselint/checks/misc/metaconcepts.py            |   29 +
 proselint/checks/misc/metadiscourse.py           |   33 +
 proselint/checks/misc/narcisissm.py              |   29 +
 proselint/checks/misc/not_guilty.py              |   36 +
 proselint/checks/misc/phrasal_adjectives.py      |  145 +++
 proselint/checks/misc/preferred_forms.py         |  177 ++++
 proselint/checks/misc/pretension.py              |   32 +
 proselint/checks/misc/professions.py             |   31 +
 proselint/checks/misc/punctuation.py             |   29 +
 proselint/checks/misc/scare_quotes.py            |   29 +
 proselint/checks/misc/suddenly.py                |   39 +
 proselint/checks/misc/tense_present.py           |   46 +
 proselint/checks/misc/usage.py                   |   62 ++
 proselint/checks/misc/waxed.py                   |   54 +
 proselint/checks/misc/whence.py                  |   25 +
 proselint/checks/mixed_metaphors/__init__.py     |    1 +
 proselint/checks/mixed_metaphors/misc.py         |   49 +
 proselint/checks/mondegreens/__init__.py         |    1 +
 proselint/checks/mondegreens/misc.py             |   36 +
 proselint/checks/needless_variants/__init__.py   |    1 +
 proselint/checks/needless_variants/misc.py       |  388 +++++++
 proselint/checks/nonwords/__init__.py            |    1 +
 proselint/checks/nonwords/misc.py                |   63 ++
 proselint/checks/oxymorons/__init__.py           |    1 +
 proselint/checks/oxymorons/misc.py               |   49 +
 proselint/checks/psychology/__init__.py          |    1 +
 proselint/checks/psychology/misc.py              |   54 +
 proselint/checks/redundancy/__init__.py          |    1 +
 proselint/checks/redundancy/misc.py              |  141 +++
 proselint/checks/redundancy/ras_syndrome.py      |   34 +
 proselint/checks/security/__init__.py            |    1 +
 proselint/checks/security/credit_card.py         |   33 +
 proselint/checks/security/password.py            |   34 +
 proselint/checks/sexism/__init__.py              |    1 +
 proselint/checks/sexism/misc.py                  |   56 +
 proselint/checks/skunked_terms/__init__.py       |    1 +
 proselint/checks/skunked_terms/misc.py           |   37 +
 proselint/checks/spelling/__init__.py            |    1 +
 proselint/checks/spelling/able_atable.py         |   86 ++
 proselint/checks/spelling/able_ible.py           |  175 ++++
 proselint/checks/spelling/athletes.py            |   45 +
 proselint/checks/spelling/em_im_en_in.py         |   67 ++
 proselint/checks/spelling/er_or.py               |   43 +
 proselint/checks/spelling/in_un.py               |   22 +
 proselint/checks/spelling/misc.py                |  150 +++
 proselint/checks/terms/__init__.py               |    1 +
 proselint/checks/terms/animal_adjectives.py      |   71 ++
 proselint/checks/terms/denizen_labels.py         |   88 ++
 proselint/checks/terms/eponymous_adjectives.py   |   31 +
 proselint/checks/terms/venery.py                 |   88 ++
 proselint/checks/typography/__init__.py          |    1 +
 proselint/checks/typography/diacritical_marks.py |  113 +++
 proselint/checks/typography/exclamation.py       |   51 +
 proselint/checks/typography/symbols.py           |   94 ++
 proselint/checks/uncomparables/__init__.py       |    1 +
 proselint/checks/uncomparables/misc.py           |  119 +++
 proselint/checks/weasel_words/__init__.py        |    1 +
 proselint/checks/weasel_words/misc.py            |   22 +
 proselint/checks/weasel_words/very.py            |   29 +
 proselint/command_line.py                        |  246 +++++
 proselint/demo.md                                |  193 ++++
 proselint/score.py                               |   77 ++
 proselint/tools.py                               |  337 ++++++
 proselint/version.py                             |    3 +
 setup.cfg                                        |   17 +
 setup.py                                         |   29 +
 tests/__init__.py                                |    1 +
 tests/_test_version.py                           |   18 +
 tests/check.py                                   |   65 ++
 tests/test_butterick_symbols.py                  |   50 +
 tests/test_demo.py                               |    5 +
 tests/test_dfw_uncomparables.py                  |   28 +
 tests/test_exit_codes.py                         |   21 +
 tests/test_garner_dates.py                       |   34 +
 tests/test_junge_but.py                          |   56 +
 tests/test_strunk_white_eos.py                   |   24 +
 tests/test_topic_detector.py                     |   19 +
 142 files changed, 8214 insertions(+)

diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..a984390
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,12 @@
+Copyright © 2014–2015, Jordan Suchow, Michael Pacer, and Lara A. Ross 
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROF [...]
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..51db638
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1 @@
+include README.md LICENSE.md
\ No newline at end of file
diff --git a/PKG-INFO b/PKG-INFO
new file mode 100644
index 0000000..d76873c
--- /dev/null
+++ b/PKG-INFO
@@ -0,0 +1,11 @@
+Metadata-Version: 1.1
+Name: proselint
+Version: 0.5.3
+Summary: A linter for prose
+Home-page: http://github.com/amperser/proselint
+Author: Amperser Labs
+Author-email: hello at amperser.com
+License: BSD
+Download-URL: http://github.com/amperser/proselint/tarball/0.5.3
+Description: UNKNOWN
+Platform: UNKNOWN
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..6a3d672
--- /dev/null
+++ b/README.md
@@ -0,0 +1,177 @@
+<img src="logo.png" alt="proselint logo" width="200">
+
+[![Build Status](https://travis-ci.org/amperser/proselint.svg)](https://travis-ci.org/amperser/proselint)
+[![Build status](https://ci.appveyor.com/api/projects/status/hfgv05nkjxkg2gcc/branch/master?svg=true)](https://ci.appveyor.com/project/suchow/proselint-knwyf/branch/master)
+[![Code Climate](https://codeclimate.com/repos/5538989ee30ba0793100090f/badges/e10a2fe18a9256d69e2a/gpa.svg)](https://codeclimate.com/repos/5538989ee30ba0793100090f/feed)
+[![Coverage Status](https://coveralls.io/repos/amperser/proselint/badge.svg?branch=master&service=github&t=2lhJpx)](https://coveralls.io/github/amperser/proselint?branch=master)
+![Lint score](http://img.shields.io/badge/lintscore_v0.1.0-98.8-blue.svg)
+[![Dependency Status](https://gemnasium.com/amperser/proselint.svg)](https://gemnasium.com/amperser/proselint)
+
+Writing is notoriously hard, even for the best writers. Yet there is a tremendous amount of knowledge about the discipline strewn across usage guides, dictionaries, technical manuals, essays, pamphlets, websites, and the hearts and minds of great authors and editors. But poring over Strunk & White hardly makes one a better writer — it turns you into neither Strunk nor White. And nobody has the capacity to apply all the advice from *Garner’s Modern American Usage*, a 975-page usage guide, [...]
+
+We devised a simple solution: `proselint`, a linter for prose. (A linter is a computer program that, like a spell checker, scans through a document and analyzes it.)
+
+`proselint` places the world’s greatest writers and editors by your side, where they whisper suggestions on how to improve your prose. You’ll be guided by advice inspired by Bryan Garner, David Foster Wallace, Chuck Palahniuk, Steve Pinker, Mary Norris, Mark Twain, Elmore Leonard, George Orwell, Matthew Butterick, William Strunk, E.B. White, Philip Corbett, Ernest Gowers, and the editorial staff of the world’s finest literary magazines and newspapers, among others. Our goal is to aggrega [...]
+
+`proselint` is a command-line utility that can be integrated into existing tools.
+ 
+### Installation
+
+To get this up and running, install it using pip: `pip install proselint`.
+
+### Usage
+
+You can run `proselint` on a document:
+
+```bash
+❯ proselint text.md
+```
+
+This prints a list of suggestions to stdout, one per line. Each suggestion will have the form:
+
+```bash
+text.md:<line>:<column>: <check_name> <message>
+```
+
+For example,
+
+```bash
+text.md:0:10: wallace.uncomparables Comparison of an uncomparable: 'unique' can not be compared.
+```
+
+The command-line utility can also print the list of suggestions in JSON using the `--json` flag. In this case, the output is considerably richer:
+
+```javascript
+{
+    // Type of check that output this suggestion.
+    check: "wallace.uncomparables",
+
+    // Message to describe the suggestion.
+    message: "Comparison of an uncomparable: 'unique' can not be compared.",
+
+    // The person or organization giving the suggestion.
+    source: "David Foster Wallace"
+
+    // URL pointing to the source material.
+    source_url: "http://www.telegraph.co.uk/a/9715551"
+
+    // Line where the error starts.
+    line: 0,
+
+    // Column where the error starts.
+    column: 10,
+
+    // Index in the text where the error starts.
+    start: 10,
+
+    // Index in the text where the error ends.
+    end: 21,
+
+    // start - end
+    extent: 11,
+
+    // How important is this? Can be "suggestion", "warning", or "error".
+    severity: "warning",
+
+    // Possible replacements.
+    replacements: [
+        {
+            value: "unique"
+        }
+    ]
+}
+```
+
+### Available plugins for text editors
+
+`proselint` is available on:
+
+- [x] A live [demo page](http://proselint.com/write)
+- [x] [Sublime Text](https://github.com/amperser/proselint/tree/master/plugins/sublime/SublimeLinter-contrib-proselint)
+- [x] [Atom Editor](https://github.com/smockle/linter-proselint) (thanks to [Clay Miller](https://github.com/smockle)).
+- [x] [Emacs via Flycheck](https://github.com/amperser/proselint/tree/master/plugins/flycheck) (thanks to [Aaron Jacobs](https://github.com/atheriel))
+- [x] [Vim](https://github.com/amperser/proselint/tree/master/plugins/vim) (thanks to [Matthias Bussonnier](https://github.com/Carreau))
+
+### Checks
+
+You can disable any of the checks by modifying `.proselintrc`.
+
+| ID    | Description     |
+| ----- | --------------- |
+| `airlinese.misc` | Avoiding jargon of the airline industry |
+| `annotations.misc` | Catching annotations left in the text |
+| `archaism.misc` | Avoiding archaic forms |
+| `cliches.hell` | Avoiding a common cliché |
+| `cliches.misc` | Avoiding clichés |
+| `consistency.spacing` | Consistent sentence spacing |
+| `consistency.spelling` | Consistent spelling |
+| `corporate_speak.misc` | Avoiding corporate buzzwords` |
+| `cursing.filth` | Words to avoid |
+| `cursing.nfl` | Avoiding words banned by the NFL |
+| `dates_times.am_pm` | Using the right form for the time of day |
+| `dates_times.dates` | Stylish formatting of dates |
+| `hedging.misc` | Not hedging |
+| `hyperbole.misc` | Not being hyperbolic |
+| `jargon.misc` | Avoiding miscellaneous jargon |
+| `lexical_illusions.misc` | Avoiding lexical illusions |
+| `links.broken` | Linking only to existing sites |
+| `malapropisms.misc` | Avoiding common malapropisms |
+| `misc.apologizing` | Being confident |
+| `misc.back_formations` | Avoiding needless backformations |
+| `misc.bureaucratese` | Avoiding bureaucratese |
+| `misc.but` | Avoid starting a paragraph with "But..." |
+| `misc.capitalization` | Capitalizing only what ought to be capitalized |
+| `misc.chatspeak` | Avoiding lolling and other chatspeak |
+| `misc.commercialese` | Avoiding jargon of the commercial world |
+| `misc.currency` | Avoiding redundant currency symbols |
+| `misc.debased` | Avoiding debased language |
+| `misc.false_plurals` | Avoiding false plurals |
+| `misc.illogic` | Avoiding illogical forms |
+| `misc.inferior_superior` | Superior to, not than |
+| `misc.latin` | Avoiding overuse of Latin phrases |
+| `misc.many_a` | Many a singular |
+| `misc.metaconcepts` | Avoiding overuse of metaconcepts |
+| `misc.narcisissm` | Talking about the subject, not its study |
+| `misc.phrasal_adjectives` | Hyphenating phrasal adjectives |
+| `misc.preferred_forms` | Miscellaneous preferred forms |
+| `misc.pretension` | Avoiding being pretentious |
+| `misc.professions` | Calling jobs by the right name |
+| `misc.punctuation` | Using punctuation assiduously |
+| `misc.scare_quotes` | Using scare quotes only when needed |
+| `misc.suddenly` | Avoiding the word suddenly |
+| `misc.tense_present` | Advice from Tense Present |
+| `misc.waxed` | Waxing poetic |
+| `misc.whence` | Using "whence" |
+| `mixed_metaphors.misc` | Not mixing metaphors |
+| `mondegreens.misc` | Avoiding mondegreen |
+| `needless_variants.misc` | Using the preferred form |
+| `nonwords.misc` | Avoid using nonwords |
+| `oxymorons.misc` | Avoiding oxymorons |
+| `psychology.misc` | Avoiding misused psychological terms |
+| `redundancy.misc` | Avoiding redundancy and saying things twice |
+| `redundancy.ras_syndrome` | Avoiding RAS syndrome |
+| `skunked_terms.misc` | Avoid using skunked terms |
+| `spelling.able_atable` | -able vs. -atable |
+| `spelling.able_ible` | -able vs. -ible |
+| `spelling.athletes` | Spelling of athlete names |
+| `spelling.em_im_en_in` | -em vs. -im and -en vs. -in |
+| `spelling.er_or` | -er vs. -or |
+| `spelling.in_un` | in- vs. un- |
+| `spelling.misc` | Spelling words corectly |
+| `security.credit_card` | Keeping credit card numbers secret |
+| `security.password` | Keeping passwords secret |
+| `sexism.misc` | Avoiding sexist language |
+| `terms.animal_adjectives` | Animal adjectives |
+| `terms.denizen_labels` | Calling denizens by the right name |
+| `terms.eponymous_adjectives` | Calling people by the right name |
+| `terms.venery` | Call groups of animals by the right name |
+| `typography.diacritical_marks` | Using dïacríticâl marks |
+| `typography.exclamation` | Avoiding overuse of exclamation |
+| `typography.symbols` | Using the right symbols |
+| `uncomparables.misc` | Not comparing uncomparables |
+| `weasel_words.misc` | Avoiding weasel words |
+| `weasel_words.very` | Avoiding the word "very" |
+
+### Contributing
+
+Interested in contributing to `proselint`? Great — there are plenty of ways you can help. Read more on [our website](http://proselint.com/contributing/), where we describe how you can help us build `proselint` into the greatest writing tool in the world.
diff --git a/proselint.egg-info/PKG-INFO b/proselint.egg-info/PKG-INFO
new file mode 100644
index 0000000..d76873c
--- /dev/null
+++ b/proselint.egg-info/PKG-INFO
@@ -0,0 +1,11 @@
+Metadata-Version: 1.1
+Name: proselint
+Version: 0.5.3
+Summary: A linter for prose
+Home-page: http://github.com/amperser/proselint
+Author: Amperser Labs
+Author-email: hello at amperser.com
+License: BSD
+Download-URL: http://github.com/amperser/proselint/tarball/0.5.3
+Description: UNKNOWN
+Platform: UNKNOWN
diff --git a/proselint.egg-info/SOURCES.txt b/proselint.egg-info/SOURCES.txt
new file mode 100644
index 0000000..d06b072
--- /dev/null
+++ b/proselint.egg-info/SOURCES.txt
@@ -0,0 +1,141 @@
+LICENSE.md
+MANIFEST.in
+README.md
+setup.cfg
+setup.py
+proselint/.proselintrc
+proselint/__init__.py
+proselint/command_line.py
+proselint/demo.md
+proselint/score.py
+proselint/tools.py
+proselint/version.py
+proselint.egg-info/PKG-INFO
+proselint.egg-info/SOURCES.txt
+proselint.egg-info/dependency_links.txt
+proselint.egg-info/entry_points.txt
+proselint.egg-info/not-zip-safe
+proselint.egg-info/pbr.json
+proselint.egg-info/requires.txt
+proselint.egg-info/top_level.txt
+proselint/checks/__init__.py
+proselint/checks/airlinese/__init__.py
+proselint/checks/airlinese/misc.py
+proselint/checks/annotations/__init__.py
+proselint/checks/annotations/misc.py
+proselint/checks/archaism/__init__.py
+proselint/checks/archaism/misc.py
+proselint/checks/cliches/__init__.py
+proselint/checks/cliches/hell.py
+proselint/checks/cliches/misc.py
+proselint/checks/consistency/__init__.py
+proselint/checks/consistency/spacing.py
+proselint/checks/consistency/spelling.py
+proselint/checks/corporate_speak/__init__.py
+proselint/checks/corporate_speak/misc.py
+proselint/checks/cursing/__init__.py
+proselint/checks/cursing/filth.py
+proselint/checks/cursing/nfl.py
+proselint/checks/cursing/nword.py
+proselint/checks/dates_times/__init__.py
+proselint/checks/dates_times/am_pm.py
+proselint/checks/dates_times/dates.py
+proselint/checks/hedging/__init__.py
+proselint/checks/hedging/misc.py
+proselint/checks/hyperbole/__init__.py
+proselint/checks/hyperbole/misc.py
+proselint/checks/jargon/__init__.py
+proselint/checks/jargon/misc.py
+proselint/checks/lexical_illusions/__init__.py
+proselint/checks/lexical_illusions/misc.py
+proselint/checks/links/__init__.py
+proselint/checks/links/broken.py
+proselint/checks/malapropisms/__init__.py
+proselint/checks/malapropisms/misc.py
+proselint/checks/misc/__init__.py
+proselint/checks/misc/apologizing.py
+proselint/checks/misc/back_formations.py
+proselint/checks/misc/bureaucratese.py
+proselint/checks/misc/but.py
+proselint/checks/misc/capitalization.py
+proselint/checks/misc/chatspeak.py
+proselint/checks/misc/commercialese.py
+proselint/checks/misc/composition.py
+proselint/checks/misc/currency.py
+proselint/checks/misc/debased.py
+proselint/checks/misc/false_plurals.py
+proselint/checks/misc/greylist.py
+proselint/checks/misc/illogic.py
+proselint/checks/misc/inferior_superior.py
+proselint/checks/misc/latin.py
+proselint/checks/misc/many_a.py
+proselint/checks/misc/metaconcepts.py
+proselint/checks/misc/metadiscourse.py
+proselint/checks/misc/narcisissm.py
+proselint/checks/misc/not_guilty.py
+proselint/checks/misc/phrasal_adjectives.py
+proselint/checks/misc/preferred_forms.py
+proselint/checks/misc/pretension.py
+proselint/checks/misc/professions.py
+proselint/checks/misc/punctuation.py
+proselint/checks/misc/scare_quotes.py
+proselint/checks/misc/suddenly.py
+proselint/checks/misc/tense_present.py
+proselint/checks/misc/usage.py
+proselint/checks/misc/waxed.py
+proselint/checks/misc/whence.py
+proselint/checks/mixed_metaphors/__init__.py
+proselint/checks/mixed_metaphors/misc.py
+proselint/checks/mondegreens/__init__.py
+proselint/checks/mondegreens/misc.py
+proselint/checks/needless_variants/__init__.py
+proselint/checks/needless_variants/misc.py
+proselint/checks/nonwords/__init__.py
+proselint/checks/nonwords/misc.py
+proselint/checks/oxymorons/__init__.py
+proselint/checks/oxymorons/misc.py
+proselint/checks/psychology/__init__.py
+proselint/checks/psychology/misc.py
+proselint/checks/redundancy/__init__.py
+proselint/checks/redundancy/misc.py
+proselint/checks/redundancy/ras_syndrome.py
+proselint/checks/security/__init__.py
+proselint/checks/security/credit_card.py
+proselint/checks/security/password.py
+proselint/checks/sexism/__init__.py
+proselint/checks/sexism/misc.py
+proselint/checks/skunked_terms/__init__.py
+proselint/checks/skunked_terms/misc.py
+proselint/checks/spelling/__init__.py
+proselint/checks/spelling/able_atable.py
+proselint/checks/spelling/able_ible.py
+proselint/checks/spelling/athletes.py
+proselint/checks/spelling/em_im_en_in.py
+proselint/checks/spelling/er_or.py
+proselint/checks/spelling/in_un.py
+proselint/checks/spelling/misc.py
+proselint/checks/terms/__init__.py
+proselint/checks/terms/animal_adjectives.py
+proselint/checks/terms/denizen_labels.py
+proselint/checks/terms/eponymous_adjectives.py
+proselint/checks/terms/venery.py
+proselint/checks/typography/__init__.py
+proselint/checks/typography/diacritical_marks.py
+proselint/checks/typography/exclamation.py
+proselint/checks/typography/symbols.py
+proselint/checks/uncomparables/__init__.py
+proselint/checks/uncomparables/misc.py
+proselint/checks/weasel_words/__init__.py
+proselint/checks/weasel_words/misc.py
+proselint/checks/weasel_words/very.py
+tests/__init__.py
+tests/_test_version.py
+tests/check.py
+tests/test_butterick_symbols.py
+tests/test_demo.py
+tests/test_dfw_uncomparables.py
+tests/test_exit_codes.py
+tests/test_garner_dates.py
+tests/test_junge_but.py
+tests/test_strunk_white_eos.py
+tests/test_topic_detector.py
\ No newline at end of file
diff --git a/proselint.egg-info/dependency_links.txt b/proselint.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/proselint.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/proselint.egg-info/entry_points.txt b/proselint.egg-info/entry_points.txt
new file mode 100644
index 0000000..33a17c1
--- /dev/null
+++ b/proselint.egg-info/entry_points.txt
@@ -0,0 +1,3 @@
+[console_scripts]
+proselint = proselint.command_line:proselint
+
diff --git a/proselint.egg-info/not-zip-safe b/proselint.egg-info/not-zip-safe
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/proselint.egg-info/not-zip-safe
@@ -0,0 +1 @@
+
diff --git a/proselint.egg-info/pbr.json b/proselint.egg-info/pbr.json
new file mode 100644
index 0000000..3e7b9be
--- /dev/null
+++ b/proselint.egg-info/pbr.json
@@ -0,0 +1 @@
+{"is_release": false, "git_version": "40297c6"}
\ No newline at end of file
diff --git a/proselint.egg-info/requires.txt b/proselint.egg-info/requires.txt
new file mode 100644
index 0000000..1e1463c
--- /dev/null
+++ b/proselint.egg-info/requires.txt
@@ -0,0 +1,3 @@
+click
+future
+six
diff --git a/proselint.egg-info/top_level.txt b/proselint.egg-info/top_level.txt
new file mode 100644
index 0000000..5e51058
--- /dev/null
+++ b/proselint.egg-info/top_level.txt
@@ -0,0 +1,2 @@
+proselint
+tests
diff --git a/proselint/.proselintrc b/proselint/.proselintrc
new file mode 100644
index 0000000..c6f9b16
--- /dev/null
+++ b/proselint/.proselintrc
@@ -0,0 +1,82 @@
+{
+    "max_errors": 1000,
+    "checks": {
+        "airlinese.misc"                : true,
+        "annotations.misc"              : true,
+        "archaism.misc"                 : true,
+        "cliches.hell"                  : true,
+        "cliches.misc"                  : true,
+        "consistency.spacing"           : true,
+        "consistency.spelling"          : true,
+        "corporate_speak.misc"          : true,
+        "cursing.filth"                 : true,
+        "cursing.nfl"                   : false,
+        "cursing.nword"                 : true,
+        "dates_times.am_pm"             : true,
+        "dates_times.dates"             : true,
+        "hedging.misc"                  : true,
+        "hyperbole.misc"                : true,
+        "jargon.misc"                   : true,
+        "lexical_illusions.misc"        : true,
+        "links.broken"                  : false,
+        "malapropisms.misc"             : true,
+        "misc.apologizing"              : true,
+        "misc.back_formations"          : true,
+        "misc.bureaucratese"            : true,
+        "misc.but"                      : true,
+        "misc.capitalization"           : true,
+        "misc.chatspeak"                : true,
+        "misc.commercialese"            : true,
+        "misc.composition"              : true,
+        "misc.currency"                 : true,
+        "misc.debased"                  : true,
+        "misc.false_plurals"            : true,
+        "misc.illogic"                  : true,
+        "misc.inferior_superior"        : true,
+        "misc.latin"                    : true,
+        "misc.many_a"                   : true,
+        "misc.metaconcepts"             : true,
+        "misc.metadiscourse"            : true,
+        "misc.narcisissm"               : true,
+        "misc.not_guilty"               : true,
+        "misc.phrasal_adjectives"       : true,
+        "misc.preferred_forms"          : true,
+        "misc.pretension"               : true,
+        "misc.professions"              : true,
+        "misc.punctuation"              : true,
+        "misc.scare_quotes"             : true,
+        "misc.suddenly"                 : true,
+        "misc.tense_present"            : true,
+        "misc.waxed"                    : true,
+        "misc.whence"                   : true,
+        "mixed_metaphors.misc"          : true,
+        "mondegreens.misc"              : true,
+        "needless_variants.misc"        : true,
+        "nonwords.misc"                 : true,
+        "oxymorons.misc"                : true,
+        "psychology.misc"               : true,
+        "redundancy.misc"               : true,
+        "redundancy.ras_syndrome"       : true,
+        "skunked_terms.misc"            : true,
+        "spelling.able_atable"          : true,
+        "spelling.able_ible"            : true,
+        "spelling.athletes"             : true,
+        "spelling.em_im_en_in"          : true,
+        "spelling.er_or"                : true,
+        "spelling.in_un"                : true,
+        "spelling.misc"                 : true,
+        "security.credit_card"          : true,
+        "security.password"             : true,
+        "sexism.misc"                   : true,
+        "terms.animal_adjectives"       : true,
+        "terms.denizen_labels"          : true,
+        "terms.eponymous_adjectives"    : true,
+        "terms.venery"                  : true,
+        "typography.diacritical_marks"  : true,
+        "typography.exclamation"        : true,
+        "typography.symbols"            : true,
+        "uncomparables.misc"            : true,
+        "weasel_words.misc"             : true,
+        "weasel_words.very"             : true
+    }
+}
diff --git a/proselint/__init__.py b/proselint/__init__.py
new file mode 100644
index 0000000..9cd4315
--- /dev/null
+++ b/proselint/__init__.py
@@ -0,0 +1 @@
+"""Proselint applies advice from great writers to your writing."""
diff --git a/proselint/checks/__init__.py b/proselint/checks/__init__.py
new file mode 100644
index 0000000..a568e93
--- /dev/null
+++ b/proselint/checks/__init__.py
@@ -0,0 +1 @@
+"""All the checks are organized into modules and places here."""
diff --git a/proselint/checks/airlinese/__init__.py b/proselint/checks/airlinese/__init__.py
new file mode 100644
index 0000000..492e56a
--- /dev/null
+++ b/proselint/checks/airlinese/__init__.py
@@ -0,0 +1 @@
+"""Airlinese."""
diff --git a/proselint/checks/airlinese/misc.py b/proselint/checks/airlinese/misc.py
new file mode 100644
index 0000000..2789387
--- /dev/null
+++ b/proselint/checks/airlinese/misc.py
@@ -0,0 +1,31 @@
+# -*- coding: utf-8 -*-
+"""Airlinese.
+
+---
+layout:     post
+source:     Garner's Modern American Usage
+source_url: http://bit.ly/1T4alrY
+title:      Airlinese
+date:       2014-06-10 12:31:19
+categories: writing
+---
+
+Airlinese.
+
+"""
+from proselint.tools import existence_check, memoize
+
+
+ at memoize
+def check(text):
+    """Check the text."""
+    err = "airlinese.misc"
+    msg = u"'{}' is airlinese."
+
+    airlinese = [
+        "enplan(?:e|ed|ing|ement)",
+        "deplan(?:e|ed|ing|ement)",
+        "taking off momentarily",
+    ]
+
+    return existence_check(text, airlinese, err, msg)
diff --git a/proselint/checks/annotations/__init__.py b/proselint/checks/annotations/__init__.py
new file mode 100644
index 0000000..622c503
--- /dev/null
+++ b/proselint/checks/annotations/__init__.py
@@ -0,0 +1 @@
+"""Annotations."""
diff --git a/proselint/checks/annotations/misc.py b/proselint/checks/annotations/misc.py
new file mode 100644
index 0000000..509c05d
--- /dev/null
+++ b/proselint/checks/annotations/misc.py
@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+"""Annotation left in text.
+
+---
+layout:     post
+source:     SublimeLinter-annotations
+source_url: http://bit.ly/16Q7H41
+title:      archaism
+date:       2014-06-10 12:31:19
+categories: writing
+---
+
+Annotation left in text.
+
+"""
+from proselint.tools import existence_check, memoize
+
+
+ at memoize
+def check(text):
+    """Check the text."""
+    err = "misc.annotations"
+    msg = u"Annotation left in text."
+
+    annotations = [
+        "FIXME",
+        "FIX ME",
+        "TODO",
+        "todo",
+        "ERASE THIS",
+        "FIX THIS",
+    ]
+
+    return existence_check(
+        text, annotations, err, msg, ignore_case=False, join=True)
diff --git a/proselint/checks/archaism/__init__.py b/proselint/checks/archaism/__init__.py
new file mode 100644
index 0000000..e56f35e
--- /dev/null
+++ b/proselint/checks/archaism/__init__.py
@@ -0,0 +1 @@
+"""Archaism."""
diff --git a/proselint/checks/archaism/misc.py b/proselint/checks/archaism/misc.py
new file mode 100644
index 0000000..aae1264
--- /dev/null
+++ b/proselint/checks/archaism/misc.py
@@ -0,0 +1,83 @@
+# -*- coding: utf-8 -*-
+"""Archaism.
+
+---
+layout:     post
+source:     Garner's Modern American Usage
+source_url: http://bit.ly/1T4alrY
+title:      archaism
+date:       2014-06-10 12:31:19
+categories: writing
+---
+
+Archaism.
+
+"""
+from proselint.tools import existence_check, memoize
+
+
+ at memoize
+def check(text):
+    """Check the text."""
+    err = "archaism.misc"
+    msg = u"'{}' is archaic."
+
+    archaisms = [
+        "alack",
+        "anent",
+        # "anon",
+        "begat",
+        "belike",
+        "betimes",
+        "boughten",
+        "brocage",
+        "brokage",
+        "camarade",
+        "chiefer",
+        "chiefest",
+        "Christiana",
+        "completely obsolescent",
+        "cozen",
+        "divers",
+        "deflexion",
+        "durst",
+        "fain",
+        "forsooth",
+        "foreclose from",
+        "haply",
+        "howbeit",
+        "illumine",
+        "in sooth",
+        "maugre",
+        "meseems",
+        "methinks",
+        "nigh",
+        "peradventure",
+        "perchance",
+        "saith",
+        "shew",
+        "sistren",
+        "spake",
+        "to wit",
+        "verily",
+        "whilom",
+        "withal",
+        "wot",
+        "enclosed please find",
+        "please find enclosed",
+        "enclosed herewith",
+        "enclosed herein",
+        "inforce",
+        "ex postfacto",
+        "foreclose from",
+        "forewent",
+        "for ever",
+        # "designer", when used to mean a plotter against Christ
+        # "demean", when used to mean "to behave" in legal contexts
+        # "by the bye", # variant, modern is "by the by"
+        # "comptroller" # in british english
+        # "abortive" Abortive is archaic in reference to abortions of fetuses,
+        # except in the sense “causing an abortion.”
+    ]
+
+    return existence_check(text, archaisms, err, msg, join=True)
diff --git a/proselint/checks/cliches/__init__.py b/proselint/checks/cliches/__init__.py
new file mode 100644
index 0000000..c7e476a
--- /dev/null
+++ b/proselint/checks/cliches/__init__.py
@@ -0,0 +1 @@
+"""Avoid cliches."""
diff --git a/proselint/checks/cliches/hell.py b/proselint/checks/cliches/hell.py
new file mode 100644
index 0000000..61d4b94
--- /dev/null
+++ b/proselint/checks/cliches/hell.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+"""Too much yelling.
+
+---
+layout:     post
+source:     ???
+source_url: ???
+title:      yelling
+date:       2014-06-10 12:31:19
+categories: writing
+---
+
+Never use the phrase 'all hell broke loose'.
+
+"""
+from proselint.tools import existence_check, memoize
+
+
+ at memoize
+def check_repeated_exclamations(text):
+    """Check the text."""
+    err = "leonard.hell"
+    msg = u"Never use the words 'all hell broke loose'."
+
+    regex = r"all hell broke loose"
+
+    return existence_check(
+        text, [regex], err, msg, max_errors=1)
diff --git a/proselint/checks/cliches/misc.py b/proselint/checks/cliches/misc.py
new file mode 100644
index 0000000..be3572e
--- /dev/null
+++ b/proselint/checks/cliches/misc.py
@@ -0,0 +1,855 @@
+# -*- coding: utf-8 -*-
+
+u"""Cliches are cliché."""
+
+from proselint.tools import memoize, existence_check
+
+
+ at memoize
+def check_cliches_garner(text):
+    """Check the text.
+
+    source:     Garner's Modern American Usage
+    source_url: http://bit.ly/1T4alrY
+    """
+    err = "cliches.garner"
+    msg = u"'{}' is cliché."
+
+    cliches = [
+        "a fate worse than death",
+        "alas and alack",
+        "at the end of the day",
+        "bald-faced lie",
+        "between a rock and a hard place",
+        "between Scylla and Charybdis",
+        "between the devil and the deep blue see",
+        "betwixt and between",
+        "blissful ignorance",
+        "blow a fuse",
+        "bulk large",
+        "but that's another story",
+        "cast aspersions",
+        "chase a red herring",
+        "comparing apples and oranges",
+        "compleat",
+        "conspicuous by its absence",
+        "crystal clear",
+        "cutting edge",
+        "decision-making process",
+        "dubious distinction",
+        "duly authorized",
+        "eyes peeled",
+        "far be it from me",
+        "fast and loose",
+        "fills the bill",
+        "first and foremost",
+        "for free",
+        "get with the program",
+        "gilding the lily",
+        "have a short fuse",
+        "he's got his hands full",
+        "his own worst enemy",
+        "his work cut out for him",
+        "hither and yon",
+        "Hobson's choice",
+        "horns of a dilemma",
+        "if you catch my drift",
+        "in light of",
+        "in the final analysis",
+        "in the last analysis",
+        "innocent bystander",
+        "it's not what you know, it's who you know",
+        "last but not least",
+        "make a mockery of",
+        "male chauvinism",
+        "moment of truth",
+        "more in sorrow than in anger",
+        "more sinned against than sinning",
+        "my better half",
+        "nip in the bud",
+        "olden days",
+        "on the same page",
+        "presidential timber",
+        "pulled no punches",
+        "quantum jump",
... 8219 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/proselint.git



More information about the Python-modules-commits mailing list