typo

A python package to simulate typographical errors.


License
MIT
Install
pip install typo==0.1.7

Documentation

typo

typo is a python package to simulate typographical errors in English language.

Release 0.1.7

  • Ability to preserve first and/or last characters in error methods.

Usage

import typo
import datetime

myStrErrer = typo.StrErrer('Hello World! Happy new year 2021.', seed=31)
print(myStrErrer.missing_char().result)
# Should print 'ello World! Happy new year 2021.'

myStrErrer = typo.StrErrer('Hello World! Happy new year 2021.', seed=31)
print(myStrErrer.missing_char(preservefirst=True).result)
# Should print 'Hllo World! Happy new year 2021.'

myStrErrer = typo.StrErrer('Hello World! Happy new year 2021.', seed=2)
print(myStrErrer.missing_char().char_swap().result)
# Should print 'Hlol World! Happy new year 2021.'

myIntErrer = typo.IntErrer(34343, seed=1)
print(myIntErrer.similar_digit().result)
# Should print 39343

myDateErrer = typo.DateErrer(datetime.datetime.strptime("8 Mar 95", "%d %b %y"))
print(myDateErrer.date_month_swap().result)
# Should print 1995-08-03 00:00:00

Currently, following types of typos can be simulated:

String typos:

Given the input Hello World! Happy new year 2021., different error types produce the following errors.

Error method Description Sample output
char_swap(preservefirst=False, preservelast=False) Swaps two random consecutive word characters in the string. Hello World! Ahppy new year 2021.
missing_char(preservefirst=False, preservelast=False) Skips a random word character in the string. Hllo World! Happy new year 2021.
extra_char(preservefirst=False, preservelast=False) Adds an extra, keyboard-neighbor, letter next to a random word character. Hrello World! Happy new year 2021.
nearby_char(preservefirst=False, preservelast=False) Replaces a random word character with keyboard-neighbor letter. Hello World! Happy new ysar 2021.
similar_char() Replaces a random word character with another visually similar character. Hell0 world! Happy new year 2021.
skipped_space() Skips a random space from the string. Hello world! Happy new year2021.
random_space() Adds a random space in the string. Hell o world! Happy new year 2021.
repeated_char() Repeats a random word character. Hello worrld! Happy new year 2021.
unichar() Replaces a random consecutive repeated letter with a single letter. Hello world! Hapy new year 2021.

Integer typos:

Error method Description Input Sample output
digit_swap(preservefirst=False, preservelast=False) Swaps two random consecutive digits in the integer. 1234567890 1324567890
missing_digit(preservefirst=False, preservelast=False) Skips a random digit in the integer. -1234567890 -123457890
extra_digit(preservefirst=False, preservelast=False) Adds an extra, keyboard-neighbor, digit next to a random digit in the integer. 1234567890 12345678920
nearby_digit(preservefirst=False, preservelast=False) Replaces a random digit in the integer with a keyboard-neighbor digit. 1234567890 1234567892
similar_digit() Replaces a random digit with another visually similar digit. 1234567890 1234567896
repeated_digit() Repeats a random digit in the integer. 1234567890 12345678900
unidigit() Replaces a random consecutive repeated digit with a single digit. -112233445566 -11233445566

Datetime typos:

Error method Description Input Sample output
date_month_swap() Swaps the day and month of the date if the value of the day is less than or equal to 12. 8 Mar 95 3 Aug 95