File: tense_present.py

package info (click to toggle)
python3-proselint 0.14.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,220 kB
  • sloc: python: 7,173; sh: 6; makefile: 3
file content (51 lines) | stat: -rw-r--r-- 1,059 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
"""Tense present.

---
layout:     post
source:     DFW's Tense Present
source_url: http://bit.ly/1c85lgR
title:      Tense present
date:       2014-06-10 12:31:19
categories: writing
---

Archaism.

"""
import re

from proselint.tools import memoize


@memoize
def check(text):
    """Check the text."""
    err = "misc.tense_present"
    msg = r"'{}'."

    illogics = [
        r"up to \d{1,3}% ?[-\u2014\u2013]{0,3} ?(?:or|and) more\W?",
        "between you and I",
        "on accident",
        "somewhat of a",
        "all it's own",
        "reason is because",
        "audible to the ear",
        "in regards to",
        "would of",
        # "and so",
        r"i ?(?:feel|am feeling|am|'m|'m feeling) nauseous",
    ]

    errors = []
    for i in illogics:
        for m in re.finditer(fr"\s{i}\s", text, flags=re.U | re.I):
            txt = m.group(0).strip()
            errors.append((
                m.start() + 1,
                m.end(),
                err,
                msg.format(txt),
                None))

    return errors