Skip to main content

Get homoglyphs for text, convert text to ASCII.

Project description

# Homoglyphs

Homoglyphs -- python library for getting [homoglyphs](https://en.wikipedia.org/wiki/Homoglyph) and converting to ASCII.


## Features

It's like [confusable_homoglyphs](https://github.com/vhf/confusable_homoglyphs) but with some features:

* Load only needed alphabet to memory.
* Work as quick as possible.
* Converting to ASCII.
* More configurable.
* More stable.


## Usage

```python
from homoglyphs import Homoglyphs, STRATEGY_LOAD, STRATEGY_IGNORE, STRATEGY_REMOVE

# detect category
Homoglyphs.detect_category('s')
# 'LATIN'
Homoglyphs.detect_category('ั‘')
# 'CYRILLIC'
Homoglyphs.detect_category('.')
# 'COMMON'

# get latin combinations (by default initiated only latin alphabet)
Homoglyphs().get_combinations('q')
# ['q', '๐ช', '๐‘ž', '๐’’', '๐“†', '๐“บ', '๐”ฎ', '๐•ข', '๐––', '๐—Š', '๐—พ', '๐˜ฒ', '๐™ฆ', '๐šš']

# load alphabet on init by categories
Homoglyphs(categories=('LATIN', 'COMMON', 'CYRILLIC')).get_combinations('ะณั‹')
# ['rั‹', 'ะณั‹', '๊ญ‡ั‹', '๊ญˆั‹', '๐ซั‹', '๐‘Ÿั‹', '๐’“ั‹', '๐“‡ั‹', '๐“ปั‹', '๐”ฏั‹', '๐•ฃั‹', '๐–—ั‹', '๐—‹ั‹', '๐—ฟั‹', '๐˜ณั‹', '๐™งั‹', '๐š›ั‹']

# load alphabet by demand
Homoglyphs(strategy=STRATEGY_LOAD).get_combinations('ะณั‹')
# ['rั‹', 'ะณั‹', '๊ญ‡ั‹', '๊ญˆั‹', '๐ซั‹', '๐‘Ÿั‹', '๐’“ั‹', '๐“‡ั‹', '๐“ปั‹', '๐”ฏั‹', '๐•ฃั‹', '๐–—ั‹', '๐—‹ั‹', '๐—ฟั‹', '๐˜ณั‹', '๐™งั‹', '๐š›ั‹']

# convert to ASCII
Homoglyphs(strategy=STRATEGY_LOAD).to_ascii('ั‚ะตัั‚')
# ['tect']
Homoglyphs(strategy=STRATEGY_LOAD).to_ascii('ะฅะ 123.') # this is cyrillic "ั…" and "ั€"
# ['XP123.', 'XPI23.', 'XPl23.']

# string with chars which can't be converted by default will be ignored
Homoglyphs(strategy=STRATEGY_LOAD).to_ascii('ะปะพะป')
# []

# you can set strategy for removing not converted non-ASCII chars from result
Homoglyphs(strategy=STRATEGY_LOAD, ascii_strategy=STRATEGY_REMOVE).to_ascii('ะปะพะป')
# ['o']
```

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

homoglyphs-1.0.0.tar.gz (7.0 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page