usernamegen
Genrate usernames with a Markov chain based on a wordlist
Wordlist
In order to get the most out of the word generation, make sure that you have one word per line, all lower case.
Installation
Simply install via pip:
pip install usernamegen
Usage
Library
You can use the usernamegen directly in your python application.
>>> import usernamegen
>>> words = ['foo', 'foobar', 'foobarbla', 'foobarblafasel']
>>> formatters = [{'format': usernamegen.Formatter.Join, 'weight': 1}]
>>> minLength = 8
>>> size = 3
>>> gen = usernamegen.Generator(words, size, minLength)
>>> gen.setFormatters(formatters)
>>> gen.getString()
'foobarfoobarblafasel'
When multiple formmatters are used, the heigher the weight of a formatter the more likely it is, that it is used.
The following formatters are available:
- Join
- Underscore
- Capitalize
- CapitalizeExceptFirst
- AppendNumber
- CapitalizeAppendNumber
Scripts
After installation there will be two script available:
markov
usage: markov [-h] [-p PREV] [-n N] WORDLIST
Markov chain word generator. Generate new words based on aword list.
positional arguments:
WORDLIST Path to wordlist used for word generation
optional arguments:
-h, --help show this help message and exit
-p PREV Number of previous letters to base chain on
-n N Amount of new words to generate
username
usage: username [-h] [-p PREV] [-n N] [-m MIN] WORDLIST
Generate usernames based on a wordlist and a Markov chain.
positional arguments:
WORDLIST Path to wordlist used for word generation
optional arguments:
-h, --help show this help message and exit
-p PREV Number of previous letters to base chain on
-n N Amount of new words to generate
-m MIN Minimum username length
Running tests
nosetests --with-coverage --cover-package=usernamegen --with-json-extended
Generating Documentation
sphinx-apidoc -o docs/source usernamegen -f
cd docs && make html && cd ..